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 '' - run: nixos-rebuild build --flake ".#${{ matrix.target }}" - run: echo OK