QEMU's sysemu is a little unwieldy for CI, but the linux userspace support is perfect for this use case.
In case you haven't encountered it -- it's terribly clever. Userspace instructions are translated just like they are in full system mode, but when a system call is encountered, the arguments are translated between the host and guest system. So the guest architecture linux program 'just works'. There's also hooks you can enable in binfmt-misc to make the loader invoke the qemu binary automagically.