name: Run checks and integration test on: pull_request: push: branches: [main] jobs: checks: name: Nix and Rust checks runs-on: ubuntu-22.04 permissions: contents: read id-token: write steps: - uses: actions/checkout@v3 - name: Install Nix uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/magic-nix-cache-action@main - name: Check health of flake.lock uses: DeterminateSystems/flake-checker-action@main with: fail-mode: true - name: Check Rust formatting run: nix develop --command cargo fmt --check - name: Clippy run: nix develop --command cargo clippy build: name: Build artifacts needs: checks uses: ./.github/workflows/build.yaml secrets: inherit action-integration-test: name: Integration test for magic-nix-cache-action runs-on: ${{ matrix.systems.runner }} needs: build env: CLOSURE_FILE: magic-nix-cache-${{ matrix.systems.system }} strategy: matrix: systems: - system: X64-Linux runner: ubuntu-22.04 - system: ARM64-Linux runner: namespace-profile-default-arm64 - system: X64-macOS runner: macos-12 - system: ARM64-macOS runner: macos-latest-xlarge permissions: contents: read id-token: write steps: - name: Download artifact uses: actions/download-artifact@v3 with: name: ${{ env.CLOSURE_FILE }} path: ${{ env.CLOSURE_FILE }} - name: Install Nix uses: DeterminateSystems/nix-installer-action@main - name: Extract id: extract run: | OUTPUT=$(cat ${{ env.CLOSURE_FILE }} | xz -d | nix-store --import) MNC_BIN_PATH=$(echo "${OUTPUT}" | tail -n 1) MAGIC_NIX_CACHE="${MNC_BIN_PATH}/bin/magic-nix-cache" echo "mnc-path=${MAGIC_NIX_CACHE}" >> "$GITHUB_OUTPUT" - uses: DeterminateSystems/magic-nix-cache-action@main with: source-binary: "${{ steps.extract.outputs.mnc-path }}"