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 }} CACHIX_SIGNING_KEY: ${{ secrets.CACHIX_SIGNING_KEY }}
NF_CONFIG_ROOT: ${{ github.workspace }} NF_CONFIG_ROOT: ${{ github.workspace }}
NF_UPDATE_CACHIX_PUSH: '1' NF_UPDATE_CACHIX_PUSH: '1'
NF_UPDATE_GIT_COMMIT: '1' NF_UPDATE_GIT_COMMIT: ''
id: flake-update id: flake-update
name: flake update build name: flake update build
run: nix run .#nf-update run: nix run .#nf-update
@ -142,6 +142,13 @@ jobs:
command: ci-build-cache command: ci-build-cache
quiet: false quiet: false
stdin: ${{ runner.temp }}/ci.build.cache 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 name: flake-update
'on': 'on':
pull_request: pull_request:

View file

@ -34,18 +34,28 @@ in {
workflow_dispatch = {}; workflow_dispatch = {};
}; };
jobs.flake-update = { 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 = { step.flake-update = {
name = "flake update build"; name = "flake update build";
order = 500; order = 500;
run = "nix run .#nf-update"; run = "nix run .#nf-update";
env = { env = {
CACHIX_SIGNING_KEY = "\${{ secrets.CACHIX_SIGNING_KEY }}"; CACHIX_SIGNING_KEY = "\${{ secrets.CACHIX_SIGNING_KEY }}";
NF_UPDATE_GIT_COMMIT = "1"; NF_UPDATE_GIT_COMMIT = "";
NF_UPDATE_CACHIX_PUSH = "1"; NF_UPDATE_CACHIX_PUSH = "1";
NF_CONFIG_ROOT = "\${{ github.workspace }}"; 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 #!/usr/bin/env bash
set -eu 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 export NF_UPDATE_CACHIX_PUSH=1
fi fi
cd "$NF_CONFIG_ROOT" 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 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 else
echo "no source changes" >&2 echo "no source changes" >&2
exit exit
fi fi
echo "checking that nodes still build..." >&2 if [[ -z ${NF_UPDATE_SKIP-} ]]; then
if [[ -n ${NF_UPDATE_CACHIX_PUSH-} ]]; then echo "checking that nodes still build..." >&2
export NF_ACTIONS_TEST_OUTLINK=${NF_ACTIONS_TEST_OUTLINK-result} if [[ -n ${NF_UPDATE_CACHIX_PUSH-} ]]; then
export NF_ACTIONS_TEST_OUTLINK=${NF_ACTIONS_TEST_OUTLINK-result}
fi
nf-actions-test -L
fi fi
nf-actions-test -L
if [[ -n ${NF_UPDATE_CACHIX_PUSH-} ]]; then if [[ -n ${NF_UPDATE_CACHIX_PUSH-} ]]; then
cachix push gensokyo-infrastructure "./${NF_ACTIONS_TEST_OUTLINK}"*/ & cachix push gensokyo-infrastructure "./${NF_ACTIONS_TEST_OUTLINK}"*/ &