Quoting Philippe Mathieu-Daudé (2019-09-20 12:42:19) > Add a job to generate the release tarball and build/install few > QEMU targets from it. > > Ideally we should build the 'efi' target from the 'roms' directory, > but it is too time consuming.
Individual targets might not be too bad. For instance: make -f Makefile.edk2 ../pc-bios/edk2-x86_64-secure-code.fd.bz2 builds in about 7m on my 2-core laptop, but the invocation is sort of hacky. Probably makes sense to expose via `make efi-<arch>` targets before adding such a test. Cases covered here seem like a good starting point. Just some minor comments below. > > This job is only triggered when a tag starting with 'v' is pushed, > which is the case with release candidate tags. > > Signed-off-by: Philippe Mathieu-Daudé <[email protected]> > --- > This job is quick enough: Ran for 15 min 32 sec > https://travis-ci.org/philmd/qemu/jobs/587583631 > > Based-on: <[email protected]> > "Fix tarball builds of UEFI/EDK2 firmware" > https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg02734.html > --- > .travis.yml | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/.travis.yml b/.travis.yml > index d0b9e099b9..a21f99d22d 100644 > --- a/.travis.yml > +++ b/.travis.yml > @@ -339,3 +339,25 @@ matrix: > - > CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" > - TEST_CMD="make -j3 check-tcg V=1" > - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" > + > + > + # Release builds > + # The make-release script expect a QEMU version, so our tag must start > with a 'v' > + - if: tag IS present AND tag =~ ^v Might ^v be a bit too open-ended? Perhaps ^v\d+\. or something of the sort? > + env: > + # We want to build from the release tarball > + - BUILD_DIR="release/build/dir" SRC_DIR="../../.." > + - BASE_CONFIG="--prefix=$PWD/dist" > + - > CONFIG="--target-list=x86_64-softmmu,aarch64-softmmu,armeb-linux-user,ppc-linux-user" > + - TEST_CMD="make install -j3" > + - QEMU_VERSION="${TRAVIS_TAG:1}" > + - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" > + before_script: > + - command -v ccache && ccache --zero-stats > + - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} > + script: > + - ${SRC_DIR}/scripts/make-release ${SRC_DIR} ${QEMU_VERSION} Same result currently, but the `make qemu-$version.tar.bz2` target is probably more robust/stable to test with. > + - ls -l qemu-${QEMU_VERSION}.tar.bz2 > + - tar -xf qemu-${QEMU_VERSION}.tar.bz2 && cd qemu-${QEMU_VERSION} > + - ./configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit > 1; } > + - make install > -- > 2.20.1 >
