photoncloud-monorepo/.github/workflows/nix.yml

70 lines
2.3 KiB
YAML

name: Nix CI
on:
push:
pull_request:
jobs:
flake-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v11
- uses: DeterminateSystems/magic-nix-cache-action@v8
- name: Nix flake check
run: nix flake check --accept-flake-config
build-servers:
runs-on: ubuntu-latest
needs: flake-check
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v11
- uses: DeterminateSystems/magic-nix-cache-action@v8
- name: Build server packages
run: |
nix build --accept-flake-config .#chainfire-server .#flaredb-server .#iam-server .#plasmavmc-server .#prismnet-server .#flashdns-server .#fiberlb-server .#lightningstor-server .#creditservice-server
integration-matrix:
runs-on: ubuntu-latest
needs: build-servers
env:
PLASMA_E2E: "1"
# SKIP_PLASMA defaults to 0; set repo/runner var to 1 only when qemu-img/KVM is unavailable.
SKIP_PLASMA: ${{ vars.SKIP_PLASMA || '0' }}
LOG_DIR: .cccc/work/integration-matrix/${{ github.run_id }}
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v11
- uses: DeterminateSystems/magic-nix-cache-action@v8
- name: Run integration matrix (Noop hypervisor gate)
run: |
nix develop -c ./scripts/integration-matrix.sh
- name: Upload integration-matrix logs
if: always()
uses: actions/upload-artifact@v4
with:
name: integration-matrix-logs
path: .cccc/work/integration-matrix/
integration-matrix-kvm:
if: ${{ vars.NESTED_KVM == '1' }}
runs-on: ubuntu-latest
needs: integration-matrix
env:
PLASMA_E2E: "1"
SKIP_PLASMA: "0"
LOG_DIR: .cccc/work/integration-matrix-kvm/${{ github.run_id }}
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v11
- uses: DeterminateSystems/magic-nix-cache-action@v8
- name: Run integration matrix (KVM lane)
run: |
nix develop -c ./scripts/integration-matrix.sh
- name: Upload integration-matrix-kvm logs
if: always()
uses: actions/upload-artifact@v4
with:
name: integration-matrix-kvm-logs
path: .cccc/work/integration-matrix-kvm/