Skip to content

ERL-270: github: workflows: nemos-images: add qemu-arm64 build action #35

ERL-270: github: workflows: nemos-images: add qemu-arm64 build action

ERL-270: github: workflows: nemos-images: add qemu-arm64 build action #35

Workflow file for this run

---
name: nemos-images
on:
pull_request: {}
jobs:
qemu-amd64:
runs-on: "ubuntu-latest"
strategy:
matrix:
series:
- lunar
config:
- minimal
- reference
steps:
- name: "Checkout"
uses: "actions/checkout@v3"
- name: "Update system packages"
run: |
sudo apt update
sudo DEBIAN_FRONTEND="noninteractive" \
apt full-upgrade -y
- name: "Setup Kiwi PPA"
run: |
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:nemos-team/kiwi
- name: "Install Kiwi"
run: |
sudo DEBIAN_FRONTEND="noninteractive" \
apt install -y kiwi kiwi-systemdeps
- name: "Run Kiwi"
run: |
sudo kiwi-ng --debug --profile bootstrapped \
--config nemos-images-${{ matrix.config }}-${{ matrix.series }}/kiwi.yaml \
system build --target-dir build \
--description nemos-images-${{ matrix.config }}-${{ matrix.series }}/qemu-amd64/
sudo mv build/nemos-image-${{ matrix.config }}-${{ matrix.series }}.*.qcow2 \
nemos-image-${{ matrix.config }}-${{ matrix.series }}-amd64.qcow2
- name: "Archive"
uses: "actions/upload-artifact@v3"
with:
name: "nemos-image-${{ matrix.config }}-${{ matrix.series }}-amd64"
path: "nemos-image-${{ matrix.config }}-${{ matrix.series }}-amd64.qcow2"
qemu-arm64:
runs-on: "ubuntu-latest"
strategy:
matrix:
series:
- lunar
config:
- minimal
- reference
steps:
- name: "Checkout"
uses: "actions/checkout@v3"
- uses: pguyot/arm-runner-action@v2
with:
base_image: https://cdimage.ubuntu.com/ubuntu-server/jammy/daily-preinstalled/current/jammy-preinstalled-server-arm64+raspi.img.xz
cpu: cortex-a53
copy_artifact_path: "build/*.qcow2"
image_additional_mb: 8192
commands: |
sudo apt update
sudo apt full-upgrade -y
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:nemos-team/kiwi
sudo DEBIAN_FRONTEND="noninteractive" \
apt install -y kiwi kiwi-systemdeps
sudo kiwi-ng --debug --profile bootstrapped \
--config nemos-images-${{ matrix.config }}-${{ matrix.series }}/kiwi.yaml \
system build --target-dir build \
--description nemos-images-${{ matrix.config }}-${{ matrix.series }}/qemu-arm64/
- name: "Archive"
uses: "actions/upload-artifact@v3"
with:
name: "nemos-image-${{ matrix.config }}-${{ matrix.series }}-arm64"
path: "nemos-image-${{ matrix.config }}-${{ matrix.series }}-arm64.qcow2"
spread:
runs-on: "ubuntu-latest"
needs:
- "qemu-amd64"
- "qemu-arm64"
steps:
- uses: "actions/checkout@v3"
- name: "Update system packages"
run: |
sudo apt update
sudo DEBIAN_FRONTEND="noninteractive" \
apt full-upgrade -y
- name: "Install dependencies"
run: |
sudo DEBIAN_FRONTEND="noninteractive" \
apt install -y golang ovmf qemu-system-x86 sshpass
- name: "Install spread"
run: |
go clean -modcache
go install github.com/snapcore/spread/cmd/spread@latest
- name: "Download QEMU images"
uses: actions/download-artifact@v3
- name: "Copy QEMU images to spread directory"
run: |
mkdir -p ~/.spread/adhoc
mv -v nemos-image-*/*.qcow2 ~/.spread/adhoc/
- name: "Run the spread tests inside QEMU"
run: "~/go/bin/spread -v adhoc:"