Skip to content

Commit 2184bfd

Browse files
committed
[ci] Create a network bootable files archive as a build artifact
Create an archive designed to be extracted to a web server (or TFTP server) directory, containing the network bootable files such as undionly.kpxe, ipxe.efi, etc. Incorporate the iPXE shim binaries, complete with the required symlinks such as snponly-shim.efi -> shimx64.efi. Signed-off-by: Michael Brown <mcb30@ipxe.org>
1 parent d98278a commit 2184bfd

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

.github/workflows/build.yml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,97 @@ jobs:
416416
ipxe-legacy.iso
417417
ipxe-legacy.usb
418418
419+
netboot:
420+
name: Netboot
421+
runs-on: ubuntu-latest
422+
needs:
423+
- bios
424+
- uefi
425+
- sbsign
426+
- shim
427+
container:
428+
image: ghcr.io/ipxe/ipxe-builder-utils
429+
env:
430+
biosarchs: >-
431+
i386:bin
432+
x86_64:bin-x86_64-pcbios
433+
biosfiles: >-
434+
ipxe.pxe
435+
ipxe-legacy.pxe
436+
undionly.kpxe
437+
efiarchs: >-
438+
arm32
439+
arm64
440+
i386
441+
loong64
442+
riscv32
443+
riscv64
444+
x86_64
445+
efifiles: >-
446+
ipxe.efi
447+
ipxe-legacy.efi
448+
snponly.efi
449+
sbarchs: >-
450+
arm64:aa64
451+
x86_64:x64
452+
sbfiles: >-
453+
ipxe.efi
454+
snponly.efi
455+
steps:
456+
457+
- name: Download
458+
uses: actions/download-artifact@v7
459+
with:
460+
pattern: "{bin,bin-x86_64-pcbios,bin-*-efi,bin-*-efi-sb,shim}"
461+
462+
- name: BIOS
463+
run: |
464+
for biosarch in ${{ env.biosarchs }} ; do
465+
IFS=: read -r arch bindir <<< "${biosarch}"
466+
mkdir -p ipxeboot/${arch}
467+
for file in ${{ env.biosfiles }} ; do
468+
cp ${bindir}/${file} ipxeboot/${arch}/${file}
469+
ln -sf x86_64/${file} ipxeboot/${file}
470+
done
471+
done
472+
473+
- name: UEFI
474+
run: |
475+
for arch in ${{ env.efiarchs }} ; do
476+
mkdir -p ipxeboot/${arch}
477+
for file in ${{ env.efifiles }} ; do
478+
cp bin-${arch}-efi/${file} ipxeboot/${arch}/${file}
479+
ln -sf x86_64/${file} ipxeboot/${file}
480+
done
481+
done
482+
483+
- name: UEFI SB
484+
run: |
485+
for sbarch in ${{ env.sbarchs }} ; do
486+
IFS=: read -r arch efiarch <<< ${sbarch}
487+
mkdir -p ipxeboot/${arch}-sb
488+
shimfile=shim${efiarch}.efi
489+
cp shim/${shimfile} ipxeboot/${arch}-sb/${shimfile}
490+
for file in ${{ env.sbfiles }} ; do
491+
shimlink=${file/.efi/-shim.efi}
492+
cp bin-${arch}-efi-sb/${file} ipxeboot/${arch}-sb/${file}
493+
ln -sf ${shimfile} ipxeboot/${arch}-sb/${shimlink}
494+
done
495+
done
496+
ln -sf x86_64-sb ipxeboot/sb
497+
498+
- name: Archive
499+
run: |
500+
tar cvzf ipxeboot.tar.gz ipxeboot
501+
502+
- name: Upload
503+
uses: actions/upload-artifact@v6
504+
with:
505+
name: netboot
506+
if-no-files-found: error
507+
path: |
508+
ipxeboot.tar.gz
509+
419510
publish:
420511
name: Publish
421512
runs-on: ubuntu-latest
@@ -427,6 +518,7 @@ jobs:
427518
- linux
428519
- shim
429520
- combine
521+
- netboot
430522
if: >-
431523
github.ref == 'refs/heads/master' &&
432524
vars.PAGES_REPO_NAME

0 commit comments

Comments
 (0)