${{ env.bindir }}/8086100e.mrom \
${{ env.bindir }}/ipxe.dsk \
${{ env.bindir }}/ipxe.iso \
+ ${{ env.bindir }}/ipxe.lkrn \
${{ env.bindir }}/ipxe.pxe \
${{ env.bindir }}/ipxe.usb \
${{ env.bindir }}/undionly.kpxe
name: ${{ env.bindir }}
if-no-files-found: error
path: |
- src/${{ env.bindir }}/ipxe.iso
+ src/${{ env.bindir }}/ipxe.lkrn
src/${{ env.bindir }}/ipxe.pxe
- src/${{ env.bindir }}/ipxe.usb
src/${{ env.bindir }}/undionly.kpxe
sbi:
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:
working-directory: src
run: |
${{ matrix.exec }} ${{ env.bindir }}/tests.linux
+
+ combine:
+ name: BIOS + UEFI
+ runs-on: ubuntu-latest
+ needs:
+ - bios
+ - uefi
+ container:
+ image: ghcr.io/ipxe/ipxe-signer
+ env:
+ binaries: >-
+ bin-x86_64-pcbios/ipxe.lkrn
+ bin-arm32-efi/ipxe.efi
+ bin-arm64-efi/ipxe.efi
+ bin-i386-efi/ipxe.efi
+ bin-loong64-efi/ipxe.efi
+ bin-riscv32-efi/ipxe.efi
+ bin-riscv64-efi/ipxe.efi
+ bin-x86_64-efi/ipxe.efi
+ steps:
+
+ - name: Check out code
+ uses: actions/checkout@v6
+
+ - name: Download
+ uses: actions/download-artifact@v7
+ with:
+ pattern: "{bin-x86_64-pcbios,bin-*-efi}"
+
+ - name: Combine
+ run: |
+ # Provide an editable placeholder autoexec.ipxe for the USB image
+ cat > autoexec.ipxe <<'EOF'
+ #!ipxe
+ echo
+ prompt --key 0x02 --timeout 2000 \
+ Press Ctrl-B for the iPXE command line... \
+ && shell || autoboot
+ EOF
+ ./src/util/genfsimg -o ipxe.iso ${{ env.binaries }}
+ ./src/util/genfsimg -o ipxe.usb -s autoexec.ipxe ${{ env.binaries }}
+
+ - name: Upload
+ uses: actions/upload-artifact@v6
+ with:
+ name: bin-combined
+ if-no-files-found: error
+ path: |
+ ipxe.iso
+ ipxe.usb