Boot Tester #111
This file contains hidden or 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: Boot Tester | |
| on: | |
| schedule: | |
| # Run twice a week: Tuesdays at 02:00 UTC and Fridays at 02:00 UTC | |
| - cron: '0 2 * * 2' # Tuesday at 2 AM UTC | |
| - cron: '0 2 * * 5' # Friday at 2 AM UTC | |
| workflow_dispatch: {} | |
| # Allow manual triggering of the workflow | |
| permissions: | |
| contents: read | |
| jobs: | |
| boot-test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: | |
| - distribution: "emt3" | |
| image_type: "raw" | |
| script: "scripts/build_emt3_raw.sh" | |
| - distribution: "emt3" | |
| image_type: "iso" | |
| script: "scripts/build_emt3_iso.sh" | |
| - distribution: "emt3" | |
| image_type: "immutable" | |
| script: "scripts/build_emt3_immutable.sh" | |
| - distribution: "elxr12" | |
| image_type: "raw" | |
| script: "scripts/build_elxr12_raw.sh" | |
| - distribution: "elxr12" | |
| image_type: "iso" | |
| script: "scripts/build_elxr12_iso.sh" | |
| - distribution: "elxr12" | |
| image_type: "immutable" | |
| script: "scripts/build_elxr12_immutable.sh" | |
| - distribution: "ubuntu24" | |
| image_type: "raw" | |
| script: "scripts/build_ubuntu24_raw.sh" | |
| - distribution: "ubuntu24" | |
| image_type: "iso" | |
| script: "scripts/build_ubuntu24_iso.sh" | |
| - distribution: "ubuntu24" | |
| image_type: "immutable" | |
| script: "scripts/build_ubuntu24_immutable.sh" | |
| - distribution: "azl3" | |
| image_type: "raw" | |
| script: "scripts/build_azl3_raw.sh" | |
| - distribution: "azl3" | |
| image_type: "iso" | |
| script: "scripts/build_azl3_iso.sh" | |
| - distribution: "azl3" | |
| image_type: "immutable" | |
| script: "scripts/build_azl3_immutable.sh" | |
| fail-fast: false # Continue testing other images even if one fails | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 #v3.0.0 | |
| - name: Install Earthly | |
| uses: earthly/actions-setup@ee3f29b7334bcd54efbe129d3321f600ee0c8567 #v1.0.0 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| version: "latest" # or pin to a specific version like "v0.8.0" | |
| - name: Install system deps | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y qemu-system-x86 ovmf tree jq systemd-ukify mmdebstrap systemd-boot | |
| - name: Set up Go | |
| uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 #v6.0.0 | |
| with: | |
| go-version: stable # or a pinned version you know exists | |
| - name: Prepare build script | |
| run: | | |
| if [ ! -f "${{ matrix.script }}" ]; then | |
| echo "${{ matrix.script }} not found!" | |
| exit 1 | |
| fi | |
| chmod +x "${{ matrix.script }}" | |
| - name: Run ${{ matrix.distribution }} ${{ matrix.image_type }} boot test | |
| run: | | |
| echo "Starting ${{ matrix.distribution }} ${{ matrix.image_type }} image build and boot test..." | |
| # Ensure script has access to docker group for Earthly | |
| sudo usermod -aG docker $USER | |
| # Run the specific build script with QEMU test | |
| ./${{ matrix.script }} --qemu-test | |
| echo "${{ matrix.distribution }} ${{ matrix.image_type }} build and boot test completed." |