fix(ci): split up flake update

This commit is contained in:
arcnmx 2024-07-22 12:11:19 -07:00
parent 4399603d0c
commit 07b775665d
3 changed files with 33 additions and 10 deletions

View file

@ -99,7 +99,7 @@ jobs:
CACHIX_SIGNING_KEY: ${{ secrets.CACHIX_SIGNING_KEY }}
NF_CONFIG_ROOT: ${{ github.workspace }}
NF_UPDATE_CACHIX_PUSH: '1'
NF_UPDATE_GIT_COMMIT: '1'
NF_UPDATE_GIT_COMMIT: ''
id: flake-update
name: flake update build
run: nix run .#nf-update
@ -142,6 +142,13 @@ jobs:
command: ci-build-cache
quiet: false
stdin: ${{ runner.temp }}/ci.build.cache
- env:
NF_CONFIG_ROOT: ${{ github.workspace }}
NF_UPDATE_GIT_COMMIT: '1'
NF_UPDATE_SKIP: '1'
id: flake-commit
name: git push
run: nix run .#nf-update
name: flake-update
'on':
pull_request:

View file

@ -34,18 +34,28 @@ in {
workflow_dispatch = {};
};
jobs.flake-update = {
# TODO: split this up into two phases, then push at the end so other CI tests can run first
step.flake-update = {
name = "flake update build";
order = 500;
run = "nix run .#nf-update";
env = {
CACHIX_SIGNING_KEY = "\${{ secrets.CACHIX_SIGNING_KEY }}";
NF_UPDATE_GIT_COMMIT = "1";
NF_UPDATE_GIT_COMMIT = "";
NF_UPDATE_CACHIX_PUSH = "1";
NF_CONFIG_ROOT = "\${{ github.workspace }}";
};
};
# we split this up into two phases so other CI tests can run in-between
step.flake-commit = {
name = "git push";
order = 1500;
run = "nix run .#nf-update";
env = {
NF_UPDATE_SKIP = "1";
NF_UPDATE_GIT_COMMIT = "1";
NF_CONFIG_ROOT = "\${{ github.workspace }}";
};
};
};
};

View file

@ -1,26 +1,32 @@
#!/usr/bin/env bash
set -eu
if [[ -n ${CACHIX_SIGNING_KEY-} ]]; then
if [[ -n ${CACHIX_SIGNING_KEY-} && ! -v NF_UPDATE_CACHIX_PUSH ]]; then
export NF_UPDATE_CACHIX_PUSH=1
fi
cd "$NF_CONFIG_ROOT"
nix flake update "$@"
if [[ -z ${NF_UPDATE_SKIP-} ]]; then
nix flake update "$@"
fi
if [[ -n $(git status --porcelain ./flake.lock) ]]; then
git -P diff ./flake.lock
if [[ -z ${NF_UPDATE_SKIP-} ]]; then
git -P diff ./flake.lock
fi
else
echo "no source changes" >&2
exit
fi
echo "checking that nodes still build..." >&2
if [[ -n ${NF_UPDATE_CACHIX_PUSH-} ]]; then
export NF_ACTIONS_TEST_OUTLINK=${NF_ACTIONS_TEST_OUTLINK-result}
if [[ -z ${NF_UPDATE_SKIP-} ]]; then
echo "checking that nodes still build..." >&2
if [[ -n ${NF_UPDATE_CACHIX_PUSH-} ]]; then
export NF_ACTIONS_TEST_OUTLINK=${NF_ACTIONS_TEST_OUTLINK-result}
fi
nf-actions-test -L
fi
nf-actions-test -L
if [[ -n ${NF_UPDATE_CACHIX_PUSH-} ]]; then
cachix push gensokyo-infrastructure "./${NF_ACTIONS_TEST_OUTLINK}"*/ &