# name: build # on: push # jobs: # checks: # uses: nixbuild/nixbuild-action/.github/workflows/ci-workflow.yml@v19 # with: # nix_conf: | # allow-import-from-derivation = true # secrets: # nixbuild_token: ${{ secrets.nixbuild_token }} name: "build" on: pull_request: push: branches: [ "main" ] jobs: build-matrix: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Nix uses: DeterminateSystems/nix-installer-action@main with: github-token: ${{ secrets.GITHUB_TOKEN }} extra-conf: "system-features = nixos-test benchmark big-parallel kvm" - name: Setup Caching uses: cachix/cachix-action@v14 with: name: selfhostblocks authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Generate Matrix id: generate-matrix run: | nix flake show --allow-import-from-derivation --json \ | jq -c '.["checks"]["x86_64-linux"] | keys' > .output cat .output echo dynamic_list="$(cat .output)" >> "$GITHUB_OUTPUT" outputs: check: ${{ steps.generate-matrix.outputs.dynamic_list }} manual: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Nix uses: DeterminateSystems/nix-installer-action@main with: github-token: ${{ secrets.GITHUB_TOKEN }} extra-conf: "system-features = nixos-test benchmark big-parallel kvm" - name: Setup Caching uses: cachix/cachix-action@v14 with: name: selfhostblocks authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Build run: | nix \ --print-build-logs \ --option keep-going true \ --show-trace \ build .#manualHtml tests: runs-on: ubuntu-latest needs: [ "build-matrix" ] strategy: matrix: check: ${{ fromJson(needs.build-matrix.outputs.check) }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Nix uses: DeterminateSystems/nix-installer-action@main with: github-token: ${{ secrets.GITHUB_TOKEN }} extra-conf: "system-features = nixos-test benchmark big-parallel kvm" - name: Setup Caching uses: cachix/cachix-action@v14 with: name: selfhostblocks authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Build run: | nix build --print-build-logs --show-trace .#checks.x86_64-linux.${{ matrix.check }} results: if: ${{ always() }} runs-on: ubuntu-latest name: Final Results needs: [ manual, tests ] steps: - run: | result="${{ needs.tests.result }}" if [[ $result == "success" || $result == "skipped" ]]; then exit 0 else exit 1 fi