name: Build flake on: push: jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: ./.github/actions/install-nix - run: nix flake check matrix: runs-on: ubuntu-latest outputs: aarch64-darwin: ${{ steps.generate_matrix.outputs.aarch64-darwin }} aarch64-linux: ${{ steps.generate_matrix.outputs.aarch64-linux }} x86_64-linux: ${{ steps.generate_matrix.outputs.x86_64-linux }} steps: - uses: actions/checkout@v3 - uses: ./.github/actions/install-nix - id: generate_matrix run: | nix eval --raw .#github-matrix >> $GITHUB_OUTPUT build-x86_64-linux: runs-on: ubuntu-latest needs: [matrix] if: ${{ needs.matrix.outputs.x86_64-linux != '[]' && needs.matrix.outputs.x86_64-linux != '' }} strategy: fail-fast: false matrix: output: ${{ fromJson(needs.matrix.outputs.x86_64-linux )}} steps: - uses: actions/checkout@v3 - uses: ./.github/actions/install-nix - name: Build output run: nix build .#${{ matrix.output }} -L - name: Push output run: | nix run .#attic -- login nrab-attic 'https://cache.nrab.lol/' ${{ secrets.ATTIC_TOKEN }} nix run .#attic -- push nrab-attic:public result build-aarch64-darwin: runs-on: macos-14 needs: [matrix] if: ${{ needs.matrix.outputs.aarch64-darwin != '[]' && needs.matrix.outputs.aarch64-darwin != '' }} strategy: fail-fast: false matrix: output: ${{ fromJson(needs.matrix.outputs.aarch64-darwin )}} steps: - uses: actions/checkout@v3 - uses: ./.github/actions/install-nix - name: Build output run: nix build .#${{ matrix.output }} -L - name: Push output run: | nix run .#attic -- login nrab-attic 'https://cache.nrab.lol/' ${{ secrets.ATTIC_TOKEN }} nix run .#attic -- push nrab-attic:public result build-aarch64-linux: runs-on: ubuntu-latest needs: [matrix] if: ${{ needs.matrix.outputs.aarch64-linux != '[]' && needs.matrix.outputs.aarch64-linux != '' }} strategy: fail-fast: false matrix: output: ${{ fromJson(needs.matrix.outputs.aarch64-linux )}} steps: - uses: actions/checkout@v3 - uses: docker/setup-qemu-action@v3 - uses: ./.github/actions/install-nix with: extra-conf: extra-platforms = aarch64-linux - name: Build output run: nix build .#${{ matrix.output }} -L - name: Push output run: | nix run .#attic -- login nrab-attic 'https://cache.nrab.lol/' ${{ secrets.ATTIC_TOKEN }} nix run .#attic -- push nrab-attic:public result