test-build #149
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: test-build | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
schedule: | |
- cron: '30 3 * * 2' | |
concurrency: | |
group: "${{ github.ref }}" | |
cancel-in-progress: true | |
jobs: | |
build-debian: | |
strategy: | |
# Keep other matrix jobs running, even if one fails. | |
fail-fast: false | |
matrix: | |
host_release: | |
- unstable | |
- trixie | |
- bookworm | |
- bullseye | |
# We want a working shell, qemu, python and docker. Specific version should not matter (much). | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: ./tests/gha-build-deb.sh | |
name: "Build .deb for ${{matrix.host_release}}" | |
env: | |
HOST_RELEASE: ${{matrix.host_release}} | |
- name: Archive built .deb | |
uses: actions/upload-artifact@v4 | |
with: | |
name: deb-${{matrix.host_release}} | |
if-no-files-found: error | |
path: | | |
*.deb | |
test-debian: | |
needs: build-debian | |
strategy: | |
# Keep other matrix jobs running, even if one fails. | |
fail-fast: false | |
matrix: | |
host_release: | |
- unstable | |
- trixie | |
- bookworm | |
- bullseye | |
release: | |
- trixie | |
- bookworm | |
- bullseye | |
- buster | |
- stretch | |
debootstrap: | |
- '' | |
- mmdebstrap | |
exclude: | |
# debootstrap in bullseye is too old. | |
- host_release: bullseye | |
release: trixie | |
# unclear how to pass --no-check-gpg to mmdebstrap | |
- release: stretch | |
debootstrap: mmdebstrap | |
# We want a working shell, qemu, python and docker. Specific version should not matter (much). | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download built deb | |
uses: actions/download-artifact@v4 | |
with: | |
name: deb-${{matrix.host_release}} | |
- run: ./tests/build-vm-and-test.sh setup | |
name: "Setup test environment" | |
- run: ./tests/build-vm-and-test.sh run | |
name: "Build VM image using grml-debootstrap on host ${{matrix.host_release}} for ${{matrix.release}} using debootstrap=${{matrix.debootstrap}}" | |
env: | |
HOST_RELEASE: ${{matrix.host_release}} | |
RELEASE: ${{matrix.release}} | |
DEBOOTSTRAP: ${{matrix.debootstrap}} | |
- run: ./tests/build-vm-and-test.sh test | |
id: build_vm_and_test_test | |
name: "Test built VM image for ${{matrix.release}}" | |
env: | |
RELEASE: ${{matrix.release}} | |
- name: Archive VM image on failure | |
uses: actions/upload-artifact@v4 | |
if: always() && (steps.build_vm_and_test_test.outcome == 'failure') | |
with: | |
name: vm-image-${{matrix.host_release}}-${{matrix.release}}-${{matrix.debootstrap}} | |
if-no-files-found: error | |
path: qemu.img | |
retention-days: 5 | |
- name: Archive VM test results | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: vm-results-${{matrix.host_release}}-${{matrix.release}}-${{matrix.debootstrap}} | |
if-no-files-found: error | |
path: tests/results/ |