.travis.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+)
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.
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é <philmd@redhat.com>
---
This job is quick enough: Ran for 15 min 32 sec
https://travis-ci.org/philmd/qemu/jobs/587583631
Based-on: <20190912231202.12327-1-mdroth@linux.vnet.ibm.com>
"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
+ 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}
+ - 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
On 9/20/19 7:42 PM, Philippe Mathieu-Daudé wrote: > 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. > > 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é <philmd@redhat.com> > --- > This job is quick enough: Ran for 15 min 32 sec > https://travis-ci.org/philmd/qemu/jobs/587583631 > > Based-on: <20190912231202.12327-1-mdroth@linux.vnet.ibm.com> > "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' *sigh* I forgot to commit my stash. This is simply a change in the comment: -- >8 -- @@ -342,7 +342,8 @@ # Release builds - # The make-release script expect a QEMU version, so our tag must start with a 'v' + # The make-release script expect a QEMU version, so our tag must start with a 'v'. + # This is the case when release candidate tags are created. --- > + - if: tag IS present AND tag =~ ^v > + 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} > + - 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 >
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é <philmd@redhat.com> > --- > This job is quick enough: Ran for 15 min 32 sec > https://travis-ci.org/philmd/qemu/jobs/587583631 > > Based-on: <20190912231202.12327-1-mdroth@linux.vnet.ibm.com> > "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 >
© 2016 - 2024 Red Hat, Inc.