@@ -11,16 +11,15 @@ jobs:
1111 - arch : aarch64
1212 vmconfigs : configs/vms/arceos-aarch64-qemu-smp1.toml
1313 vmconfigs_name : ArceOS
14- vmimage_name : qemu_arceos_aarch64
15- # vmrootfs_name: qemu_arceos_aarch64
14+ vmimage_name : qemu_aarch64_arceos
1615 # - arch: riscv64
1716 # vmconfigs: configs/vms/arceos-riscv64-qemu-smp1.toml
1817 # vmconfigs_name: ArceOS
1918 # vmimage_name: qemu_arceos_riscv64
20- # - arch: x86_64
21- # vmconfigs: configs/vms/arceos -x86_64-qemu-smp1.toml
22- # vmconfigs_name: ArceOS
23- # vmimage_name: qemu_arceos_x86_64
19+ - arch : x86_64
20+ vmconfigs : configs/vms/nimbos -x86_64-qemu-smp1.toml
21+ vmconfigs_name : NimbOS
22+ vmimage_name : qemu_x86_64_nimbos
2423 fail-fast : false
2524 runs-on :
2625 - self-hosted
@@ -45,35 +44,37 @@ jobs:
4544 config=$(echo "$config" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
4645 cargo xtask image download $img
4746 img_name="qemu-${{ matrix.arch }}"
48- sed -i 's|^kernel_path[[:space:]]*=.*|kernel_path = "/tmp/axvisor/'"$img"'/'"$img_name"'"|' "$config"
49- echo "Updated kernel_path in $config"
50- done
47+ image_location=$(sed -n 's/^image_location[[:space:]]*=[[:space:]]*"\([^"]*\)".*/\1/p' "$config")
5148
52- - name : Download rootfs
53- run : |
54- if [ -n "${{ matrix.vmrootfs_name }}" ]; then
55- ROOTFS_URL="https://github.com/arceos-hypervisor/axvisor-guest/releases/download/v0.0.19/${{ matrix.vmrootfs_name }}.tar.gz"
56- ROOTFS_DIR="/tmp/axvisor/rootfs/${{ matrix.vmrootfs_name }}"
57- ROOTFS_IMG_PATH="${ROOTFS_DIR}/rootfs.img"
58- mkdir -p "${ROOTFS_DIR}"
59-
60- echo "Downloading rootfs from ${ROOTFS_URL}"
61- curl -L "${ROOTFS_URL}" -o "${ROOTFS_DIR}/${{ matrix.vmrootfs_name }}.tar.gz"
62-
63- echo "Extracting rootfs to ${ROOTFS_DIR}"
64- tar -xzf "${ROOTFS_DIR}/${{ matrix.vmrootfs_name }}.tar.gz" -C "${ROOTFS_DIR}"
65-
66- echo "Patching qemu-aarch64.toml file..."
67- sed -i 's|file=${workspaceFolder}/tmp/rootfs.img|file='"${ROOTFS_IMG_PATH}"'|' ".github/workflows/qemu-${{ matrix.arch }}.toml"
68-
69- echo "Rootfs setup completed"
70- else
71- echo "Removing rootfs device configuration from qemu-${{ matrix.arch }}.toml..."
72- sed -i '/-device/,/virtio-blk-device,drive=disk0/d' ".github/workflows/qemu-${{ matrix.arch }}.toml"
73- sed -i '/-drive/,/id=disk0,if=none,format=raw,file=${workspaceFolder}\/tmp\/rootfs.img/d' ".github/workflows/qemu-${{ matrix.arch }}.toml"
74- sed -i 's/root=\/dev\/vda rw //' ".github/workflows/qemu-${{ matrix.arch }}.toml"
75- echo "Rootfs device configuration removed"
76- fi
49+ case "$image_location" in
50+ "fs")
51+ echo "Filesystem storage mode - no config update needed"
52+ ;;
53+ "memory")
54+ sed -i 's|^kernel_path[[:space:]]*=.*|kernel_path = "/tmp/axvisor/'"$img"'/'"$img_name"'"|' "$config"
55+ echo "Memory storage mode - updating kernel_path"
56+ ;;
57+ *)
58+ echo "Unknown image_location: $image_location"
59+ exit 1
60+ ;;
61+ esac
62+
63+ ROOTFS_IMG_PATH="/tmp/axvisor/$img/rootfs.img"
64+
65+ # Check if rootfs.img exists after extraction
66+ if [ -f "${ROOTFS_IMG_PATH}" ]; then
67+ echo "Found rootfs.img, patching qemu-aarch64.toml file..."
68+ sed -i 's|file=${workspaceFolder}/tmp/rootfs.img|file='"${ROOTFS_IMG_PATH}"'|' ".github/workflows/qemu-${{ matrix.arch }}.toml"
69+ echo "Rootfs setup completed"
70+ else
71+ echo "No rootfs.img found, removing rootfs device configuration from qemu-${{ matrix.arch }}.toml..."
72+ sed -i '/-device/,/virtio-blk-device,drive=disk0/d' ".github/workflows/qemu-${{ matrix.arch }}.toml"
73+ sed -i '/-drive/,/id=disk0,if=none,format=raw,file=${workspaceFolder}\/tmp\/rootfs.img/d' ".github/workflows/qemu-${{ matrix.arch }}.toml"
74+ sed -i 's/root=\/dev\/vda rw //' ".github/workflows/qemu-${{ matrix.arch }}.toml"
75+ echo "Rootfs device configuration removed"
76+ fi
77+ done
7778
7879 - name : Run tests
7980 run : |
0 commit comments