This patchset add 2 more architectures to the cross-build farm. There is still some issue trying to cross-build mips64el-softmmu, it seems the cross tools use the system outdated libfdt instead of the one checkouted in the dtc submodule. I disabled this target for now.
The branch https://github.com/philmd/qemu/tree/docker_shippable_v3 can be checked at Shippable: https://app.shippable.com/github/philmd/qemu/status/dashboard Each arch builds in around ~9min. Using Shippable free open source projects service, the 5 jobs take ~38-44min in total. v3: - Addressed review feedbacks from Fam: - Keep building images in various layers, but use DEBIAN_FRONTEND=noninteractive - Document '--extra-files', now it supports adding various files at once - Checksum extra files to trigger a docker image rebuild if modified - Use better regex to generate deb-src entries - Reordered extra libs, to ease further add/remove diffs v2: - Addressed review feedback from Alex, added his R-B - Fixed the "Problem with the SSL CA cert" problem while cloning from github.com installing the ca-certificates package. - Squashed/split some commits - use 'apt-get clean' instead of brutal 'rm -rf' - checked how many cores are available on Shippable and use them fully (reduced total time from 44min to 38min) - build armeb-linux-user target v1: - Reorganize Dockerfiles to use less layers, resulting in smaller images. This also reduce time of image transfer, for example while using: `docker save qemu:debian | ssh remote docker load` - Install more debian packages so the configure script enable more features and more code can be compiled/covered. - There are still some incorrect multiarch packages on debian/jessie used in the docker images, add a script to generate fake packages and avoid dependencies issues. - Modify the docker.py script to include an extra file while building images. Regards, Phil. Philippe Mathieu-Daudé (24): docker: let _copy_with_mkdir() sub_path argument be optional docker: add --include-files argument to 'build' command docker: rebuild image if 'extra files' checksum does not match docker: add 'apt-fake' script which generate fake debian packages docker: install ca-certificates package in base image docker: create deb-src entry and setup Emdebian in the same layer docker: use better regex to generate deb-src entries docker: use eatmydata, install common build packages in base image docker: use eatmydata in debian armhf image docker: use eatmydata in debian arm64 image docker: add extra libs to armhf target to extend codebase coverage docker: add extra libs to arm64 target to extend codebase coverage docker: add extra libs to s390x target to extend codebase coverage docker: add mipsel build target docker: add powerpc build target shippable: use C locale to simplify console output shippable: build using all available cpus shippable: do not initialize submodules automatically shippable: be verbose while building docker images shippable: add armeb-linux-user target shippable: add powerpc target shippable: add mipsel target MAINTAINERS: add Shippable automation platform URL MAINTAINERS: self-appoint me as reviewer in build/test automation .shippable.yml | 23 +++++++++-- MAINTAINERS | 2 + tests/docker/Makefile.include | 8 +++- tests/docker/docker.py | 29 ++++++++++---- tests/docker/dockerfiles/debian-apt-fake.sh | 46 ++++++++++++++++++++++ tests/docker/dockerfiles/debian-arm64-cross.docker | 18 ++++++++- tests/docker/dockerfiles/debian-armhf-cross.docker | 18 ++++++++- .../docker/dockerfiles/debian-mipsel-cross.docker | 41 +++++++++++++++++++ .../docker/dockerfiles/debian-powerpc-cross.docker | 40 +++++++++++++++++++ tests/docker/dockerfiles/debian-s390x-cross.docker | 10 +++++ tests/docker/dockerfiles/debian.docker | 18 +++++---- 11 files changed, 230 insertions(+), 23 deletions(-) create mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh create mode 100644 tests/docker/dockerfiles/debian-mipsel-cross.docker create mode 100644 tests/docker/dockerfiles/debian-powerpc-cross.docker -- 2.11.0