diff --git a/.github/workflows/build_arm.yaml b/.github/workflows/build_arm.yaml index 9f55ee9cdf..7c32e80996 100644 --- a/.github/workflows/build_arm.yaml +++ b/.github/workflows/build_arm.yaml @@ -104,7 +104,7 @@ jobs: TARGETS: RELEASE,DEBUG,NOOPT TOOLCHAIN: GCC - - name: Build ArmVirtQemu + - name: Build ArmVirtQemu for Linux if: always() run: ./efibuild.sh env: diff --git a/.github/workflows/build_nolto.yaml b/.github/workflows/build_nolto.yaml index 8bab2ea242..eab0ec7a2f 100644 --- a/.github/workflows/build_nolto.yaml +++ b/.github/workflows/build_nolto.yaml @@ -107,7 +107,7 @@ jobs: TARGETS: RELEASE,DEBUG TOOLCHAIN: GCC - - name: Build ArmVirtQemu + - name: Build ArmVirtQemu for Linux if: always() run: ./efibuild.sh env: diff --git a/.github/workflows/build_x86.yaml b/.github/workflows/build_x86.yaml index 47fcc276ca..0c7769101b 100644 --- a/.github/workflows/build_x86.yaml +++ b/.github/workflows/build_x86.yaml @@ -57,6 +57,30 @@ jobs: SELFPKG: MdePkg SKIP_BUILD: 1 + - name: Build OvmfPkgIa32 for Linux + if: always() + run: ./efibuild.sh + env: + SELFPKG: OvmfPkgIa32 + SELFPKG_DIR: OvmfPkg + ARCHS: IA32 + SKIP_TESTS: 1 + SKIP_PACKAGE: 1 + BUILD_ARGUMENTS: -D DEBUG_ON_SERIAL_PORT + + - name: Prepare artifacts with firmwares for Linux + if: always() + run: | + IFS=', ' read -r -a TARGETS <<< "$TARGETS" + for target in "${TARGETS[@]}"; do + mkdir -p ./firmware_artifacts/Ovmf/Linux/Ia32/"$target"_"$TOOLCHAIN" + cp ./Build/OvmfIa32/"$target"_"$TOOLCHAIN"/FV/OVMF.fd ./firmware_artifacts/Ovmf/Linux/Ia32/"$target"_"$TOOLCHAIN"/FW.fd + done + rm -r ./Build/* + env: + TARGETS: RELEASE,DEBUG,NOOPT + TOOLCHAIN: XCODE5 + - name: Build OvmfPkgIa32 if: always() run: ./efibuild.sh @@ -167,6 +191,30 @@ jobs: SELFPKG: MdePkg SKIP_BUILD: 1 + - name: Build OvmfPkgIa32 for Linux + if: always() + run: ./efibuild.sh + env: + SELFPKG: OvmfPkgIa32 + SELFPKG_DIR: OvmfPkg + ARCHS: IA32 + SKIP_TESTS: 1 + SKIP_PACKAGE: 1 + BUILD_ARGUMENTS: -D DEBUG_ON_SERIAL_PORT + + - name: Prepare artifacts with firmwares for Linux + if: always() + run: | + IFS=', ' read -r -a TARGETS <<< "$TARGETS" + for target in "${TARGETS[@]}"; do + mkdir -p ./firmware_artifacts/Ovmf/Linux/Ia32/"$target"_"$TOOLCHAIN" + cp ./Build/OvmfIa32/"$target"_"$TOOLCHAIN"/FV/OVMF.fd ./firmware_artifacts/Ovmf/Linux/Ia32/"$target"_"$TOOLCHAIN"/FW.fd + done + rm -r ./Build/* + env: + TARGETS: RELEASE,DEBUG,NOOPT + TOOLCHAIN: VS2019 + - name: Build OvmfPkgIa32 if: always() run: ./efibuild.sh @@ -260,6 +308,32 @@ jobs: SELFPKG: MdePkg SKIP_BUILD: 1 + - name: Build OvmfPkgIa32 for Linux + if: always() + run: docker compose run build-package + env: + SELFPKG: OvmfPkgIa32 + SELFPKG_DIR: OvmfPkg + TOOLCHAINS: CLANGPDB + ARCHS: IA32 + TARGETS: RELEASE,DEBUG,NOOPT + SKIP_TESTS: 1 + SKIP_PACKAGE: 1 + BUILD_ARGUMENTS: -D DEBUG_ON_SERIAL_PORT + + - name: Prepare artifacts with firmwares for Linux + if: always() + run: | + IFS=', ' read -r -a TARGETS <<< "$TARGETS" + for target in "${TARGETS[@]}"; do + mkdir -p ./firmware_artifacts/Ovmf/Linux/Ia32/"$target"_"$TOOLCHAIN" + cp ./Build/OvmfIa32/"$target"_"$TOOLCHAIN"/FV/OVMF.fd ./firmware_artifacts/Ovmf/Linux/Ia32/"$target"_"$TOOLCHAIN"/FW.fd + done + rm -r ./Build/* + env: + TARGETS: RELEASE,DEBUG,NOOPT + TOOLCHAIN: CLANGPDB + - name: Build OvmfPkgIa32 if: always() run: docker compose run build-package @@ -365,6 +439,32 @@ jobs: SELFPKG: MdePkg SKIP_BUILD: 1 + - name: Build OvmfPkgIa32 for Linux + if: always() + run: docker compose run build-package + env: + SELFPKG: OvmfPkgIa32 + SELFPKG_DIR: OvmfPkg + TOOLCHAINS: CLANGDWARF + ARCHS: IA32 + TARGETS: RELEASE,DEBUG,NOOPT + SKIP_TESTS: 1 + SKIP_PACKAGE: 1 + BUILD_ARGUMENTS: -D DEBUG_ON_SERIAL_PORT + + - name: Prepare artifacts with firmwares for Linux + if: always() + run: | + IFS=', ' read -r -a TARGETS <<< "$TARGETS" + for target in "${TARGETS[@]}"; do + mkdir -p ./firmware_artifacts/Ovmf/Linux/Ia32/"$target"_"$TOOLCHAIN" + cp ./Build/OvmfIa32/"$target"_"$TOOLCHAIN"/FV/OVMF.fd ./firmware_artifacts/Ovmf/Linux/Ia32/"$target"_"$TOOLCHAIN"/FW.fd + done + rm -r ./Build/* + env: + TARGETS: RELEASE,DEBUG,NOOPT + TOOLCHAIN: CLANGDWARF + - name: Build OvmfPkgIa32 if: always() run: docker compose run build-package @@ -470,6 +570,32 @@ jobs: SELFPKG: MdePkg SKIP_BUILD: 1 + - name: Build OvmfPkgIa32 for Linux + if: always() + run: docker compose run build-package + env: + SELFPKG: OvmfPkgIa32 + SELFPKG_DIR: OvmfPkg + TOOLCHAINS: GCC + ARCHS: IA32 + TARGETS: RELEASE,DEBUG,NOOPT + SKIP_TESTS: 1 + SKIP_PACKAGE: 1 + BUILD_ARGUMENTS: -D DEBUG_ON_SERIAL_PORT + + - name: Prepare artifacts with firmwares for Linux + if: always() + run: | + IFS=', ' read -r -a TARGETS <<< "$TARGETS" + for target in "${TARGETS[@]}"; do + mkdir -p ./firmware_artifacts/Ovmf/Linux/Ia32/"$target"_"$TOOLCHAIN" + cp ./Build/OvmfIa32/"$target"_"$TOOLCHAIN"/FV/OVMF.fd ./firmware_artifacts/Ovmf/Linux/Ia32/"$target"_"$TOOLCHAIN"/FW.fd + done + rm -r ./Build/* + env: + TARGETS: RELEASE,DEBUG,NOOPT + TOOLCHAIN: GCC + - name: Build OvmfPkgIa32 if: always() run: docker compose run build-package @@ -633,6 +759,8 @@ jobs: echo Checking "$PACKAGE""$arch" "$target"_"$TOOLCHAIN" python3 test_qemu_fw.py ./firmware_artifacts/"$PACKAGE"/"$arch"/"$target"_"$TOOLCHAIN"/FW.fd done + echo Checking "$PACKAGE"Ia32 "$target"_"$TOOLCHAIN" for Linux + python3 test_qemu_fw.py ./firmware_artifacts/"$PACKAGE"/Linux/Ia32/"$target"_"$TOOLCHAIN"/FW.fd done env: PACKAGE: ${{ matrix.package.name }} @@ -650,6 +778,8 @@ jobs: echo Checking "$PACKAGE""$arch" "$target"_"$TOOLCHAIN" python3 test_qemu_fw.py ./firmware_artifacts/"$PACKAGE"/"$arch"/"$target"_"$TOOLCHAIN"/FW.fd --test-linux done + echo Checking "$PACKAGE"Ia32 "$target"_"$TOOLCHAIN" for Linux + python3 test_qemu_fw.py ./firmware_artifacts/"$PACKAGE"/Linux/Ia32/"$target"_"$TOOLCHAIN"/FW.fd --test-linux done env: PACKAGE: ${{ matrix.package.name }}