forked from Fediversity/Fediversity
96 lines
3 KiB
YAML
96 lines
3 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'
|
|
|
|
- run: attic login fediversity https://attic.fediversity.net ${{ secrets.ATTIC_PUSH_KEY }} && attic use demo
|
|
|
|
- name: Set up SSH key to access age secrets
|
|
run: |
|
|
env
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.CD_SSH_KEY }}" > ~/.ssh/id_ed25519
|
|
chmod 600 ~/.ssh/id_ed25519
|
|
|
|
- name: Cache
|
|
run: attic push demo $(nix-build)
|
|
|
|
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
|
|
echo ==================== [ VM Options ] ====================
|
|
machines=$(nix eval --impure --raw --expr 'with builtins; toString (attrNames (getFlake (toString ./.)).vmOptions)')
|
|
for machine in $machines; do
|
|
echo ~~~~~~~~~~~~~~~~~~~~~: $machine :~~~~~~~~~~~~~~~~~~~~~
|
|
nix build .#checks.x86_64-linux.vmOptions-$machine
|
|
done
|
|
echo
|
|
echo ==================== [ NixOS Configurations ] ====================
|
|
machines=$(nix eval --impure --raw --expr 'with builtins; toString (attrNames (getFlake (toString ./.)).nixosConfigurations)')
|
|
for machine in $machines; do
|
|
echo ~~~~~~~~~~~~~~~~~~~~~: $machine :~~~~~~~~~~~~~~~~~~~~~
|
|
nix build .#checks.x86_64-linux.nixosConfigurations-$machine
|
|
done
|