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