dotfiles/.github/workflows/test.yml

58 lines
1.5 KiB
YAML

name: "Test"
on:
pull_request:
push:
jobs:
calculate-matrix:
name: Calculate build matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v2.4.0
- uses: cachix/install-nix-action@v16
with:
nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: |
experimental-features = nix-command flakes
- name: Calculate build matrix
id: set-matrix
run: |
# Use `-c` flag with jq for compact output (doesn't keep newlines in
# output which was causing issues when setting the output
matrix=$(nix flake show --json | jq -c '.nixosConfigurations | keys')
echo "::set-output name=matrix::$matrix"
tests:
name: Build NixOS configurations
runs-on: ubuntu-latest
needs:
- calculate-matrix
strategy:
fail-fast: false
matrix:
target: "${{ fromJson(needs.calculate-matrix.outputs.matrix) }}"
steps:
- uses: actions/checkout@v2.4.0
- uses: cachix/install-nix-action@v16
with:
nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: |
experimental-features = nix-command flakes
- uses: cachix/cachix-action@v10
with:
name: alejandro-dotfiles
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix-env -i nixos-rebuild -f '<nixpkgs>'
- run: nixos-rebuild build --flake ".#${{ matrix.target }}"
- run: echo OK