aboutsummaryrefslogtreecommitdiff
path: root/src/deploy.rs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* [Chore] Handle 'temp_path' as an actual 'Path' instead of 'String'Roman Melnikov2023-04-201-15/+15
| | | | | | | | | | | | | 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.
* Add new activation strategy `boot` as equivalent to `nixos-rebuild boot`Maximilian Bosch2022-10-091-2/+13
| | | | | | | | | | | | | | | | | | | | | | | 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).
* ensure spawned thread exits before mainTimothy DeHerrera2021-11-181-1/+5
|
* General code cleanupnotgne22021-08-121-33/+33
|
* Add multi node supportYannik Sander2021-06-221-7/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run multiple deployments in sequence Resolve targets later Extend context by deployed flake Apply clippy suggestions Add revoke command builder Track succeeded deploys Add revoke function Register revoke error as deploy error Prepare revoke command in activate Extend logger to handle revoke Implement revoke command client side Run revoke on previously suceeded Control whether to override by flag Adhere profile configuration auto_rollback setting Cargo fmt Correctly provide profile path to activation script when revoking Document multi flake mode in README Resolve a typo in README.md Co-authored-by: notgne2 <gen2@gen2.space> Use existing teminology rename revoke_suceeded -> rollback_suceeded Use more open CLI argument name `targets` instead of `flakes` Document name changes in README Add sudo command support for revokes Call run_deploy with `dry_active` flag Test revoke commands contains sudo Set default temp_path in activate binary Require temp_path for wait and activate subcommands Add copyright comment Address review change requests Fix typo in README Co-authored-by: Alexander Bantyev <balsoft@balsoft.ru>
* Apply notgne2 suggestions.Oleg Pykhalov2021-04-161-3/+3
|
* Add dry activate argument.Oleg Pykhalov2021-04-071-7/+22
|
* Remove `ssh://` prefix from SSH addressesnotgne22021-02-281-1/+1
|
* Re-use `ssh_addr`notgne22021-02-281-3/+3
|
* Clean up adding Command argumentsnotgne22021-02-091-7/+7
|
* Re-add debug log for activate command erroringnotgne22021-02-091-0/+1
|
* Clean up structure used for activation command error sendingnotgne22021-02-091-11/+9
|
* Still wait for activation command to end even in cases of errorsnotgne22021-02-091-43/+70
|
* Use oneshot signals to ensure SSH activate command has finished before ↵notgne22021-02-091-7/+14
| | | | deployment ends
* Wait for `ssh_activate` to complete and check for errors in magic_rollback ↵notgne22021-02-091-11/+20
| | | | activation (fixes #58 and #49)
* changed: remove 2015-style extern crateBernardo Meurer2021-01-261-2/+2
|
* Only build wait command if magic_rollback is enablednotgne22021-01-141-10/+10
|
* Remove unused DeployPathToActivatePathErrornotgne22021-01-081-3/+0
|
* Struct-ify arguments to build_wait_commandnotgne22021-01-081-21/+23
|
* Struct-ify arguments to build_activate_commandnotgne22021-01-081-26/+28
|
* Fix trivial lint issuesnotgne22021-01-081-4/+4
|
* Restructure projectnotgne22021-01-081-0/+296