fedora-csb-system-manager
 1name: packages
 2
 3permissions:
 4  contents: read
 5
 6on:
 7  workflow_dispatch: {}
 8  pull_request:
 9    paths:
10      - 'pkgs/**'
11      - 'flake.nix'
12      - 'flake.lock'
13      - '.github/workflows/build-packages.yaml'
14  push:
15    branches:
16      - main
17    paths:
18      - 'pkgs/**'
19      - 'flake.nix'
20      - 'flake.lock'
21      - '.github/workflows/build-packages.yaml'
22
23concurrency:
24  group: ${{ github.workflow }}-${{ github.ref }}-packages
25  cancel-in-progress: true
26
27jobs:
28  nix-matrix:
29    runs-on: ubuntu-latest
30    outputs:
31      matrix: ${{ steps.set-matrix.outputs.matrix }}
32    steps:
33      - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
34      - uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31.9.0
35      - id: set-matrix
36        name: Generate Nix Matrix
37        run: |
38          set -Eeu
39          set -o pipefail
40          echo "matrix=$(nix eval --json '.#githubActions.matrix')" >> "$GITHUB_OUTPUT"
41
42  nix-build:
43    needs: nix-matrix
44    runs-on: ${{ matrix.os }}
45    strategy:
46      fail-fast: false # Keep running if one leg fails.
47      matrix: ${{fromJSON(needs.nix-matrix.outputs.matrix)}}
48    steps:
49      - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
50      - uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31.9.0
51      - uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
52        with:
53          name: chapeau-rouge
54          authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
55      - run: nix build -L ".#${{ matrix.attr }}"