on: [push, pull_request] name: Nix jobs: required: name: "Required Checks: Nix" runs-on: namespace-profile-ghostty-sm needs: - check-zig-cache-hash steps: - id: status name: Determine status run: | results=$(tr -d '\n' <<< '${{ toJSON(needs.*.result) }}') if ! grep -q -v -E '(failure|cancelled)' <<< "$results"; then result="failed" else result="success" fi { echo "result=${result}" echo "results=${results}" } | tee -a "$GITHUB_OUTPUT" - if: always() && steps.status.outputs.result != 'success' name: Check for failed status run: | echo "One or more required build workflows failed: ${{ steps.status.outputs.results }}" exit 1 check-zig-cache-hash: if: github.repository == 'ghostty-org/ghostty' runs-on: namespace-profile-ghostty-sm env: ZIG_LOCAL_CACHE_DIR: /zig/local-cache ZIG_GLOBAL_CACHE_DIR: /zig/global-cache steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Cache uses: namespacelabs/nscloud-cache-action@v1.2.0 with: path: | /nix /zig - name: Setup Nix uses: cachix/install-nix-action@v30 with: nix_path: nixpkgs=channel:nixos-unstable - uses: cachix/cachix-action@v15 with: name: ghostty authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" useDaemon: false # sometimes fails on short jobs - name: Check Zig cache hash run: nix develop -c ./nix/build-support/check-zig-cache-hash.sh