|
| 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 |
0 commit comments