Skip to content

Commit 8b3fe49

Browse files
authored
autosd builds using bootc (eclipse-score#214)
Signed-off-by: Leonardo Rossetti <lrossett@redhat.com>
1 parent ad52e9e commit 8b3fe49

21 files changed

Lines changed: 245 additions & 625 deletions

.bazelrc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ build:autosd-x86_64 --config=_common
5454
build:autosd-x86_64 --force_pic
5555
build:autosd-x86_64 --platforms=@score_bazel_platforms//:x86_64-linux-autosd10
5656
build:autosd-x86_64 --extra_toolchains=@score_autosd10_x86_64_toolchain//:x86_64-linux-autosd10
57-
build:autosd-x86_64 --extra_toolchains=@rules_rpm//toolchain:linux_x86_64
5857

5958
# Ferrocene Rust coverage config
6059
build:ferrocene-coverage --@rules_rust//rust/settings:extra_rustc_flag=-Cinstrument-coverage

.github/workflows/build_and_test_autosd.yml

Lines changed: 55 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,18 @@ concurrency:
2525
cancel-in-progress: ${{ github.ref_name != 'main' && !startsWith(github.ref_name, 'release/') }}
2626
jobs:
2727
build:
28-
name: x86_64
29-
runs-on: ubuntu-latest
28+
strategy:
29+
matrix:
30+
platform:
31+
- x86_64
32+
include:
33+
- platform: x86_64
34+
runner: ubuntu-24.04
35+
name: autosd-${{ matrix.platform }}
36+
runs-on: ${{ matrix.runner }}
3037
env:
31-
AIB_SCRIPT_URL: https://gitlab.com/CentOS/automotive/src/automotive-image-builder/-/raw/main/auto-image-builder.sh?ref_type=heads
32-
AIB_CONTAINER_IMAGE: quay.io/centos-sig-automotive/automotive-image-builder:latest
38+
AIB_SCRIPT_URL: https://gitlab.com/CentOS/automotive/src/automotive-image-builder/-/raw/1.3.0/auto-image-builder.sh?ref_type=tags
39+
AIB_CONTAINER_IMAGE: quay.io/centos-sig-automotive/automotive-image-builder:1.3.0
3340
steps:
3441
- name: Clean disk space
3542
uses: eclipse-score/more-disk-space@v1
@@ -42,42 +49,39 @@ jobs:
4249
disk-cache: ${{ github.workflow }}
4350
repository-cache: true
4451
cache-save: ${{ github.event_name == 'push' }}
52+
- name: Shows kernel version
53+
run: |
54+
uname -a
4555
- name: Install System Dependencies
4656
run: |
4757
sudo apt-get update -y
48-
sudo apt-get install -y podman curl qemu-system createrepo-c
49-
- name: Build Showcases
50-
run: |
51-
bazel build --lockfile_mode=error --config autosd-x86_64 //images/autosd_x86_64:score-showcases
52-
- name: Copy showcases folder
53-
run: |
54-
set -e
55-
ls ./bazel-bin/showcases/showcases/showcases
56-
cp -R ./bazel-bin/showcases/showcases/showcases ./images/autosd_x86_64/build/files/reference_integration/
57-
- name: Install AIB Tools
58+
sudo apt-get install -y podman curl qemu-system createrepo-c tree
59+
- name: Build and Export Showcases OCI Image
5860
run: |
59-
curl -o auto-image-builder.sh "$AIB_SCRIPT_URL"
60-
chmod +x auto-image-builder.sh
61-
working-directory: ./images/autosd_x86_64/build
62-
- name: Build AutoSD QEMU (x86_64)
63-
run: |
64-
export AIB_LOCAL_CONTAINER_STORAGE=$PWD/_build/containers-storage
61+
bazel run --announce_rc --lockfile_mode=error --config autosd-${{ matrix.platform }} //images/autosd:image_load
6562
66-
mkdir -p _build/containers-storage
67-
sudo -E ./auto-image-builder.sh -c $AIB_CONTAINER_IMAGE build-builder --distro=autosd10-sig
63+
tree bazel-bin
64+
- name: Export OCI Archive
65+
run: |
66+
sudo podman run -it --rm \
67+
-v /var/run/docker.sock:/var/run/docker.sock \
68+
-v $PWD/images/autosd:/outputs \
69+
quay.io/containers/skopeo:latest copy \
70+
docker-daemon:score_showcases_autosd:latest \
71+
oci-archive:/outputs/score_showcases_autosd_latest.oci
6872
69-
sudo -E ./auto-image-builder.sh -c $AIB_CONTAINER_IMAGE --verbose build \
70-
--distro=autosd10-sig \
71-
--target=qemu \
72-
--define-file vars.yml \
73-
--define-file vars-devel.yml \
74-
image.aib.yml \
75-
localhost/score:latest
73+
sudo chown -R $(id -u):$(id -u) images/autosd/
7674
77-
sudo -E ./auto-image-builder.sh -c $AIB_CONTAINER_IMAGE --verbose to-disk-image localhost/score:latest _build/disk.qcow2
75+
stat images/autosd/score_showcases_autosd_latest.oci
76+
- name: Download AutoSD Image
77+
run: |
78+
wget \
79+
-L --tries=10 --retry-connrefused --waitretry=5 \
80+
-O disk.qcow2.xz \
81+
https://github.com/eclipse-autosd/eclipse-autosd/releases/download/dev/eclipse-autosd-bootc-qemu-${{ matrix.platform }}.qcow2.xz
7882
79-
sudo chown $(id -u):$(id -u) _build/disk.qcow2
80-
working-directory: ./images/autosd_x86_64/build
83+
xz -d disk.qcow2.xz
84+
working-directory: ./images/autosd
8185
- name: Enable KVM group perms
8286
run: |
8387
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
@@ -86,17 +90,28 @@ jobs:
8690
- name: Test QEMU image
8791
run: |
8892
sshcmd() {
89-
sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 root@localhost $@
93+
sshpass -p "$SSH_PASSWORD" \
94+
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
95+
-p 2222 root@localhost \
96+
$@
97+
}
98+
99+
scpcmd() {
100+
sshpass -p "$SSH_PASSWORD" scp \
101+
-o StrictHostKeyChecking=no \
102+
-o UserKnownHostsFile=/dev/null \
103+
-P 2222 \
104+
$@
90105
}
91106
92-
./scripts/run_qemu
107+
QEMU_ARCH=${{ matrix.platform }} ./scripts/run_qemu
93108
94109
sshcmd 'cat /etc/os-release'
95-
working-directory: ./images/autosd_x86_64/build
110+
scpcmd './score_showcases_autosd_latest.oci root@localhost:/tmp/score_showcases_autosd_latest.oci'
111+
sshcmd 'bootc switch --apply --transport oci-archive /tmp/score_showcases_autosd_latest.oci' || true
112+
sleep 5
113+
sshcmd 'bootc status'
114+
sshcmd '/showcases/bin/cli --examples all'
115+
working-directory: ./images/autosd
96116
env:
97117
SSH_PASSWORD: password
98-
- name: Archive QEMU disk image (x86_64)
99-
uses: actions/upload-artifact@v4
100-
with:
101-
name: autosd10-score-reference_integration-x86_64.qcow2
102-
path: images/autosd_x86_64/build/_build/disk.qcow2

0 commit comments

Comments
 (0)