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' - name: Cache run: | nix-shell --run "attic login fediversity https://attic.fediversity.net ${{ secrets.ATTIC_PUSH_KEY }} && attic use demo" env mkdir -p ~/.ssh echo "${{ secrets.CD_SSH_KEY }}" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 cat ~/.config/attic/config.toml | head -n 2 cat ~/.config/nix/nix.conf nix-shell --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.` and ## `.#nixosConfigurations.` 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