ci: matrix

This commit is contained in:
Elijah McMorris 2025-08-05 02:40:12 -07:00
parent b0066a2d63
commit 8fd0b9d943
Signed by: NexVeridian
SSH key fingerprint: SHA256:bsA1SKZxuEcEVHAy3gY1HUeM5ykRJl0U0kQHQn0hMg8

View file

@ -8,24 +8,111 @@ on:
schedule: schedule:
- cron: 0 0 * * 1 - cron: 0 0 * * 1
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
cancel-in-progress: true
env: env:
CARGO_TERM_COLOR: always CARGO_TERM_COLOR: always
jobs: jobs:
check: check-dependencies:
name: check name: check-dependencies
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: read contents: read
id-token: write id-token: write
actions: write
strategy:
matrix:
system: [x86_64-linux]
check-type: [my-crate-fmt, my-crate]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: DeterminateSystems/nix-installer-action@main - uses: nixbuild/nix-quick-install-action@v32
with:
nix_conf: |
keep-env-derivations = true
keep-outputs = true
- name: Restore Nix store cache
id: cache-nix-restore
uses: nix-community/cache-nix-action/restore@v6
with:
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
restore-prefixes-first-match: nix-${{ runner.os }}-
- run: nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client login nex https://nix.nexveridian.com ${{ secrets.ATTIC_TOKEN }} || true - run: nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client login nex https://nix.nexveridian.com ${{ secrets.ATTIC_TOKEN }} || true
- run: nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client cache create ark-invest-api-rust || true - run: nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client cache create ark-invest-api-rust || true
- run: nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client use ark-invest-api-rust || true - run: nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client use ark-invest-api-rust || true
- run: nix flake check --all-systems
- run: | - run: nix build -I nixpkgs=channel:nixos-unstable nixpkgs#nix-fast-build
- name: Save Nix store cache
id: cache-nix-save
uses: nix-community/cache-nix-action/save@v6
with:
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
gc-max-store-size-linux: 2G
purge: true
purge-prefixes: nix-${{ runner.os }}-
purge-created: 0
purge-last-accessed: 0
purge-primary-key: never
- name: check
run: |
nix run -I nixpkgs=channel:nixos-unstable nixpkgs#nix-fast-build -- --flake ".#checks.$(nix eval --raw --impure --expr builtins.currentSystem).${{ matrix.check-type }}" --no-nom --skip-cached
- name: Push to attic
if: always()
run: |
for i in {1..10}; do
nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client push ark-invest-api-rust /nix/store/*/ && break || [ $i -eq 5 ] || sleep 5
done
check-matrix:
name: check-matrix
needs: check-dependencies
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
actions: write
strategy:
fail-fast: false
matrix:
system: [x86_64-linux]
check-type: [my-crate-clippy, my-crate-nextest]
steps:
- uses: actions/checkout@v3
- uses: nixbuild/nix-quick-install-action@v32
with:
nix_conf: |
keep-env-derivations = true
keep-outputs = true
- name: Restore Nix store cache
id: cache-nix-restore
uses: nix-community/cache-nix-action/restore@v6
with:
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
restore-prefixes-first-match: nix-${{ runner.os }}-
- run: nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client login nex https://nix.nexveridian.com ${{ secrets.ATTIC_TOKEN }} || true
- run: nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client cache create ark-invest-api-rust || true
- run: nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client use ark-invest-api-rust || true
- name: check
run: |
nix run -I nixpkgs=channel:nixos-unstable nixpkgs#nix-fast-build -- --flake ".#checks.$(nix eval --raw --impure --expr builtins.currentSystem).${{ matrix.check-type }}" --no-nom --skip-cached
- name: Push to attic
if: always()
run: |
for i in {1..10}; do for i in {1..10}; do
nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client push ark-invest-api-rust /nix/store/*/ && break || [ $i -eq 5 ] || sleep 5 nix run -I nixpkgs=channel:nixos-unstable nixpkgs#attic-client push ark-invest-api-rust /nix/store/*/ && break || [ $i -eq 5 ] || sleep 5
done done