name: Build artifacts on: workflow_dispatch: workflow_call: jobs: build-artifacts: runs-on: ${{ matrix.systems.runner }} env: CLOSURE_FILE: magic-nix-cache.closure.xz CLOSURE_KEY: magic-nix-cache-${{ matrix.systems.runner }}-${{ github.sha }} strategy: matrix: systems: - nix-system: x86_64-linux system: X64-Linux runner: ubuntu-22.04 - nix-system: aarch64-linux system: ARM64-Linux runner: namespace-profile-default-arm64 - nix-system: x86_64-darwin system: X64-macOS runner: macos-12 - nix-system: aarch64-darwin system: ARM64-macOS runner: macos-latest-xlarge permissions: contents: read id-token: write steps: - uses: actions/checkout@v3 - uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/magic-nix-cache-action@main - name: Build and cache dev shell run: | nix build ".#devShells.${{ matrix.systems.nix-system }}.default" - name: Build package and create closure run: | nix build .# -L --fallback && nix-store --export $(nix-store -qR ./result) | xz -9 > "${{ env.CLOSURE_FILE }}" - name: Upload a Build Artifact uses: actions/upload-artifact@v3.1.2 with: # Artifact name name: magic-nix-cache-${{ matrix.systems.system }} path: ${{ env.CLOSURE_FILE }} retention-days: 1