Skip to content

Commit ed6cc33

Browse files
committed
feat(workflows): add support to build releases
Signed-off-by: Diogo Costa <diogoandreveigacosta@gmail.com>
1 parent 71367a4 commit ed6cc33

File tree

2 files changed

+114
-0
lines changed

2 files changed

+114
-0
lines changed

.github/workflows/qemu_arch64.yaml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: qemu-aarch64-virt Linux Guest Build
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
build-buildroot:
8+
runs-on: ubuntu-latest
9+
container: baoproject/bao:latest
10+
11+
steps:
12+
- name: Install Required Packages
13+
run: |
14+
apt-get update && apt-get install -y file cpio unzip rsync bc
15+
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
19+
- name: Build Initramfs
20+
run: |
21+
PLATFORM="qemu-aarch64-virt"
22+
ARCH="aarch64"
23+
export PLATFORM ARCH
24+
echo "Building Initramfs for $PLATFORM"
25+
make PLATFORM=$PLATFORM ARCH=$ARCH buildroot
26+
tar -czf "initramfs_${PLATFORM}.tar.gz" "wrkdir/rootfs_${PLATFORM}.cpio"
27+
28+
- name: Build Kernel Image
29+
run: |
30+
PLATFORM="qemu-aarch64-virt"
31+
ARCH="aarch64"
32+
export PLATFORM ARCH
33+
echo "Building Kernel Image for $PLATFORM"
34+
make PLATFORM=$PLATFORM ARCH=$ARCH linux
35+
tar -czf "Image-${PLATFORM}.tar.gz" "wrkdir/Image-${PLATFORM}"
36+
37+
- name: Create Release
38+
id: create_release
39+
uses: actions/create-release@v1
40+
env:
41+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42+
with:
43+
tag_name: v1.0.0-qemu-aarch64-virt
44+
release_name: Release v1.0.0 for qemu-aarch64-virt
45+
draft: false
46+
prerelease: false
47+
48+
- name: Upload Release Assets
49+
run: |
50+
PLATFORM="qemu-aarch64-virt"
51+
for FILE in "initramfs_${PLATFORM}.tar.gz" "Image-${PLATFORM}.tar.gz"; do
52+
echo "Uploading $FILE"
53+
curl -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
54+
-H "Content-Type: application/gzip" \
55+
--data-binary @"$FILE" \
56+
"https://uploads.github.com/repos/${{ github.repository }}/releases/${{ steps.create_release.outputs.id }}/assets?name=$(basename $FILE)"
57+
done

.github/workflows/qemu_riscv64.yaml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: qemu-riscv64-virt Linux Guest Build
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
build-buildroot:
8+
runs-on: ubuntu-latest
9+
container: baoproject/bao:latest
10+
11+
steps:
12+
- name: Install Required Packages
13+
run: |
14+
apt-get update && apt-get install -y file cpio unzip rsync bc
15+
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
19+
- name: Build Initramfs
20+
run: |
21+
PLATFORM="qemu-riscv64-virt"
22+
ARCH="riscv64"
23+
export PLATFORM ARCH
24+
echo "Building Initramfs for $PLATFORM"
25+
make PLATFORM=$PLATFORM ARCH=$ARCH buildroot
26+
tar -czf "initramfs_${PLATFORM}.tar.gz" "wrkdir/rootfs_${PLATFORM}.cpio"
27+
28+
- name: Build Kernel Image
29+
run: |
30+
PLATFORM="qemu-riscv64-virt"
31+
ARCH="riscv64"
32+
export PLATFORM ARCH
33+
echo "Building Kernel Image for $PLATFORM"
34+
make PLATFORM=$PLATFORM ARCH=$ARCH linux
35+
tar -czf "Image-${PLATFORM}.tar.gz" "wrkdir/Image-${PLATFORM}"
36+
37+
- name: Create Release
38+
id: create_release
39+
uses: actions/create-release@v1
40+
env:
41+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42+
with:
43+
tag_name: v1.0.0-qemu-riscv64-virt
44+
release_name: Release v1.0.0 for qemu-riscv64-virt
45+
draft: false
46+
prerelease: false
47+
48+
- name: Upload Release Assets
49+
run: |
50+
PLATFORM="qemu-riscv64-virt"
51+
for FILE in "initramfs_${PLATFORM}.tar.gz" "Image-${PLATFORM}.tar.gz"; do
52+
echo "Uploading $FILE"
53+
curl -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
54+
-H "Content-Type: application/gzip" \
55+
--data-binary @"$FILE" \
56+
"https://uploads.github.com/repos/${{ github.repository }}/releases/${{ steps.create_release.outputs.id }}/assets?name=$(basename $FILE)"
57+
done

0 commit comments

Comments
 (0)