Nightly EDK2 OVMF Build #459
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: Nightly EDK2 OVMF Build | |
| on: | |
| schedule: | |
| - cron: '0 0 * * *' | |
| jobs: | |
| nightly: | |
| name: Nightly EDK2 OVMF Build | |
| runs-on: ubuntu-latest | |
| container: archlinux:latest | |
| steps: | |
| - name: Install dependencies | |
| run: pacman --noconfirm -Syu && pacman --needed --noconfirm -S base-devel git wget python acpica nasm | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| - name: Git config | |
| run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| - name: Rebuild | |
| run: | | |
| set -ex | |
| GCC_VERSION=15.2.0 | |
| for i in aarch64 loongarch64 riscv64; do | |
| wget https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/$GCC_VERSION/x86_64-gcc-$GCC_VERSION-nolibc-$i-linux.tar.gz | |
| tar -xf x86_64-gcc-$GCC_VERSION-nolibc-$i-linux.tar.gz | |
| export PATH="$(pwd -P)"/gcc-$GCC_VERSION-nolibc/$i-linux/bin:"$PATH" | |
| done | |
| git clone --recursive --depth=1 https://github.com/tianocore/edk2.git | |
| ( cd edk2 && patch -p1 <../ovmf.patch ) | |
| export PACKAGES_PATH="$(pwd -P)"/edk2 | |
| export GCC5_AARCH64_PREFIX=aarch64-linux- | |
| export GCC5_LOONGARCH64_PREFIX=loongarch64-linux- | |
| export GCC5_RISCV64_PREFIX=riscv64-linux- | |
| set +e | |
| . edk2/edksetup.sh | |
| set -e | |
| make -C edk2/BaseTools | |
| build -b RELEASE -t GCC5 -a AARCH64 -p ArmVirtPkg/ArmVirtQemu.dsc | |
| build -b RELEASE -t GCC5 -a LOONGARCH64 -p OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc | |
| build -b RELEASE -t GCC5 -a RISCV64 -p OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc | |
| build -b RELEASE -t GCC5 -a X64 -p OvmfPkg/OvmfPkgX64.dsc -D FD_SIZE_2MB | |
| mkdir -p output | |
| cp Build/ArmVirtQemu-AArch64/RELEASE_GCC5/FV/QEMU_EFI.fd output/ovmf-code-aarch64.fd | |
| cp Build/ArmVirtQemu-AArch64/RELEASE_GCC5/FV/QEMU_VARS.fd output/ovmf-vars-aarch64.fd | |
| cp Build/LoongArchVirtQemu/RELEASE_GCC5/FV/QEMU_EFI.fd output/ovmf-code-loongarch64.fd | |
| cp Build/LoongArchVirtQemu/RELEASE_GCC5/FV/QEMU_VARS.fd output/ovmf-vars-loongarch64.fd | |
| cp Build/RiscVVirtQemu/RELEASE_GCC5/FV/RISCV_VIRT_CODE.fd output/ovmf-code-riscv64.fd | |
| cp Build/RiscVVirtQemu/RELEASE_GCC5/FV/RISCV_VIRT_VARS.fd output/ovmf-vars-riscv64.fd | |
| cp Build/OvmfX64/RELEASE_GCC5/FV/OVMF_CODE.fd output/ovmf-code-x86_64.fd | |
| cp Build/OvmfX64/RELEASE_GCC5/FV/OVMF_VARS.fd output/ovmf-vars-x86_64.fd | |
| # Support for IA32 was dropped upstream | |
| wget -O output/ovmf-code-ia32.fd https://github.com/osdev0/edk2-ovmf-nightly/releases/download/nightly-2025-09-09/ovmf-code-ia32.fd | |
| wget -O output/ovmf-vars-ia32.fd https://github.com/osdev0/edk2-ovmf-nightly/releases/download/nightly-2025-09-09/ovmf-vars-ia32.fd | |
| - name: Set TAG_DATE variable | |
| run: echo "TAG_DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV | |
| - name: Rename output directory | |
| run: mv output edk2-ovmf | |
| - name: Create release tarball | |
| run: tar -Jcvf edk2-ovmf.tar.xz edk2-ovmf | |
| - name: Tag new nightly release | |
| run: git tag nightly-$TAG_DATE && git push --tags | |
| - name: Create nightly release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| name: Nightly Build ${{ env.TAG_DATE }} | |
| tag_name: nightly-${{ env.TAG_DATE }} | |
| body: Images of an up to date EDK2 OVMF nightly build. | |
| files: | | |
| edk2-ovmf.tar.xz | |
| edk2-ovmf/* | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |