Skip to content

Commit c2b7c78

Browse files
committed
Create build.yml
1 parent 689c079 commit c2b7c78

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

.github/workflows/build.yml

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
pull_request:
6+
workflow_dispatch:
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-24.04
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
include:
15+
- { system: 24.04, platform: ArmVirtQemu, arch: ARM, target: RELEASE }
16+
- { system: 24.04, platform: ArmVirtQemu, arch: ARM, target: DEBUG }
17+
- { system: 24.04, platform: ArmVirtQemu, arch: ARM, target: NOOPT }
18+
- { system: 24.04, platform: ArmVirtQemu, arch: AARCH64, target: RELEASE }
19+
- { system: 24.04, platform: ArmVirtQemu, arch: AARCH64, target: DEBUG }
20+
- { system: 24.04, platform: ArmVirtQemu, arch: AARCH64, target: NOOPT }
21+
- { system: devel, platform: ArmVirtQemu, arch: ARM, target: RELEASE }
22+
- { system: devel, platform: ArmVirtQemu, arch: ARM, target: DEBUG }
23+
- { system: devel, platform: ArmVirtQemu, arch: ARM, target: NOOPT }
24+
- { system: devel, platform: ArmVirtQemu, arch: AARCH64, target: RELEASE }
25+
- { system: devel, platform: ArmVirtQemu, arch: AARCH64, target: DEBUG }
26+
- { system: devel, platform: ArmVirtQemu, arch: AARCH64, target: NOOPT }
27+
env:
28+
artifact_fd_path: ${{ format('{0}/QEMU_EFI_{1}_{2}{3}.fd', github.workspace, matrix.arch, matrix.target, matrix.system == 'devel' && '_devel' || '') }}
29+
30+
steps:
31+
- uses: actions/setup-python@main
32+
if: ${{ matrix.system == 'devel' }}
33+
with:
34+
python-version: 3.14-dev
35+
36+
- name: 'Update system to devel'
37+
if: ${{ matrix.system == 'devel' }}
38+
run: |
39+
sudo sed -i 's/noble/devel/g' /etc/apt/sources.list.d/ubuntu.sources
40+
41+
- name: 'Install software packages'
42+
run: |
43+
sudo apt update
44+
sudo apt full-upgrade
45+
sudo apt install gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu acpica-tools uuid-dev
46+
47+
- uses: actions/checkout@main
48+
with:
49+
submodules: 'true'
50+
51+
- name: 'Build ${{ matrix.arch }}'
52+
env:
53+
fd_path: ${{ format('{0}/Build/{1}-{2}/{3}_GCC/FV/QEMU_EFI.fd', github.workspace, matrix.platform, matrix.arch, matrix.target) }}
54+
run: |
55+
make -C BaseTools
56+
source edksetup.sh
57+
export GCC_ARM_PREFIX=arm-linux-gnueabihf-
58+
export GCC_AARCH64_PREFIX=aarch64-linux-gnu-
59+
export WORKSPACE=${{ github.workspace }}
60+
export EDK_TOOLS_PATH=${{ github.workspace }}/BaseTools
61+
export CONF_PATH=${{ github.workspace }}/Conf
62+
cd BaseTools/BinWrappers/PosixLike
63+
export PATH=$PATH:${{ github.workspace }}/BaseTools/BinWrappers/PosixLike
64+
./build -a ${{ matrix.arch }} -t GCC -b ${{ matrix.target }} -p ArmVirtPkg/${{ matrix.platform }}.dsc
65+
echo "version=$(date +%Y%m%d)-$(git rev-parse --short HEAD)" > $GITHUB_ENV
66+
mv $fd_path $artifact_fd_path
67+
68+
- name: 'Upload artifact'
69+
uses: actions/upload-artifact@main
70+
with:
71+
name: ${{ format('{0} {1} {2} (Ubuntu {3} Build)', matrix.platform, matrix.arch, matrix.target, matrix.system) }}
72+
path: ${{ env.artifact_fd_path }}
73+
compression-level: 9
74+
75+
- name: 'Create a Release'
76+
uses: ncipollo/release-action@main
77+
with:
78+
allowUpdates : true
79+
commit: main
80+
tag: 'edk2-${{ env.version }}'
81+
artifacts: '${{ env.artifact_fd_path }}'

0 commit comments

Comments
 (0)