on: [push, pull_request] name: Nix concurrency: group: ${{ github.workflow }}-${{ github.ref_name != 'main' && github.ref || github.run_id }} cancel-in-progress: true 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@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Setup Cache uses: namespacelabs/nscloud-cache-action@446d8f390563cd54ca27e8de5bdb816f63c0b706 # v1.2.21 with: path: | /nix /zig - name: Setup Nix uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31.9.0 with: nix_path: nixpkgs=channel:nixos-unstable - uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16 with: name: ghostty authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" useDaemon: false # sometimes fails on short jobs - name: Check Zig cache run: nix develop -c ./nix/build-support/check-zig-cache.sh