Skip to content

Commit ab56888

Browse files
committed
CI: add manual uefionly boot.bin build
Move the CI build for deployable uefi-only boot.bin artifacts to asahi-installer. Those are not tied in any way to commits in a single repository so use repository variables to determine name and used Linux and U-boot tags. Expected use is to trigger manual workflow runs after updating one or more repository variables. Signed-off-by: Janne Grunau <[email protected]>
1 parent 7f3725e commit ab56888

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: uefi-only-build
2+
3+
# Controls when the action will run.
4+
on:
5+
# Triggers the workflow only on pull-requests when this file is changed.
6+
# Intended use is to manually trigger runs after updating the repository
7+
# variables `UEFI_DATE`, `UEFI_LINUX_TAG` or `UEFI_UBOOT_TAG`.
8+
pull_request:
9+
branches: [ main ]
10+
paths: [ ./github/workflows/uefi-only-install.yaml ]
11+
12+
# Allows you to run this workflow manually from the Actions tab
13+
workflow_dispatch:
14+
15+
jobs:
16+
uefi-only-boot-bin:
17+
runs-on: ubuntu-latest
18+
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v5
22+
with:
23+
submodules: recursive
24+
25+
- name: Checkout linux
26+
uses: actions/checkout@v5
27+
with:
28+
repository: AsahiLinux/linux
29+
ref: ${{ env.UEFI_LINUX_TAG }}
30+
path: linux
31+
sparse-checkout: 'arch/arm64/boot/dts/apple/'
32+
33+
- name: Checkout u-boot
34+
uses: actions/checkout@v5
35+
with:
36+
repository: AsahiLinux/u-boot
37+
ref: ${{ env.UEFI_UBOOT_TAG }}
38+
path: u-boot
39+
40+
- name: Install aarch64-linux-gnu- toolchain
41+
run: |
42+
sudo apt-get update
43+
sudo apt-get install --no-install-recommends -y \
44+
gcc-aarch64-linux-gnu \
45+
libgnutls28-dev \
46+
device-tree-compiler
47+
48+
- name: Install aarch64-unknown-none-softfloat rust target
49+
run: |
50+
rustup target install aarch64-unknown-none-softfloat
51+
52+
- name: Build
53+
run: |
54+
cd m1n1
55+
make -k -j2 ARCH=aarch64-linux-gnu- RELEASE=1
56+
57+
- name: Update u-boot apple device trees
58+
run: |
59+
cp -f linux/arch/arm64/boot/dts/apple/*.dts \
60+
linux/arch/arm64/boot/dts/apple/*.dtsi \
61+
linux/arch/arm64/boot/dts/apple/*.h \
62+
u-boot/arch/arm/dts/
63+
64+
- name: Build u-boot
65+
run: |
66+
cd u-boot
67+
make CROSS_COMPILE=aarch64-linux-gnu- apple_m1_defconfig
68+
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm -k -j2
69+
70+
- name: Create m1n1 uefi only boot.bin
71+
run: |
72+
mkdir -p out/esp/m1n1/
73+
gzip -k u-boot/u-boot-nodtb.bin
74+
cat m1n1/build/m1n1.bin \
75+
u-boot/arch/arm/dts/t60*.dtb \
76+
u-boot/arch/arm/dts/t81*.dtb \
77+
u-boot/u-boot-nodtb.bin.gz \
78+
> out/esp/m1n1/boot.bin
79+
cd out
80+
zip -r uefi-only-${{ env.UEFI_DATE }}-${{ env.UEFI_LINUX_TAG }}.zip esp
81+
82+
- uses: actions/upload-artifact@v4
83+
with:
84+
name: ci-uefi-only-${{ env.UEFI_DATE }}-${{ env.UEFI_LINUX_TAG }}
85+
path: |
86+
out/uefi-only-${{ env.UEFI_DATE }}-${{ env.UEFI_LINUX_TAG }}.zip

0 commit comments

Comments
 (0)