aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* [#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
* Merge pull request #168 from rycee/runCommandAlexander Bantyev2022-08-051-3/+3
|\ | | | | Replace runCommandNoCC by runCommand
| * Fetch system from `stdenv.hostPlatform`Robert Helgesson2022-08-041-1/+1
| | | | | | | | | | | | | | The top-level `system` attribute has been deprecated for quite a while. See https://github.com/NixOS/nixpkgs/commit/4246d6ce21d2d8d33e2d30f42b3d9d446c5dc143
| * Replace runCommandNoCC by runCommandRobert Helgesson2022-08-041-2/+2
|/ | | | | | | The `runCommand` function has been using `stdenvNoCC` for quite a while and `runCommandNoCC` is correspondingly deprecated. See https://github.com/NixOS/nixpkgs/commit/9feb144c8cc4f4b71a9c23b2f7fd6b2ea55649e5
* Merge pull request #159 from xvello/nix28Alexander Bantyev2022-05-261-3/+5
|\ | | | | Update flake to support nix 2.8
| * Update flake to support nix 2.8Xavier Vello2022-05-141-3/+5
|/ | | | | | | | | nix 2.7 renamed defaultApp and defaultPackage. Both the old and new names are supported in 2.7, but 2.8 has removed support for the old names, breaking the nix run invocation. Old names are kept in this PR to keep compatibility with nix 2.6, but could be removed if support of this version is not needed anymore.
* Merge pull request #157 from Atry/patch-1Alexander Bantyev2022-05-091-1/+1
|\ | | | | Fix a typo
| * Fix a typoYang, Bo2022-05-081-1/+1
|/
* Merge pull request #149 from serokell/automatic-updateAlexander Bantyev2022-03-281-9/+9
|\ | | | | Automatically update flake.lock to the latest version
| * Automatically update flake.lock to the latest versionFlake Update Bot2022-03-281-9/+9
|/ | | | | | flake-compat b7547d3eed (2022-01-03) -> 64a525ee38 (2022-03-25) nixpkgs 7f65e4abd5 (2022-01-29) -> 30d3d79b7d (2022-03-25) utils 846b2ae0fc (2022-01-20) -> 0f8662f131 (2022-03-26)
* Merge pull request #134 from serokell/automatic-updateAlexander Bantyev2022-02-021-9/+9
|\ | | | | Automatically update flake.lock to the latest version
| * Automatically update flake.lock to the latest versionFlake Update Bot2022-02-021-9/+9
|/ | | | | | flake-compat 12c64ca55c (2021-08-02) -> b7547d3eed (2022-01-03) nixpkgs e0ce3c683a (2021-09-19) -> 7f65e4abd5 (2022-01-29) utils 7e5bf3925f (2021-09-13) -> 846b2ae0fc (2022-01-20)
* Merge pull request #148 from afontaine/afontaine/add-doas-supportAlexander Bantyev2022-01-294-1/+20
|\ | | | | Add custom sudo command support