on: push: branches: - main pull_request: jobs: list: runs-on: ubuntu-24.04 outputs: matrix: ${{ steps.list.outputs.matrix }} steps: - uses: actions/checkout@v5 - uses: nixbuild/nix-quick-install-action@v34 - uses: cachix/cachix-action@v16 with: name: linuxwasm authToken: "${{secrets.CACHIX_AUTH_TOKEN}}" - name: List packages id: list run: | eval "$(nix print-dev-env .#ci)" matrix="$(nix-eval-jobs --flake .#checks.x86_64-linux --check-cache-status | jq -sc ' [ .[] | select(.isCached | not).attr | select(test("-shell$") | not) ] | if length > 0 then . else ["pre-commit"] end ')" echo "matrix=$matrix" >> "$GITHUB_OUTPUT" build: needs: list runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: pkg: ${{ fromJson(needs.list.outputs.matrix) }} name: Build ${{ matrix.pkg }} steps: - uses: actions/checkout@v5 - uses: nixbuild/nix-quick-install-action@v34 - uses: cachix/cachix-action@v16 with: name: linuxwasm authToken: "${{secrets.CACHIX_AUTH_TOKEN}}" - name: Build run: | eval "$(nix print-dev-env .#ci)" nix build '.#checks.x86_64-linux.${{ matrix.pkg }}^*' deploy: needs: build if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == 'tombl/distro' runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v5 - uses: nixbuild/nix-quick-install-action@v34 - uses: cachix/cachix-action@v16 with: name: linuxwasm authToken: "${{secrets.CACHIX_AUTH_TOKEN}}" - name: Build run: | eval "$(nix print-dev-env .#ci)" nix build .#packages.x86_64-linux.site --print-build-logs - uses: cloudflare/wrangler-action@v3 with: apiToken: ${{secrets.CLOUDFLARE_API_TOKEN}} accountId: 7d87194d9d4af2959fb81de343dd63d9 command: pages deploy result/ --project-name=linux