diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92f5299d..3f8dc7d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,12 +74,21 @@ jobs: name: framework.efi path: framework_uefi/build/x86_64-unknown-uefi/boot.efi - - name: Install mtools to build ESP (Linux) - run: sudo apt-get install -y mtools + - name: Install mtools to build ESP and ISO (Linux) + run: sudo apt-get install -y mtools genisoimage - name: Build ESP (Linux) run: make -C framework_uefi + - name: Build ISO (Linux) + run: make -C framework_uefi iso + + - name: Upload UEFI App ISO + uses: actions/upload-artifact@v4 + with: + name: UEFI-Shell-fwk.iso + path: framework_uefi/build/x86_64-unknown-uefi/UEFI-Shell-fwk.iso + build-windows: name: Build Windows runs-on: windows-2022 diff --git a/framework_uefi/Makefile b/framework_uefi/Makefile index 6963d8f2..a571ba17 100644 --- a/framework_uefi/Makefile +++ b/framework_uefi/Makefile @@ -15,6 +15,8 @@ QEMU_FLAGS=\ all: $(BUILD)/boot.img +iso: $(BUILD)/UEFI-Shell-fwk.iso + clean: rm -r $(BUILD) @@ -39,6 +41,19 @@ $(BUILD)/efi.img: $(BUILD)/boot.efi mcopy -i $@.tmp $< ::efi/boot/bootx64.efi mv $@.tmp $@ +$(BUILD)/shellx64.efi: + wget https://github.com/pbatard/UEFI-Shell/releases/download/24H2/shellx64.efi -O $@ + +$(BUILD)/UEFI-Shell-fwk.iso: $(BUILD)/boot.efi $(BUILD)/shellx64.efi + mkdir -p $(BUILD)/$@.tmp/efi/boot + cp $(BUILD)/boot.efi $(BUILD)/$@.tmp/efi/boot/fwk.efi + cp $(BUILD)/shellx64.efi $(BUILD)/$@.tmp/efi/boot/bootx64.efi + genisoimage -v \ + -V "UEFI SHELL with fwk.efi" \ + -JR \ + -o "$(BUILD)/UEFI-Shell-fwk.iso" \ + $(BUILD)/$@.tmp + $(BUILD)/boot.efi: ../Cargo.lock $(SRC_DIR)/Cargo.toml $(SRC_DIR)/src/* mkdir -p $(BUILD) cargo rustc \