On 13.07.20 19:20, Tom Rini wrote: > 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
Yes, time I am waiting for the tests that interest me. And sometimes it fails because the source repository is not available. > 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 This depends on the number of cores you have on Travis CI. Is this more than one? > 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. > https://docs.travis-ci.com/user/docker/a says that you can use Docker images in Travis CI too. https://docs.travis-ci.com/user/build-stages/share-docker-image/ shows how to trigger tests inside a Docker image. I think the Docker route is the only way to minimize differences between the build systems. Best regards Heinrich