settei/.github/workflows/build.yaml

85 lines
2.6 KiB
YAML

name: Build flake
on:
push:
jobs:
check:
runs-on: [nix]
steps:
- uses: actions/checkout@v4
- run: nix flake check
matrix:
runs-on: [nix]
needs: [check]
outputs:
aarch64-darwin: ${{ steps.generate_matrix.outputs.aarch64-darwin }}
aarch64-linux: ${{ steps.generate_matrix.outputs.aarch64-linux }}
x86_64-linux: ${{ steps.generate_matrix.outputs.x86_64-linux }}
steps:
- uses: actions/checkout@v4
- id: generate_matrix
run: |
nix eval --raw .#github-matrix >> $GITHUB_OUTPUT
build-x86_64-linux:
runs-on: [Linux, X64, nix]
needs: [matrix]
if: ${{ needs.matrix.outputs.x86_64-linux != '[]' && needs.matrix.outputs.x86_64-linux != '' }}
strategy:
fail-fast: false
matrix:
output: ${{ fromJson(needs.matrix.outputs.x86_64-linux )}}
steps:
- uses: actions/checkout@v4
- name: Build output
run: nix build .#${{ matrix.output }} -L
- name: Push output
run: |
nix run .#attic -- login nrab-attic 'https://attic.nrab.lol' ${{ secrets.ATTIC_TOKEN }}
nix run .#attic -- push nrab-attic:public result
build-aarch64-darwin:
runs-on: macos-14
needs: [matrix]
if: ${{ needs.matrix.outputs.aarch64-darwin != '[]' && needs.matrix.outputs.aarch64-darwin != '' }}
strategy:
fail-fast: false
matrix:
output: ${{ fromJson(needs.matrix.outputs.aarch64-darwin )}}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-nix
- name: Build output
run: nix build .#${{ matrix.output }} -L
- name: Push output
run: |
nix run .#attic -- login nrab-attic 'https://attic.nrab.lol' ${{ secrets.ATTIC_TOKEN }}
nix run .#attic -- push nrab-attic:public result
build-aarch64-linux:
runs-on: [Linux, ARM64, nix]
needs: [matrix]
if: ${{ needs.matrix.outputs.aarch64-linux != '[]' && needs.matrix.outputs.aarch64-linux != '' }}
strategy:
fail-fast: false
matrix:
output: ${{ fromJson(needs.matrix.outputs.aarch64-linux )}}
steps:
- uses: actions/checkout@v4
- name: Build output
run: nix build .#${{ matrix.output }} -L
- name: Push output
run: |
nix run .#attic -- login nrab-attic 'https://attic.nrab.lol' ${{ secrets.ATTIC_TOKEN }}
nix run .#attic -- push nrab-attic:public result
all-built:
runs-on: ubuntu-latest
if: always()
needs: [build-x86_64-linux, build-aarch64-darwin, build-aarch64-linux]
steps:
- uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}