Skip to content

ci: conditional jobs #420

ci: conditional jobs

ci: conditional jobs #420

Workflow file for this run

---
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
changes:
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src }}
infra: ${{ steps.changes.outputs.infra }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- uses: dorny/paths-filter@v2
id: changes
with:
filters: |
nixos-configuration:
- flake.nix
- flake.lock
- 'configurations/nixos/**'
- 'modules/nixos/**'
- 'modules/home/**'
home-configuration:
- flake.nix
- flake.lock
- 'configurations/home/**'
- 'modules/home/**'
installer-yubikey:
- flake.nix
- flake.lock
- 'configurations/nixos/installer-yubikey/**'
- 'packages/drduh-gpg-conf/**'
- 'packages/drduh-yubikey-guide/**'
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- uses: DeterminateSystems/nix-installer-action@da36cb69b1c3247ad7a1f931ebfd954a1105ef14 # v14
with:
nix-package-url: https://releases.nixos.org/nix/nix-2.18.2/nix-2.18.2-x86_64-linux.tar.xz
extra-conf: |
http-connections = 50
max-jobs = auto
diagnostic-endpoint: ''
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
with:
useDaemon: true
name: terlar
extraPullNames: cuda-maintainers
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Check
run: nix flake check
build-home-configuration:
needs: changes
if: ${{ needs.changes.outputs.home-configuration == 'true' }}
strategy:
matrix:
include:
- username: terje
os: ubuntu-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- uses: DeterminateSystems/nix-installer-action@da36cb69b1c3247ad7a1f931ebfd954a1105ef14 # v14
with:
nix-package-url: https://releases.nixos.org/nix/nix-2.18.2/nix-2.18.2-x86_64-linux.tar.xz
extra-conf: |
http-connections = 50
max-jobs = auto
diagnostic-endpoint: ''
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
with:
useDaemon: true
name: terlar
extraPullNames: cuda-maintainers
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Build activation package
run: |
nix build --print-build-logs .#homeConfigurations.${{ matrix.username }}.activationPackage
build-nixos-configuration:
needs: changes
if: ${{ needs.changes.outputs.nixos-configuration == 'true' }}
strategy:
matrix:
host:
- kong
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
- uses: DeterminateSystems/nix-installer-action@da36cb69b1c3247ad7a1f931ebfd954a1105ef14 # v14
with:
nix-package-url: https://releases.nixos.org/nix/nix-2.18.2/nix-2.18.2-x86_64-linux.tar.xz
extra-conf: |
http-connections = 50
max-jobs = auto
diagnostic-endpoint: ''
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
with:
useDaemon: true
name: terlar
extraPullNames: cuda-maintainers
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Build system
run: |
nix build --print-build-logs .#nixosConfigurations.${{ matrix.host }}.config.system.build.toplevel
build-iso:
needs: changes
if: ${{ needs.changes.outputs.installer-yubikey == 'true' }}
strategy:
matrix:
name:
- installer-yubikey
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- uses: DeterminateSystems/nix-installer-action@da36cb69b1c3247ad7a1f931ebfd954a1105ef14 # v14
with:
nix-package-url: https://releases.nixos.org/nix/nix-2.18.2/nix-2.18.2-x86_64-linux.tar.xz
extra-conf: |
http-connections = 50
max-jobs = auto
diagnostic-endpoint: ''
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
with:
useDaemon: true
name: terlar
extraPullNames: cuda-maintainers
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
skipPush: true
- name: Build ISO
run: |
GC_DONT_GC=1 nix build --print-build-logs .#nixosConfigurations.${{ matrix.name }}.config.system.build.isoImage