Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Build every profile first, then push (#158) | 2xsaiko | 2022-12-29 | 2 | -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. | ||||
* | Merge pull request #176 from Ma27/activate-boot | Alexander Bantyev | 2022-12-29 | 3 | -4/+31 |
|\ | | | | | Add new activation strategy `boot` as equivalent to `nixos-rebuild boot` | ||||
| * | Add new activation strategy `boot` as equivalent to `nixos-rebuild boot` | Maximilian Bosch | 2022-10-09 | 3 | -4/+31 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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). | ||||
* | | Add option to build on the remote host | Philipp Herzog | 2022-11-18 | 4 | -69/+153 |
| | | |||||
* | | Introduce non-zero exit code for rollbacks | Philipp Herzog | 2022-11-11 | 1 | -1/+3 |
|/ | | | | Closes #179 | ||||
* | Add custom sudo command support | Andrew Fontaine | 2022-01-28 | 3 | -1/+15 |
| | | | | This is useful for nodes that utilize `doas` instead of `sudo`. | ||||
* | ensure spawned thread exits before main | Timothy DeHerrera | 2021-11-18 | 1 | -1/+5 |
| | |||||
* | General code cleanup | notgne2 | 2021-08-12 | 5 | -130/+117 |
| | |||||
* | fix ambiguous crate ref | Timothy DeHerrera | 2021-07-29 | 1 | -1/+1 |
| | |||||
* | optionally take args as input | Timothy DeHerrera | 2021-07-29 | 2 | -4/+7 |
| | |||||
* | make cli opts public | Timothy DeHerrera | 2021-07-29 | 1 | -1/+1 |
| | |||||
* | export cli run in lib | Timothy DeHerrera | 2021-07-14 | 3 | -667/+677 |
| | |||||
* | Evaluate only once, and then only realise | Alexander Bantyev | 2021-07-02 | 1 | -9/+47 |
| | |||||
* | Cargo fmt | Alexander Bantyev | 2021-06-22 | 2 | -7/+11 |
| | |||||
* | Add multi node support | Yannik Sander | 2021-06-22 | 4 | -137/+385 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> | ||||
* | Use correct path to `deploy-rs-activate` binary when using `dry_activate` | notgne2 | 2021-04-30 | 1 | -3/+5 |
| | | | | Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com> | ||||
* | Apply notgne2 suggestions. | Oleg Pykhalov | 2021-04-16 | 2 | -5/+5 |
| | |||||
* | Add dry activate argument. | Oleg Pykhalov | 2021-04-07 | 4 | -50/+83 |
| | |||||
* | Remove `ssh://` prefix from SSH addresses | notgne2 | 2021-02-28 | 1 | -1/+1 |
| | |||||
* | Re-use `ssh_addr` | notgne2 | 2021-02-28 | 1 | -3/+3 |
| | |||||
* | Remove redundant `format!()` | notgne2 | 2021-02-19 | 1 | -1/+1 |
| | |||||
* | Clean up adding Command arguments | notgne2 | 2021-02-09 | 3 | -25/+23 |
| | |||||
* | Re-add debug log for activate command erroring | notgne2 | 2021-02-09 | 1 | -0/+1 |
| | |||||
* | Clean up structure used for activation command error sending | notgne2 | 2021-02-09 | 1 | -11/+9 |
| | |||||
* | Still wait for activation command to end even in cases of errors | notgne2 | 2021-02-09 | 1 | -43/+70 |
| | |||||
* | Use oneshot signals to ensure SSH activate command has finished before ↵ | notgne2 | 2021-02-09 | 1 | -7/+14 |
| | | | | deployment ends | ||||
* | Wait for `ssh_activate` to complete and check for errors in magic_rollback ↵ | notgne2 | 2021-02-09 | 1 | -11/+20 |
| | | | | activation (fixes #58 and #49) | ||||
* | Merge branch 'master' into style-fixes | notgne2 | 2021-02-08 | 1 | -22/+62 |
|\ | |||||
| * | fixup! Evaluate deploy output lazily | Alexander Bantyev | 2021-02-07 | 1 | -50/+42 |
| | | |||||
| * | Evaluate deploy output lazily | Alexander Bantyev | 2021-02-06 | 1 | -22/+70 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, we evaluate the `#deploy` output strictly. This means - Longer eval times - Extraneous evaluation errors with `--skip-checks` - `-- --impure` even when the path we're currently deploying is pure - etc. With this change, evaluation happens lazily -- we only evaluate the nodes and profiles we really need. It is only implemented for flaky Nix, and it is on by default. To get the old behavior, one can specify `--strict-eval`. I have tested that this indeed dramatically increases evaluation speed in all of our repos, and removes the need to deploy Agora with `--impure`. Hooray! | ||||
* | | changed: remove 2015-style extern crate | Bernardo Meurer | 2021-01-26 | 6 | -23/+9 |
|/ | |||||
* | Merge branch 'master' into notgne2/cleanup | notgne2 | 2021-01-14 | 1 | -1/+1 |
|\ | |||||
| * | Raise wait timeout | notgne2 | 2021-01-14 | 1 | -1/+1 |
| | | |||||
* | | Only build wait command if magic_rollback is enabled | notgne2 | 2021-01-14 | 1 | -10/+10 |
| | | |||||
* | | Don't import PushProfileData | notgne2 | 2021-01-08 | 1 | -2/+1 |
| | | |||||
* | | Remove unused DeployPathToActivatePathError | notgne2 | 2021-01-08 | 3 | -13/+0 |
| | | |||||
* | | Remove `Error` postfixes from error variants variants | notgne2 | 2021-01-08 | 1 | -18/+16 |
| | | |||||
* | | Use type definition for ToDeploy | notgne2 | 2021-01-08 | 1 | -53/+52 |
| | | |||||
* | | Struct-ify arguments to push_profile | notgne2 | 2021-01-08 | 2 | -42/+62 |
| | | |||||
* | | Struct-ify arguments to build_wait_command | notgne2 | 2021-01-08 | 1 | -21/+23 |
| | | |||||
* | | Struct-ify arguments to build_activate_command | notgne2 | 2021-01-08 | 1 | -26/+28 |
| | | |||||
* | | Fix trivial lint issues | notgne2 | 2021-01-08 | 4 | -8/+7 |
| | | |||||
* | | Restructure project | notgne2 | 2021-01-08 | 6 | -52/+50 |
|/ | |||||
* | Merge branch 'notgne2/new-logger' | notgne2 | 2021-01-08 | 4 | -86/+436 |
|\ | |||||
| * | Format logs differently | notgne2 | 2021-01-01 | 1 | -3/+3 |
| | | |||||
| * | Modify activation logic to keep SSH connection alive for magic-rollback and ↵ | notgne2 | 2020-12-30 | 4 | -84/+325 |
| | | | | | | | | avoid forking or disconnecting std{out,err} | ||||
| * | Make printed deployment information be info level instead of warn | notgne2 | 2020-12-27 | 1 | -1/+1 |
| | | |||||
| * | Remove discriminant (they are already differenciated by binary name) | notgne2 | 2020-12-27 | 1 | -1/+0 |
| | | |||||
| * | Deduplicate level to emoji pattern into make_emoji() | notgne2 | 2020-12-27 | 1 | -14/+12 |
| | | |||||
| * | Fix log dir/file mismatch | notgne2 | 2020-12-27 | 2 | -3/+3 |
| | |