Skip to content

Commit b434f6b

Browse files
committed
ci: add a workflow for bootloader
Signed-off-by: Changyuan Lyu <changyuanl@google.com>
1 parent 40914c8 commit b434f6b

3 files changed

Lines changed: 47 additions & 4 deletions

File tree

.github/workflows/bootloader.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Build Bootloader
2+
3+
on:
4+
workflow_dispatch:
5+
workflow_call:
6+
pull_request:
7+
branches: ["main"]
8+
paths:
9+
- bootloader/**
10+
- .github/workflows/bootloader.yml
11+
12+
jobs:
13+
build_bootloader:
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
include:
18+
- os: ubuntu-latest
19+
arch: x86_64
20+
- os: ubuntu-24.04-arm
21+
arch: aarch64
22+
runs-on: ${{ matrix.os }}
23+
steps:
24+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
25+
- uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
26+
with:
27+
go-version: stable
28+
cache-dependency-path: "**/go.sum"
29+
- name: Install LLVM and Clang
30+
uses: KyleMayes/install-llvm-action@98e68e10c96dffcb7bfed8b2144541a66b49aa02 # v2.0.8
31+
with:
32+
version: "20"
33+
- name: Install dependencies
34+
run: sudo apt-get update && sudo apt-get install -y libelf-dev
35+
- name: Build bootloader
36+
run: ARCH=${{ matrix.arch }} ./bootloader/build.sh
37+
- name: Upload artifact
38+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
39+
with:
40+
name: kernel-${{ matrix.arch }}
41+
path: target/bootloader-${{ matrix.arch }}/kernel-${{ matrix.arch }}

bootloader/build.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function fetch_source() {
1414
pushd target
1515

1616
echo "Fetching Linux source..."
17-
wget ${LINUX_SRC} -O linux.tar.xz
17+
wget -q -O linux.tar.xz ${LINUX_SRC}
1818
tar xf linux.tar.xz
1919
mv linux-* linux
2020

@@ -60,7 +60,9 @@ function build_linux() {
6060
echo "Building Linux kernel..."
6161
make ${vars[@]}
6262

63-
echo "Image: ${TARGET_DIR}/${image}"
63+
mv ${TARGET_DIR}/${image} ${TARGET_DIR}/kernel-${ARCH}
64+
65+
echo "Image: ${TARGET_DIR}/kernel-${ARCH}"
6466
}
6567

6668

docs/cloud-image.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ bootloader/build.sh
3333
```
3434

3535
The Alioth binary will be located at `target/release/alioth`, and the bootloader
36-
kernel image at `target/bootloader-x86_64/linux/arch/x86/boot/bzImage`.
36+
kernel image at `target/bootloader-x86_64/kernel-x86_64`.
3737

3838
## Preparing Disk Images
3939

@@ -82,7 +82,7 @@ Run the following command to start the VM.
8282
```bash
8383
./alioth -l info --log-to-file boot \
8484
-m size=4G -p count=4 \
85-
-k ./bzImage \
85+
-k ./kernel-x86_64 \
8686
--entropy \
8787
--pvpanic \
8888
--blk file,path=Fedora-Cloud-Base-Generic-43-1.6.x86_64.raw \

0 commit comments

Comments
 (0)