Skip to content

Commit a14813d

Browse files
committed
Add GCC EDK2 build
1 parent 5864da8 commit a14813d

File tree

3 files changed

+88
-0
lines changed

3 files changed

+88
-0
lines changed
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: Linux, gcc, EDK2
2+
3+
on:
4+
push:
5+
tags:
6+
- '*'
7+
8+
env:
9+
COMPILER: GCC5
10+
GCC5_ARM_PREFIX: arm-linux-gnueabi-
11+
GCC5_AARCH64_PREFIX: aarch64-linux-gnu-
12+
GCC5_RISCV64_PREFIX: riscv64-linux-gnu-
13+
FULL_SHELL_GUID: EA4BB293-2D7F-4456-A681-1F22F42CD0BC
14+
BUILD_TYPES: DEBUG RELEASE
15+
ARCHS: X64 IA32 AARCH64 ARM RISCV64
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
21+
steps:
22+
- name: Set version
23+
id: set_version
24+
run: echo "::set-output name=version::${GITHUB_REF/refs\/tags\//}"
25+
- name: Install toolchains
26+
run: |
27+
sudo apt install python3-distutils nasm uuid-dev gcc-9-multilib gcc-9-aarch64-linux-gnu gcc-9-arm-linux-gnueabi gcc-9-riscv64-linux-gnu genisoimage
28+
sudo ln -s /usr/bin/aarch64-linux-gnu-gcc-9 /usr/bin/aarch64-linux-gnu-gcc
29+
sudo ln -s /usr/bin/aarch64-linux-gnu-gcc-ar-9 /usr/bin/aarch64-linux-gnu-gcc-ar
30+
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-9 /usr/bin/arm-linux-gnueabi-gcc
31+
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-ar-9 /usr/bin/arm-linux-gnueabi-gcc-ar
32+
sudo ln -s /usr/bin/riscv64-linux-gnu-gcc-9 /usr/bin/riscv64-linux-gnu-gcc
33+
sudo ln -s /usr/bin/riscv64-linux-gnu-gcc-ar-9 /usr/bin/riscv64-linux-gnu-gcc-ar
34+
sudo ln -s /usr/riscv64-linux-gnu/include/gnu/stubs-lp64d.h /usr/riscv64-linux-gnu/include/gnu/stubs-lp64.h
35+
- name: Checkout repository and submodules
36+
uses: actions/checkout@v2
37+
with:
38+
submodules: recursive
39+
- name: Set up EDK2
40+
run: make -C edk2/BaseTools
41+
- name: Build UEFI binaries
42+
run: |
43+
cd edk2
44+
source edksetup.sh
45+
for BUILD_TYPE in ${{ env.BUILD_TYPES }}; do
46+
for ARCH in ${{ env.ARCHS }} ; do
47+
build -a $ARCH -b $BUILD_TYPE -t ${{ env.COMPILER }} -p ShellPkg/ShellPkg.dsc
48+
done
49+
done
50+
- name: Create ISO filesystem structure
51+
run: |
52+
for BUILD_TYPE in ${{ env.BUILD_TYPES }}; do
53+
mkdir -p $BUILD_TYPE/efi/boot
54+
for ARCH in ${{ env.ARCHS }}; do
55+
mv edk2/Build/Shell/${BUILD_TYPE}_${{ env.COMPILER }}/$ARCH/Shell_${{ env.FULL_SHELL_GUID }}.efi $BUILD_TYPE/efi/boot/boot${ARCH,,}.efi
56+
done
57+
if [ -f $BUILD_TYPE/efi/boot/bootaarch64.efi ]; then
58+
mv $BUILD_TYPE/efi/boot/bootaarch64.efi $BUILD_TYPE/efi/boot/bootaa64.efi
59+
fi
60+
done
61+
- name: Display SHA-256
62+
run: |
63+
for BUILD_TYPE in ${{ env.BUILD_TYPES }}; do
64+
sha256sum $BUILD_TYPE/efi/boot/*.efi
65+
done
66+
- name: Generate ISO images
67+
run: |
68+
for BUILD_TYPE in ${{ env.BUILD_TYPES }}; do
69+
EXTRA="" && [[ $BUILD_TYPE == DEBUG ]] && EXTRA=" (DEBUG)"
70+
genisoimage -v -V "UEFI SHELL ${{ steps.set_version.outputs.version }} ($BUILD_TYPE)" -JR -o "UEFI-Shell_${{ steps.set_version.outputs.version }}$EXTRA.iso" $BUILD_TYPE
71+
done
72+
sha256sum *.iso
73+
- name: Upload artifacts
74+
uses: actions/upload-artifact@v2
75+
with:
76+
name: ISOs
77+
path: ./*.iso
78+
- name: Create release
79+
uses: softprops/action-gh-release@v1
80+
env:
81+
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
82+
with:
83+
body: UEFI Shell ${{ steps.set_version.outputs.version }}
84+
files: ./*.iso

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "edk2"]
2+
path = edk2
3+
url = https://github.com/tianocore/edk2.git

edk2

Submodule edk2 added at ef56f55

0 commit comments

Comments
 (0)