aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add a flag for building with nix-output-monitornom-flagstuebinm2024-03-102-3/+10
| | | | | | all this does is to replace the build invocations of nix/nix-build with nom/nom-build (of https://github.com/maralorn/nix-output-monitor) which gives more structured output of the running build.
* Merge pull request #257 from n-hass/feature/interactive-sudoRoman Melnikov2024-02-168-20/+155
|\ | | | | Add support for entering sudo password interactively
| * add support for entering password for sudoNick Hassan2024-02-168-20/+155
|/
* Merge pull request #252 from SuperSandro2000/patch-1Roman Melnikov2024-01-101-1/+1
|\ | | | | Remove note about unstable nix version
| * Remove note about unstable nix versionSandro2024-01-091-1/+1
|/ | | The current stable nix version supports flakes.
* Merge pull request #251 from ↵Roman Melnikov2023-12-202-1/+11
|\ | | | | | | | | serokell/rvem/add-missing-activation-timeout-documentation [Chore] Add missing documentation for timeout options
| * [Chore] Add missing documentation for timeout optionsRoman Melnikov2023-12-202-1/+11
|/ | | | | | | Problem: README misses documentation for 'confirmTimeout' and 'activationTimeout'. Solution: Mention them in README.
* Merge pull request #189 from serokell/automatic-updateRoman Melnikov2023-12-131-9/+27
|\ | | | | Automatically update flake.lock to the latest version
| * Automatically update flake.lock to the latest versionFlake Update Bot2023-12-121-9/+27
|/ | | | | | flake-compat 009399224d (2022-11-17) -> 0f9255e01c (2023-10-04) nixpkgs bb31220cca (2022-12-19) -> e97b3e4186 (2023-12-11) utils 5aed5285a9 (2022-11-02) -> 4022d587cb (2023-12-04)
* Merge pull request #248 from serokell/update-checkout-actionRoman Melnikov2023-12-121-1/+1
|\ | | | | [Chore] Update "actions/checkout"
| * [Chore] Update "actions/checkout"Roman Melnikov2023-12-121-1/+1
|/ | | | | | | | Problem: node16 is now deprecated and github-runner provided by nixpkgs no longer supports this runtime. However, "actions/checkout@v3" uses this runtime. Solution: Update CI pipeline to use "actions/checkout@v4".
* Merge pull request #246 from ↵Roman Melnikov2023-12-111-23/+9
|\ | | | | | | | | serokell/rvem/#245-return-non-zero-exit-code-for-confirmation-timeout [#245] Return non-zero exit code in case of confirmation timeout
| * [#245] Return non-zero exit code in case of confirmation timeoutRoman Melnikov2023-12-111-23/+9
|/ | | | | | | | | | | Problem: When profile activation confirmation fails due to confirmation timeout and performs a rollback, zero exit code is returned. Such a behavior is confusing since rollback usually means something went wrong during deployment and it shouldn't return successful exit code. Solution: Explicitly return confirmation waiting error instead of printing it and silently signalizing success.
* Merge pull request #240 from ↵Roman Melnikov2023-11-026-4/+30
|\ | | | | | | | | serokell/rvem/make-wait-activation-timeout-configurable [Chore] Make activation wait timeout configurable
| * fixup! [Chore] Make activation wait timeout configurableRoman Melnikov2023-11-021-1/+1
| |
| * [Chore] Make activation wait timeout configurableRoman Melnikov2023-11-026-4/+30
|/ | | | | | | | | | | | | | Problem: Currently profile activation waiting timeout is hardcoded to 240 seconds, see https://github.com/serokell/deploy-rs/pull/48. In some cases, this timeout can be exceeded (e.g. activation performs a heavy DB migration and waits for it to finish before considering the profile activation succesful). Solution: Make this timeout configurable via 'activationTimeout' deploy attribute or corresponding '--activation-timeout' CLI option. For the sake of backward compatibility, the new 'wait' subcommand '--activation-timeout' option is made optional and defaults to 240 seconds if it wasn't provided.
* Merge pull request #242 from serokell/phil/fix-rollback-error-messageRoman Melnikov2023-11-021-2/+3
|\ | | | | [Chore] fix error messages claiming to have rolled back when not actually doing so
| * [Chore] fix error messages claiming to have rolled back when not actually ↵Philipp Herzog2023-11-021-2/+3
|/ | | | | | doing so closes: #241
* Merge pull request #236 from serokell/rvem/run-ci-on-pull_requestHEADmasterRoman Melnikov2023-09-181-1/+1
|\ | | | | [Chore] Run CI checks on 'pull_request'
| * [Chore] Run CI checks on 'pull_request'Roman Melnikov2023-09-181-1/+1
|/ | | | | | | | Problem: We want to be able to run CI checks on PRs from external forks. However, this is only possible with 'on: pull_request', while currently CI is triggered 'on: push' Solution: Change CI triggering condition to 'on: pull_request'.
* Merge pull request #234 from fd/masterRoman Melnikov2023-09-181-1/+1
|\ | | | | Replace jsonschema-cli with check-jsonschema
| * Replace jsonschema-cli with check-jsonschemaSimon Menke2023-09-171-1/+1
|/ | | | | jsonschema-cli is deprecated and will be removed in the future. The recommended replacement is check-jsonschema.
* Merge pull request #231 from serokell/rvem/#201-dont-hardcode-profile-directoryRoman Melnikov2023-09-126-68/+316
|\ | | | | [#201] Deduce profile directory during activation
| * [#201] Deduce profile directory during activationRoman Melnikov2023-09-126-68/+316
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Since https://github.com/NixOS/nix/pull/5226 nix profiles for users are stored in 'XDG_STATE_HOME' or 'HOME' directory. However, 'deploy-rs' still expects profiles to be present in '/nix/var/nix/profiles/per-user'. As a result, an attempt to deploy a profile with newer nix may fail with an error about non-existing files. Solution: Instead of deducing the profile path prior to ssh'ing and actual activation, deduce the path to the profile during as a part of 'activate-rs' invocation. Now if the profile path is not specified explicitly as an attribute in profile within the deploy flake, the path to the profile is determined based on the user to which the profile belongs and on the values of 'XDG_STATE_HOME' and 'HOME' variables. Additionally, if the old profile directory (in '/nix/var/nix/profiles/per-user') for a given user already exists, it is used instead for the sake of backward compatibility.
* | Update README.md (#227)Derek Mahar2023-09-081-1/+1
|/ | | Replace "eachother" with "each other".
* Merge pull request #218 from faithanalog/masterRoman Melnikov2023-06-141-1/+4
|\ | | | | actually merge confirm_timeout into merged_settings
| * actually merge confirm_timeout into merged_settingsArtemis Everfree2023-06-081-1/+4
|/
* Merge pull request #213 from serokell/rvem/darwin-activationRoman Melnikov2023-06-053-0/+65
|\ | | | | [#210] Add activation script for darwin system and provide a usage example
| * fixup! [#210] Add activation script for darwin system and provide a usage ↵Roman Melnikov2023-05-121-126/+0
| | | | | | | | example
| * [#210] Add activation script for darwin system and provide a usage exampleRoman Melnikov2023-05-114-0/+191
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: It's possible to use 'deploy-rs' for deploying 'darwinSystem' configuration from 'nix-darwin' to a darwin system. However, there is no dedicated activatiot script for darwin and thus one has to come up with 'custom' activation script. Solution: 1) Add 'darwin' attribute to 'lib.activate' that provides a script that should be used to activate 'darwinSystem' config with 'deploy-rs'. 2) Add a new 'examples/darwin' example that provides simple flake for deploying configuration to a darwin target.
* | Merge pull request #207 from Flakebi/nixpkgs-cacheRoman Melnikov2023-05-112-1/+28
|\ \ | |/ |/| Make it possible to not rebuild deploy-rs
| * Make it possible to not rebuild deploy-rsFlakebi2023-04-162-1/+28
| | | | | | | | | | | | | | | | | | Use the deploy-rs from the final packages set. This can avoid rebuilding deploy-rs when using it in a nixos config. It can use the version cached in nixpkgs. Also add instructions to the readme on how to craft an overlay that uses nixpkgs deploy-rs.
* | Merge pull request #203 from ↵Roman Melnikov2023-05-082-21/+40
|\ \ | | | | | | | | | | | | serokell/rvem/#202-add-workaround-for-derivations-store-paths-interpolation [#202] Provide '^out' suffix for deriver on newer nix
| * | fixup! [#202] Provide '^out' suffix for deriver on newer nixRoman Melnikov2023-05-051-7/+15
| | |
| * | [#202] Provide '^out' suffix for deriver on newer nixRoman Melnikov2023-05-052-21/+34
| |/ | | | | | | | | | | | | | | | | | | | | | | Problem: Since 2.15 nix no longer reference '.drv' as derivation outputs. At the same time, nix before '2.13' doesn't support '.drv' special suffix handling. Solution: Provide '^out' suffix for the profile deriver in case 'nix path-info <...>.drv' returns the same '<...>.drv' path. In other cases either an error about the build result not being present in the /nix/store is returned or an actual build result path is returned.
* | Merge pull request #205 from serokell/rvem/improve-temp-path-handlingRoman Melnikov2023-05-057-190/+177
|\ \ | | | | | | [Chore] Handle 'temp_path' as an actual 'Path' instead of 'String'
| * | [Chore] Handle 'temp_path' as an actual 'Path' instead of 'String'Roman Melnikov2023-04-207-190/+177
| |/ | | | | | | | | | | | | | | | | | | | | | | | | Problem: 'temp_path' and 'lock_path' are handled as 'String'. This can be a problem when the 'temp_path' directory is a symlink on the target system, e.g. this is the case with the default '/tmp' and macOS, where this directory is actually a symlink to '/private/tmp'. Solution: Handle 'temp_path' and 'lock_path' as actual Paths. Also, canonicalize 'temp_path' to avoid canary file path mismatches when checking filesystem events. As a side effect, also update the 'notify' dependency to the latest stable version.
* | Merge pull request #198 from ↵Roman Melnikov2023-04-211-8/+6
|\ \ | |/ |/| | | | | serokell/rvem/#197-fix-options-handling-with-remote-build [#197] Fix hostname overriding for remote builds
| * [#197] Fix hostname overriding for remote buildsRoman Melnikov2023-04-141-8/+6
|/ | | | | | | Problem: '--hostname' is ignored when used with '--remote-build'. Solution: Account for 'data.deploy_data.cmd_overrides.hostname' when building a profile remotely.
* Switch from buildkite CI to github-actions (#190)Philipp Herzog2023-01-192-8/+11
|
* Build every profile first, then push (#158)2xsaiko2022-12-292-26/+40
| | | | | Try to build everything first before pushing to remotes. Since the build is more likely to fail than the upload, if there is an error the deployment will fail sooner and before uploading any potentially unusable configuration.
* Automatically update flake.lock to the latest version (#152)serokell-bot2022-12-291-9/+9
| | | | | | | | flake-compat 64a525ee38 (2022-03-25) -> 009399224d (2022-11-17) nixpkgs 30d3d79b7d (2022-03-25) -> bb31220cca (2022-12-19) utils 0f8662f131 (2022-03-26) -> 5aed5285a9 (2022-11-02) Co-authored-by: Flake Update Bot <operations+update@serokell.io> Co-authored-by: Alexander Bantyev <balsoft@balsoft.ru>
* Merge pull request #176 from Ma27/activate-bootAlexander Bantyev2022-12-294-15/+51
|\ | | | | Add new activation strategy `boot` as equivalent to `nixos-rebuild boot`
| * Add new activation strategy `boot` as equivalent to `nixos-rebuild boot`Maximilian Bosch2022-10-094-15/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can be useful when e.g. deploying a kernel update to a target host. You usually plan a reboot (or kexec) after that to activate the new kernel. However you don't want to wait for services to be restarted first since these will be "restarted" anyways on the reboot. In cases like GitLab or the Atlassian stack this actually makes a difference. This patch changes the following things: * If `--boot` is provided, `nix-env -p profile-to-activate --set` is called for each deployed profile to make sure that it is activated automatically after a reboot. * However, the actual activation (e.g. `switch-to-configuration switch`) is skipped. Instead: * For NixOS, `switch-to-configuration boot` is called to set the new profile as default in the bootloader. * For everything else, nothing else is done. The profile is already the new default (and thus picked up on the next boot).
* | Merge pull request #175 from serokell/philtaken/remote-buildingPhilipp Herzog2022-11-185-69/+158
|\ \ | | | | | | Add option to build on the target host
| * | Add option to build on the remote hostPhilipp Herzog2022-11-185-69/+158
|/ /
* | Merge pull request #182 from serokell/philtaken/checks-unique-namesPhilipp Herzog2022-11-141-2/+2
|\ \ | | | | | | More unique names for the checks generated by deploy-rs
| * | More unique names for the checks generated by deploy-rsPhilipp Herzog2022-11-111-2/+2
|/ / | | | | | | Closes #162
* | Merge pull request #181 from serokell/philtaken/rollback_exit_codePhilipp Herzog2022-11-111-1/+3
|\ \ | |/ |/| Introduce non-zero exit code for rollbacks
| * Introduce non-zero exit code for rollbacksPhilipp Herzog2022-11-111-1/+3
|/ | | | Closes #179