On Mon, Jul 13, 2020 at 07:10:46PM +0200, Heinrich Schuchardt wrote: > For the Nokia N900 emulation we need a special QEMU version. Up to now we > compile it in the Gitlab runner. By compiling it in Docker we can reduce > the Gitlab job duration. > > To avoid naming conflicts the QEMU binary is stored as > /opt/qemu/bin/qemu-system-n900. > > Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> > --- > Dockerfile | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/Dockerfile b/Dockerfile > index 209e008..bc3cdee 100644 > --- a/Dockerfile > +++ b/Dockerfile > @@ -171,6 +171,16 @@ RUN git clone git://git.qemu.org/qemu.git /tmp/qemu && \ > make -j$(nproc) all install && \ > rm -rf /tmp/qemu > > +# Compile QEMU for Nokia N900 emulation > +# Last working commit is 8f8d8e0796efe1a6f34cdd83fb798f3c41217ec1 > +RUN git clone https://git.linaro.org/qemu/qemu-linaro.git /tmp/qemu && \ > + cd /tmp/qemu && \ > + git checkout 8f8d8e0796efe1a6f34cdd83fb798f3c41217ec1 && \ > + ./configure --enable-system --target-list=arm-softmmu --disable-sdl > --disable-gtk --disable-curses --audio-drv-list= --audio-card-list= > --disable-werror --disable-xen --disable-xen-pci-passthrough --disable-brlapi > --disable-vnc --disable-curl --disable-slirp --disable-kvm --disable-user > --disable-linux-user --disable-bsd-user --disable-guest-base --disable-uuid > --disable-vde --disable-linux-aio --disable-cap-ng --disable-attr > --disable-blobs --disable-docs --disable-spice --disable-libiscsi > --disable-smartcard-nss --disable-usb-redir --disable-guest-agent > --disable-seccomp --disable-glusterfs --disable-nptl --disable-fdt && \ > + make -j$(nproc) && \ > + cp arm-softmmu/qemu-system-arm /opt/qemu/bin/qemu-system-n900 && \ > + rm -rf /tmp/qemu > + > # Create our user/group > RUN echo uboot ALL=NOPASSWD: ALL > /etc/sudoers.d/uboot > RUN useradd -m -U uboot
Azure and GitLab will pick this up, if we modify the job to link the binary in. Travis will not, of course. But this feels like a bit of a micro-optimization. The test job is 3-4 minutes currently. If we want to reduce that, I think switching the test script to use $(nproc) rather than 4 for all make jobs would be a bit better. Keeping all 3 CI scripts as close as possible is a goal we have to have I believe to reduce the likelyhood of one CI failing when another passes and it being the CI at fault rather than exposing a race condition in our code. -- Tom
signature.asc
Description: PGP signature