* Try extra-conf with a heredoc
* Test case
* Other test case
* heredoc in yaml goes burr
* use special bash syntax for newline
* Correctly close quotes
* Remove testing symbols
* Use file method
* unwhoops jobs
* upload_s3: provide git ish as argument
$GITHUB_SHA isn't the actual PR's HEAD's SHA, but a merge commit or
something.
* upload_s3: use an empty object if the file doesn't exist on s3
It's not pretty, but it works, and the md5sum of a file should never be
"null".
* release-branches: upload to `branch_${name}` instead
* release: init action to release first party PRs
* release: check if revision has already been uploaded
We don't want to waste bandwidth on files that already exist.
* release: consolidate s3 uploading into single script; check if artifact already uploaded
* release: only upload release for PR if it has the "upload to s3" label
* CreateOrAppendFile: setuid safety
* Apply a sensible default mode if the file didn't already exist
* remove some incorrect docs
* Implement CreateOrInsertFile and use it instead of Append for shell rcs
Ubuntu's bashrc has the following lines in it:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
This means that anything appended to the file will only take effect in
interactive sessions. However, we want noninteractive shells to have
Nix on PATH too, e.g. for remote builds. Therefore, we need to add our
snippet to the beginning of the file, not the end.
* Adjust test fixtures to match new behaviour
* interaction: indicate default for confirm correctly
* CreateOrInsertFile: use randomised temporary filename
* Fix temp file creation
* Apply permissions to temp file, not final file
The final file may not exist, and the temporary file is the one whose
permissions will actually be preserved.
* Use the right ActionError for renaming
* Test the SSH behaviour properly
* cargo fmt
* [DS-574] Write to zshenv instead of zshrc
* CreateOrInsertFile -> CreateOrInsertIntoFile
Also move appending behaviour in here.
* Update Linux fixtures
* update darwin-multi fixture
* fix fixture
* fmt
* release: create releases for specified branches
* release: split action into one for branches, one for tags
* release: change the NIX_INSTALLER_BINARY_ROOT upon release
This way, we can be sure we use the right binaries to match the script.
* Add metadata do Cargo.toml
* Add docs link
* wip
* Get it mostly working
* Handle empty channels, local files, offline mode
* Get them working
* Expand CONTRIBUTING.md
* Expand more
* Correct some formatting/mistypes
* More notes about steps
* Correct speeling
* Improve ubuntu naming
* Add note about specific branch/checkout testing
* Review corrections
* Change match to if
* Rename harmonic to nix-installer
* Fix build
* handle nix-install.sh rename
* Forgot some things
* Fix a mistype
* Fix env var
* Fix merge change that popped up
* Rename harmonic to nix-installer
* Fix build
* handle nix-install.sh rename
* Forgot some things
* Fix a mistype
* Fix env var
* Fix merge change that popped up
* Add action
* Checkout so we have actions.yml
* yaml poking
* Handle GITHUB_TOKEN
* Don't ask github to do templating, use directives for logging
* Missing changes
* Fix build error
* Fix yaml even more
* Add shell command
* Add a wait on the socket again
* Print some debugging
* Use more correct env vars
* Correct install url logic
* Use different style for inputs
* Fix yaml errror
* Tweak around local-root
* provision nix-install.sh as well
* Use nix-install.sh path directory in NIX_INSTALL_URL
* Tweak variables to hopefully work
* Call it BINARY_ROOT instead
* Add exec output
* Set no-confirm
* no echo
* Add token to workflow
* Set no-confirm properly
* Add no-confirm back for uninstall
* Correct some env and vars
* CreateDirectory respects existing symlink
* Add a few more checks to the CI
* pass valid yaml...
* Slightly more aggressive cleanup of /nix
* Ensure steam-deck cleans /home/nix
* Add steam-deck check for persistence
* Canonicalize steam-deck persistence
* Ensure absolute path
* Inverted logic sad
* python3 on mac
* Add readme info and fix a extra-conf mistype
* Add unsaved changes
* More fine grained trace logging
* Restore spans we lost in refactor
* BuiltinPlanner can accept settings
* Reflect feedback
* Push actually working code hopefully this time
* Speeling
* Minimize deps with cargo machete
* Remove default features
* Serde json gets std
* Add a few features to keep
* Reflect change sin dev-deps
* Remove bad optional
* Also remove cfg from nix build
* Move binary out of /nix if it is there during uninstall
* Add tracing
* Sorta working...
* Have expected() return an err
* Better handle expected errors during install
* Hello trailing whitespace
* Perform sudo in harmonic
* Remove sudo in scripts
* A bit more tweaking...
* Yay unix
* Use curl sh on ci
* Preserve environments we require
* Fix the yamls
* Better explain a run step
* Preserve GITHUB_PATH too
* Correct trace
* Include install-nix.sh in artifacts
* Remove unused vars
* Use /nix/harmonic for uninstall
* Only pass --preserve-env if required
* Wait for python server to start
* Use a sudo uninstall
* Pass verbosity correctly
* Pass no-confirm by env
* Pass no-confirm by env redux
* Hahaha very funny yaml
* handle env in no-confirm
* Preserve env on ci
* Mac stuff