feat(shell): Add an action to cache it
All checks were successful
Check workflows / check_workflows (push) Successful in 24s
Check meta / check_dns (pull_request) Successful in 18s
Check meta / check_meta (pull_request) Successful in 18s
Check workflows / check_workflows (pull_request) Successful in 20s
Run pre-commit on all files / pre-commit (push) Successful in 35s
Build all the nodes / ap01 (pull_request) Successful in 1m14s
Build all the nodes / bridge01 (pull_request) Successful in 1m55s
Build all the nodes / geo01 (pull_request) Successful in 1m52s
Build all the nodes / geo02 (pull_request) Successful in 1m54s
Build all the nodes / compute01 (pull_request) Successful in 2m30s
Build all the nodes / netcore02 (pull_request) Successful in 35s
Build all the nodes / hypervisor01 (pull_request) Successful in 1m28s
Build all the nodes / hypervisor03 (pull_request) Successful in 1m44s
Build all the nodes / hypervisor02 (pull_request) Successful in 1m45s
Build all the nodes / rescue01 (pull_request) Successful in 2m14s
Build all the nodes / vault01 (pull_request) Successful in 2m11s
Build all the nodes / storage01 (pull_request) Successful in 2m18s
Build all the nodes / web02 (pull_request) Successful in 1m48s
Run pre-commit on all files / pre-commit (pull_request) Successful in 35s
Build all the nodes / web01 (pull_request) Successful in 2m22s
Build the shell / build-shell (pull_request) Successful in 1m27s
Build all the nodes / web03 (pull_request) Successful in 1m43s
All checks were successful
Check workflows / check_workflows (push) Successful in 24s
Check meta / check_dns (pull_request) Successful in 18s
Check meta / check_meta (pull_request) Successful in 18s
Check workflows / check_workflows (pull_request) Successful in 20s
Run pre-commit on all files / pre-commit (push) Successful in 35s
Build all the nodes / ap01 (pull_request) Successful in 1m14s
Build all the nodes / bridge01 (pull_request) Successful in 1m55s
Build all the nodes / geo01 (pull_request) Successful in 1m52s
Build all the nodes / geo02 (pull_request) Successful in 1m54s
Build all the nodes / compute01 (pull_request) Successful in 2m30s
Build all the nodes / netcore02 (pull_request) Successful in 35s
Build all the nodes / hypervisor01 (pull_request) Successful in 1m28s
Build all the nodes / hypervisor03 (pull_request) Successful in 1m44s
Build all the nodes / hypervisor02 (pull_request) Successful in 1m45s
Build all the nodes / rescue01 (pull_request) Successful in 2m14s
Build all the nodes / vault01 (pull_request) Successful in 2m11s
Build all the nodes / storage01 (pull_request) Successful in 2m18s
Build all the nodes / web02 (pull_request) Successful in 1m48s
Run pre-commit on all files / pre-commit (pull_request) Successful in 35s
Build all the nodes / web01 (pull_request) Successful in 2m22s
Build the shell / build-shell (pull_request) Successful in 1m27s
Build all the nodes / web03 (pull_request) Successful in 1m43s
This commit is contained in:
parent
e19100f856
commit
2132ef08d9
5 changed files with 79 additions and 0 deletions
19
.forgejo/workflows/eval-shell.yaml
Normal file
19
.forgejo/workflows/eval-shell.yaml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
jobs:
|
||||||
|
build-shell:
|
||||||
|
runs-on: nix
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- env:
|
||||||
|
STORE_ENDPOINT: https://tvix-store.dgnum.eu/infra-signing/
|
||||||
|
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
|
||||||
|
STORE_USER: admin
|
||||||
|
name: Build and cache shell
|
||||||
|
run: nix-shell -A eval-shell --run "nix-cache -A devShell"
|
||||||
|
name: Build the shell
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
|
@ -180,6 +180,7 @@ in
|
||||||
pre-commit.shellHook = git-checks.shellHook;
|
pre-commit.shellHook = git-checks.shellHook;
|
||||||
check-workflows.shellHook = workflows.shellHook;
|
check-workflows.shellHook = workflows.shellHook;
|
||||||
eval-nodes.packages = [ scripts.cache-node ];
|
eval-nodes.packages = [ scripts.cache-node ];
|
||||||
|
eval-shell.packages = [ scripts.nix-cache ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ let
|
||||||
|
|
||||||
scripts = {
|
scripts = {
|
||||||
cache-node = [ colmena ];
|
cache-node = [ colmena ];
|
||||||
|
nix-cache = [ colmena ];
|
||||||
check-deployment = [
|
check-deployment = [
|
||||||
colmena
|
colmena
|
||||||
jq
|
jq
|
||||||
|
|
29
scripts/nix-cache.sh
Normal file
29
scripts/nix-cache.sh
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# SPDX-FileCopyrightText: 2024 Ryan Lahfa <ryan.lahfa@dgnum.eu>
|
||||||
|
# SPDX-FileCopyrightText: 2024 Tom Hubrecht <tom.hubrecht@dgnum.eu>
|
||||||
|
# SPDX-FileContributor: Maurice Debray <maurice@dgnum.eu>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: EUPL-1.2
|
||||||
|
|
||||||
|
# Build the derivation and send it to the great beyond
|
||||||
|
|
||||||
|
drv=$(nix-instantiate "$@")
|
||||||
|
nix-store --query --requisites --force-realise --include-outputs "$drv" | grep -v '.*\.drv' > paths.txt
|
||||||
|
|
||||||
|
if [ "$STORE_PASSWORD" == "" ]; then
|
||||||
|
echo "No password given for the remote cache, uploading cannot take place."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<EOF >.netrc
|
||||||
|
default
|
||||||
|
login $STORE_USER
|
||||||
|
password $STORE_PASSWORD
|
||||||
|
EOF
|
||||||
|
|
||||||
|
nix copy \
|
||||||
|
--extra-experimental-features nix-command \
|
||||||
|
--to "$STORE_ENDPOINT?compression=none" \
|
||||||
|
--netrc-file .netrc \
|
||||||
|
"$(nix-store --realise "$drv")"
|
||||||
|
|
||||||
|
rm .netrc
|
29
workflows/eval-shell.nix
Normal file
29
workflows/eval-shell.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# SPDX-FileCopyrightText: 2024 Tom Hubrecht <tom.hubrecht@dgnum.eu>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: EUPL-1.2
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "Build the shell";
|
||||||
|
on = {
|
||||||
|
pull_request.branches = [ "main" ];
|
||||||
|
push.branches = [ "main" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
jobs = {
|
||||||
|
build-shell = {
|
||||||
|
runs-on = "nix";
|
||||||
|
steps = [
|
||||||
|
{ uses = "actions/checkout@v3"; }
|
||||||
|
{
|
||||||
|
name = "Build and cache shell";
|
||||||
|
run = "nix-shell -A eval-shell --run \"nix-cache -A devShell\"";
|
||||||
|
env = {
|
||||||
|
STORE_ENDPOINT = "https://tvix-store.dgnum.eu/infra-signing/";
|
||||||
|
STORE_USER = "admin";
|
||||||
|
STORE_PASSWORD = "\${{ secrets.STORE_PASSWORD }}";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue