magic-nix-cache/.github/workflows/check-and-test.yaml
2024-05-18 16:47:37 -03:00

81 lines
2.1 KiB
YAML

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 }}"