forked from Fediversity/Fediversity
This PR contains a bunch of small fixes having to do with infra code. The goal is not to fix everything as that would require a full rewrite. Instead, we fix just what is necessary to get some testing going on. Once that is available, we will be able to work on a full refactor with more guarantees. Something of note is that most of the difficulty was to find code that would make both `nixops4 apply` _and_ `nix build .#nixosConfigurations.<machine>` happy. The takeaway is that the tests that we are adding now will not catch a whole class of tests having to do with how NixOps4 wires up the resources. Still, this is probably less significant as we are supposed to use NixOps4 every now and then. The commits should be read separately. Reviewed-on: Fediversity/Fediversity#478 Reviewed-by: kiara Grouwstra <kiara@procolix.eu> Co-authored-by: Nicolas “Niols” Jeannerod <nicolas.jeannerod@moduscreate.com> Co-committed-by: Nicolas “Niols” Jeannerod <nicolas.jeannerod@moduscreate.com>
77 lines
2.2 KiB
YAML
77 lines
2.2 KiB
YAML
on:
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- synchronize
|
|
- reopened
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
check-pre-commit:
|
|
runs-on: native
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: nix-build -A tests
|
|
|
|
check-data-model:
|
|
runs-on: native
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: nix-shell --run 'nix-unit ./deployment/data-model-test.nix'
|
|
|
|
check-mastodon:
|
|
runs-on: native
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: nix build .#checks.x86_64-linux.test-mastodon-service -L
|
|
|
|
check-peertube:
|
|
runs-on: native
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: nix build .#checks.x86_64-linux.test-peertube-service -L
|
|
|
|
check-panel:
|
|
runs-on: native
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: nix-build -A tests.panel
|
|
|
|
check-deployment-basic:
|
|
runs-on: native
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: nix build .#checks.x86_64-linux.deployment-basic -L
|
|
|
|
check-deployment-cli:
|
|
runs-on: native
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: nix build .#checks.x86_64-linux.deployment-cli -L
|
|
|
|
check-deployment-panel:
|
|
runs-on: native
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: nix build .#checks.x86_64-linux.deployment-panel -L
|
|
|
|
## NOTE: NixOps4 does not provide a good “dry run” mode, so we instead check
|
|
## proxies for resources, namely whether their `.#vmOptions.<machine>` and
|
|
## `.#nixosConfigurations.<machine>` outputs evaluate and build correctly, and
|
|
## whether we can dry run `infra/proxmox-*.sh` on them. This will not catch
|
|
## everything, and in particular not issues in how NixOps4 wires up the
|
|
## resources, but that is still something.
|
|
check-resources:
|
|
runs-on: native
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: |
|
|
set -euC
|
|
machines=$(nix eval --impure --raw --expr 'with builtins; toString (attrNames (getFlake (toString ./.)).nixosConfigurations)')
|
|
for machine in $machines; do
|
|
echo ==================== [ $machine ] ====================
|
|
nix eval .#vmOptions.$machine
|
|
nix build .#nixosConfigurations.$machine.config.system.build.toplevel
|
|
done
|