Skip to content

Separate installer and sub-components as skeleton from updatable system #1089

Separate installer and sub-components as skeleton from updatable system

Separate installer and sub-components as skeleton from updatable system #1089

Workflow file for this run

permissions:
contents: read
name: "Test"
on:
pull_request:
push:
jobs:
prepare-matrix:
runs-on: ubuntu-latest
outputs:
integration_tests: ${{ steps.set-matrix-integration.outputs.integration_tests }}
manual_tests: ${{ steps.set-matrix-manual.outputs.manual_tests }}
steps:
- uses: actions/checkout@v4
- id: set-matrix-integration
run: |
FILES=$(find testing/integration -name '*.nix' -printf '"%p",')
FILES_JSON="[${FILES%,}]"
echo "integration_tests=${FILES_JSON}" >> $GITHUB_OUTPUT
- id: set-matrix-manual
run: |
FILES=$(find testing/release-validation.nix testing/manual -name '*.nix' -printf '"%p",')
FILES_JSON="[${FILES%,}]"
echo "manual_tests=${FILES_JSON}" >> $GITHUB_OUTPUT
integration-tests:
needs: prepare-matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
file: ${{fromJson(needs.prepare-matrix.outputs.integration_tests)}}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/prep-build-env
with:
NIX_CACHE_ACCOUNT_ID: ${{ secrets.NIX_CACHE_ACCOUNT_ID }}
NIX_CACHE_ACCESS_KEY_ID: ${{ secrets.NIX_CACHE_ACCESS_KEY_ID }}
NIX_CACHE_SECRET_ACCESS_KEY: ${{ secrets.NIX_CACHE_SECRET_ACCESS_KEY }}
NIX_BINARY_CACHE_PRIVATE_KEY: ${{ secrets.NIX_BINARY_CACHE_PRIVATE_KEY }}
- run: NIXPKGS_ALLOW_UNFREE=1 nix-build ${{ matrix.file }}
manual-tests-build-only:
needs: prepare-matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
file: ${{fromJson(needs.prepare-matrix.outputs.manual_tests)}}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/prep-build-env
with:
NIX_CACHE_ACCOUNT_ID: ${{ secrets.NIX_CACHE_ACCOUNT_ID }}
NIX_CACHE_ACCESS_KEY_ID: ${{ secrets.NIX_CACHE_ACCESS_KEY_ID }}
NIX_CACHE_SECRET_ACCESS_KEY: ${{ secrets.NIX_CACHE_SECRET_ACCESS_KEY }}
NIX_BINARY_CACHE_PRIVATE_KEY: ${{ secrets.NIX_BINARY_CACHE_PRIVATE_KEY }}
- run: NIXPKGS_ALLOW_UNFREE=1 nix-build -A driverInteractive ${{ matrix.file }}
kiosk-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/prep-build-env
with:
NIX_CACHE_ACCOUNT_ID: ${{ secrets.NIX_CACHE_ACCOUNT_ID }}
NIX_CACHE_ACCESS_KEY_ID: ${{ secrets.NIX_CACHE_ACCESS_KEY_ID }}
NIX_CACHE_SECRET_ACCESS_KEY: ${{ secrets.NIX_CACHE_SECRET_ACCESS_KEY }}
NIX_BINARY_CACHE_PRIVATE_KEY: ${{ secrets.NIX_BINARY_CACHE_PRIVATE_KEY }}
- run: nix-build -A kiosk kiosk/shell.nix
build-vm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/prep-build-env
with:
NIX_CACHE_ACCOUNT_ID: ${{ secrets.NIX_CACHE_ACCOUNT_ID }}
NIX_CACHE_ACCESS_KEY_ID: ${{ secrets.NIX_CACHE_ACCESS_KEY_ID }}
NIX_CACHE_SECRET_ACCESS_KEY: ${{ secrets.NIX_CACHE_SECRET_ACCESS_KEY }}
NIX_BINARY_CACHE_PRIVATE_KEY: ${{ secrets.NIX_BINARY_CACHE_PRIVATE_KEY }}
- run: NIXPKGS_ALLOW_UNFREE=1 ./build vm
e2e-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/prep-build-env
with:
NIX_CACHE_ACCOUNT_ID: ${{ secrets.NIX_CACHE_ACCOUNT_ID }}
NIX_CACHE_ACCESS_KEY_ID: ${{ secrets.NIX_CACHE_ACCESS_KEY_ID }}
NIX_CACHE_SECRET_ACCESS_KEY: ${{ secrets.NIX_CACHE_SECRET_ACCESS_KEY }}
NIX_BINARY_CACHE_PRIVATE_KEY: ${{ secrets.NIX_BINARY_CACHE_PRIVATE_KEY }}
- name: Make more space available on the runner
run: |
sudo rm -rf /usr/share/dotnet \
/usr/local/lib/android \
/opt/ghc \
/opt/hostedtoolcache/CodeQL
- run: ./build test-e2e
- name: Add summary
run: cat test-output/test-report.md >> "$GITHUB_STEP_SUMMARY"
if: always()
ocaml-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/prep-build-env
with:
NIX_CACHE_ACCOUNT_ID: ${{ secrets.NIX_CACHE_ACCOUNT_ID }}
NIX_CACHE_ACCESS_KEY_ID: ${{ secrets.NIX_CACHE_ACCESS_KEY_ID }}
NIX_CACHE_SECRET_ACCESS_KEY: ${{ secrets.NIX_CACHE_SECRET_ACCESS_KEY }}
NIX_BINARY_CACHE_PRIVATE_KEY: ${{ secrets.NIX_BINARY_CACHE_PRIVATE_KEY }}
- run: nix-build -A controller controller/shell.nix