[ci] Upload a selection of build artifacts from each run #551
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: Build | |
| on: push | |
| env: | |
| MAKEFLAGS: "-j4 GITVERSION=${{ github.sha }}" | |
| jobs: | |
| bios: | |
| name: BIOS / ${{ matrix.arch }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: | |
| - i386 | |
| - x86_64 | |
| container: | |
| image: ghcr.io/ipxe/ipxe-builder-${{ matrix.arch }} | |
| env: | |
| bindir: >- | |
| ${{ matrix.arch == 'i386' && 'bin' || 'bin-x86_64-pcbios' }} | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v6 | |
| - name: Build | |
| working-directory: src | |
| run: | | |
| make ${{ env.bindir }}/10ec8139.rom \ | |
| ${{ env.bindir }}/8086100e.mrom \ | |
| ${{ env.bindir }}/ipxe.dsk \ | |
| ${{ env.bindir }}/ipxe.iso \ | |
| ${{ env.bindir }}/ipxe.pxe \ | |
| ${{ env.bindir }}/ipxe.usb \ | |
| ${{ env.bindir }}/undionly.kpxe | |
| - name: Upload | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ${{ env.bindir }} | |
| if-no-files-found: error | |
| path: | | |
| src/${{ env.bindir }}/ipxe.iso | |
| src/${{ env.bindir }}/ipxe.pxe | |
| src/${{ env.bindir }}/ipxe.usb | |
| src/${{ env.bindir }}/undionly.kpxe | |
| sbi: | |
| name: SBI / ${{ matrix.arch }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: | |
| - riscv32 | |
| - riscv64 | |
| container: | |
| image: ghcr.io/ipxe/ipxe-builder-${{ matrix.arch }} | |
| env: | |
| bindir: bin-${{ matrix.arch }} | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v6 | |
| - name: Build | |
| working-directory: src | |
| run: | | |
| make ${{ env.bindir }}/ipxe.pf32 \ | |
| ${{ env.bindir }}/ipxe.lkrn \ | |
| ${{ env.bindir }}/ipxe.sbi | |
| - name: Upload | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ${{ env.bindir }} | |
| if-no-files-found: error | |
| path: | | |
| src/${{ env.bindir }}/ipxe.lkrn | |
| src/${{ env.bindir }}/ipxe.sbi | |
| uefi: | |
| name: UEFI / ${{ matrix.arch }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: | |
| - arm32 | |
| - arm64 | |
| - i386 | |
| - loong64 | |
| - riscv32 | |
| - riscv64 | |
| - x86_64 | |
| container: | |
| image: ghcr.io/ipxe/ipxe-builder-${{ matrix.arch }} | |
| env: | |
| bindir: bin-${{ matrix.arch }}-efi | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v6 | |
| - name: Build | |
| working-directory: src | |
| run: | | |
| make ${{ env.bindir }}/ipxe.efi \ | |
| ${{ env.bindir }}/ipxe.iso \ | |
| ${{ env.bindir }}/ipxe.usb \ | |
| ${{ env.bindir }}/snponly.efi | |
| - name: Upload | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ${{ env.bindir }} | |
| if-no-files-found: error | |
| path: | | |
| src/${{ env.bindir }}/ipxe.efi | |
| src/${{ env.bindir }}/ipxe.iso | |
| src/${{ env.bindir }}/ipxe.usb | |
| src/${{ env.bindir }}/snponly.efi | |
| tests: | |
| name: Tests / ${{ matrix.arch }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: arm32 | |
| exec: qemu-arm-static | |
| - arch: arm64 | |
| exec: qemu-aarch64-static | |
| - arch: i386 | |
| exec: valgrind | |
| - arch: loong64 | |
| exec: qemu-loongarch64-static | |
| - arch: riscv32 | |
| exec: qemu-riscv32-static | |
| - arch: riscv64 | |
| exec: qemu-riscv64-static | |
| - arch: x86_64 | |
| exec: valgrind | |
| container: | |
| image: ghcr.io/ipxe/ipxe-builder-${{ matrix.arch }} | |
| env: | |
| bindir: bin-${{ matrix.arch }}-linux | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v6 | |
| - name: Build | |
| working-directory: src | |
| run: | | |
| make ${{ env.bindir }}/tests.linux | |
| - name: Test | |
| working-directory: src | |
| run: | | |
| ${{ matrix.exec }} ${{ env.bindir }}/tests.linux |