feat(workflows): Switch to a nix-based definition of workflows
Some checks failed
Build all the nodes / bridge01 (push) Failing after 13s
Build all the nodes / compute01 (push) Failing after 13s
Build all the nodes / geo02 (push) Failing after 12s
Build all the nodes / geo01 (push) Failing after 13s
Build all the nodes / rescue01 (push) Failing after 12s
Build all the nodes / storage01 (push) Failing after 12s
Build all the nodes / web01 (push) Failing after 12s
Build all the nodes / web02 (push) Failing after 12s
Build all the nodes / vault01 (push) Failing after 12s
Check workflows / check_workflows (push) Failing after 32s
Build all the nodes / web03 (push) Failing after 12s
Run pre-commit on all files / check (push) Successful in 22s
Some checks failed
Build all the nodes / bridge01 (push) Failing after 13s
Build all the nodes / compute01 (push) Failing after 13s
Build all the nodes / geo02 (push) Failing after 12s
Build all the nodes / geo01 (push) Failing after 13s
Build all the nodes / rescue01 (push) Failing after 12s
Build all the nodes / storage01 (push) Failing after 12s
Build all the nodes / web01 (push) Failing after 12s
Build all the nodes / web02 (push) Failing after 12s
Build all the nodes / vault01 (push) Failing after 12s
Check workflows / check_workflows (push) Failing after 32s
Build all the nodes / web03 (push) Failing after 12s
Run pre-commit on all files / check (push) Successful in 22s
This commit is contained in:
parent
d8f90dd940
commit
5f1436e4bf
16 changed files with 351 additions and 315 deletions
31
workflows/check-meta.nix
Normal file
31
workflows/check-meta.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
name = "Check meta";
|
||||
on = {
|
||||
pull_request.branches = [ "main" ];
|
||||
push.paths = [ "meta/*" ];
|
||||
};
|
||||
|
||||
jobs = {
|
||||
check_meta = {
|
||||
runs-on = "nix";
|
||||
steps = [
|
||||
{ uses = "actions/checkout@v3"; }
|
||||
{
|
||||
name = "Check the validity of meta options";
|
||||
run = "nix-build meta/verify.nix -A meta";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
check_dns = {
|
||||
runs-on = "nix";
|
||||
steps = [
|
||||
{ uses = "actions/checkout@v3"; }
|
||||
{
|
||||
name = "Check the validity of the DNS configuration";
|
||||
run = "nix-build meta/verify.nix -A dns --no-out-link";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
20
workflows/check-workflows.nix
Normal file
20
workflows/check-workflows.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
name = "Check workflows";
|
||||
on = {
|
||||
pull_request.branches = [ "main" ];
|
||||
push.paths = [ "workflows/*" ];
|
||||
};
|
||||
|
||||
jobs = {
|
||||
check_workflows = {
|
||||
runs-on = "nix";
|
||||
steps = [
|
||||
{ uses = "actions/checkout@v3"; }
|
||||
{
|
||||
name = "Check that the workflows are up to date";
|
||||
run = "nix-shell --run '[ $(git status --porcelain) -eq 0 ]'";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
32
workflows/eval-nodes.nix
Normal file
32
workflows/eval-nodes.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ lib }:
|
||||
|
||||
let
|
||||
inherit (lib) attrNames genAttrs;
|
||||
|
||||
nodes = attrNames (builtins.readDir ../machines);
|
||||
in
|
||||
|
||||
{
|
||||
name = "Build all the nodes";
|
||||
on = {
|
||||
pull_request.branches = [ "main" ];
|
||||
push.branches = [ "main" ];
|
||||
};
|
||||
|
||||
jobs = genAttrs nodes (node: {
|
||||
runs-on = "nix";
|
||||
steps = [
|
||||
{ uses = "actions/checkous@v3"; }
|
||||
{
|
||||
name = "Build and cache ${node}";
|
||||
run = "nix-shell --run cache-node";
|
||||
env = {
|
||||
STORE_ENDPOINT = "https://tvix-store.dgnum.eu/infra-signing/";
|
||||
STORE_USER = "admin";
|
||||
STORE_PASSWORD = "\${{ secrets.STORE_PASSWORD }}";
|
||||
BUILD_NODE = node;
|
||||
};
|
||||
}
|
||||
];
|
||||
});
|
||||
}
|
56
workflows/npins-update.nix
Normal file
56
workflows/npins-update.nix
Normal file
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
name = "npins update";
|
||||
on.schedule = [
|
||||
# Run at 11 o'clock every wednesday
|
||||
{ cron = "25 15 * * *"; }
|
||||
];
|
||||
|
||||
jobs.npins_update = {
|
||||
runs-on = "nix";
|
||||
steps = [
|
||||
{
|
||||
uses = "actions/checkout@v3";
|
||||
"with" = {
|
||||
depth = 0;
|
||||
token = "\${{ secrets.TEA_DGNUM_CHORES_TOKEN }}";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "Update dependencies and open PR if necessary";
|
||||
run = ''
|
||||
npins update
|
||||
|
||||
if [ ! -z "$(git diff --name-only)" ]; then
|
||||
echo "[+] Changes detected, pushing updates."
|
||||
|
||||
git switch -C npins-update
|
||||
|
||||
git add npins
|
||||
|
||||
git config user.name "DGNum Chores"
|
||||
git config user.email "tech@dgnum.eu"
|
||||
|
||||
git commit --message "chore(npins): Update"
|
||||
git push --set-upstream origin npins-update --force
|
||||
|
||||
# Connect to the server with the cli
|
||||
tea login add \
|
||||
-n dgnum-chores \
|
||||
-t "''${{ secrets.TEA_DGNUM_CHORES_TOKEN }}" \
|
||||
-u https://git.dgnum.eu
|
||||
|
||||
# Create a pull request if needed
|
||||
# i.e. no PR with the same title exists
|
||||
if [ -z "$(tea pr ls -f='title,author' -o simple | grep 'chore(npins): Update dgnum-chores')" ]; then
|
||||
tea pr create \
|
||||
--description "Automatic npins update" \
|
||||
--title "chore(npins): Update" \
|
||||
--head npins-update
|
||||
fi
|
||||
fi
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
18
workflows/pre-commit.nix
Normal file
18
workflows/pre-commit.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
name = "Run pre-commit on all files";
|
||||
on = [
|
||||
"push"
|
||||
"pull_request"
|
||||
];
|
||||
|
||||
jobs.check = {
|
||||
runs-on = "nix";
|
||||
steps = [
|
||||
{ uses = "actions/checkout@v3"; }
|
||||
{
|
||||
name = "Run pre-commit on all files";
|
||||
run = "nix-shell --run 'pre-commit run --all-files --hook-stage pre-push --show-diff-on-failure' -A shells.pre-commit ./.";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue