Why not use a matrix for this? It looks like you could do something like the following (based on https://github.com/cirruslabs/cirrus-ci-docs/issues/709):
task: matrix: - name: World and kernel arm64 build and boot smoke test env: TARGET: amd64 TARGET_ARCH: amd64 - name: World and kernel arm64 build and boot smoke test trigger_type: manual env: TARGET: arm64 TARGET_ARCH: arm64 timeout_in: 120m ...
Any reason we don't add armv7 and/or riscv too? They both have qemu support.
I haven't tested them, but I'll add them if they "just work" (well, at least as well as arm64 which currently panics on boot with)
panic: Assertion value >= sc->sc_spi_start failed at /tmp/cirrus-ci-build/sys/arm/arm/gic.c:541 cpuid = 0 time = 1 KDB: stack backtrace: db_trace_self() at db_trace_self db_trace_self_wrapper() at db_trace_self_wrapper+0x30 vpanic() at vpanic+0x184 panic() at panic+0x44 arm_gic_write_ivar() at arm_gic_write_ivar+0x25c arm_gicv2m_attach() at arm_gicv2m_attach+0x11c device_attach() at device_attach+0x400 device_probe_and_attach() at device_probe_and_attach+0x7c bus_generic_attach() at bus_generic_attach+0x18 device_attach() at device_attach+0x400 device_probe_and_attach() at device_probe_and_attach+0x7c bus_generic_new_pass() at bus_generic_new_pass+0xf8 bus_generic_new_pass() at bus_generic_new_pass+0xa8 bus_generic_new_pass() at bus_generic_new_pass+0xa8 bus_set_pass() at bus_set_pass+0x4c mi_startup() at mi_startup+0x12c virtdone() at virtdone+0x6c KDB: enter: panic [ thread pid 0 tid 100000 ] Stopped at kdb_enter+0x44: undefined f904c11f db> qemu-system-aarch64: terminating on signal 15 from pid 39830 (timeout) Did not boot successfully, see /tmp/ci-qemu-test-boot.log