$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/refs/heads/main/pipeline/frontend/yaml/linter/schema/schema.json when: - event: manual - event: push branch: main ## 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. steps: - name: check-resources image: nixos/nix commands: - echo ==================== [ VM Options ] ==================== - | set -euC machines=$(nix eval --extra-experimental-features 'nix-command flakes' --impure --raw --expr 'with builtins; toString (attrNames (getFlake (toString ./.)).vmOptions)') for machine in $machines; do echo ~~~~~~~~~~~~~~~~~~~~~: $machine :~~~~~~~~~~~~~~~~~~~~~ nix build --extra-experimental-features 'nix-command flakes' .#checks.x86_64-linux.vmOptions-$machine done - echo ==================== [ NixOS Configurations ] ==================== - | set -euC machines=$(nix eval --extra-experimental-features 'nix-command flakes' --impure --raw --expr 'with builtins; toString (attrNames (getFlake (toString ./.)).nixosConfigurations)') for machine in $machines; do echo ~~~~~~~~~~~~~~~~~~~~~: $machine :~~~~~~~~~~~~~~~~~~~~~ nix build --extra-experimental-features 'nix-command flakes' .#checks.x86_64-linux.nixosConfigurations-$machine done