Skip to content

Commit

Permalink
gitlab-ci: Add cross-compiling build tests
Browse files Browse the repository at this point in the history
Now that we can use all our QEMU test containers in the gitlab-CI, we can
easily add some jobs that test cross-compilation for various architectures.
There is just only small ugliness: Since the shared runners on gitlab.com
are single-threaded, we have to split each compilation job into two parts
(--disable-user and --disable-system), and exclude some additional targets,
to avoid that the jobs are running too long and hitting the timeout of 1 h.

Message-Id: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
  • Loading branch information
huth committed Sep 7, 2020
1 parent 8c27876 commit 6bcb5fc
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 0 deletions.
113 changes: 113 additions & 0 deletions .gitlab-ci.d/crossbuilds.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@

.cross_system_build_job_template: &cross_system_build_job_definition
stage: build
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
script:
- mkdir build
- cd build
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH
../configure --enable-werror $QEMU_CONFIGURE_OPTS --disable-user
--target-list-exclude="aarch64-softmmu i386-softmmu microblaze-softmmu
mips-softmmu mipsel-softmmu mips64-softmmu ppc64-softmmu sh4-softmmu
xtensa-softmmu"
- make -j$(expr $(nproc) + 1) all check-build

.cross_user_build_job_template: &cross_user_build_job_definition
stage: build
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
script:
- mkdir build
- cd build
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH
../configure --enable-werror $QEMU_CONFIGURE_OPTS --disable-system
- make -j$(expr $(nproc) + 1) all check-build

cross-armel-system:
<<: *cross_system_build_job_definition
variables:
IMAGE: debian-armel-cross

cross-armel-user:
<<: *cross_user_build_job_definition
variables:
IMAGE: debian-armel-cross

cross-armhf-system:
<<: *cross_system_build_job_definition
variables:
IMAGE: debian-armhf-cross

cross-armhf-user:
<<: *cross_user_build_job_definition
variables:
IMAGE: debian-armhf-cross

cross-arm64-system:
<<: *cross_system_build_job_definition
variables:
IMAGE: debian-arm64-cross

cross-arm64-user:
<<: *cross_user_build_job_definition
variables:
IMAGE: debian-arm64-cross

cross-mips-system:
<<: *cross_system_build_job_definition
variables:
IMAGE: debian-mips-cross

cross-mips-user:
<<: *cross_user_build_job_definition
variables:
IMAGE: debian-mips-cross

cross-mipsel-system:
<<: *cross_system_build_job_definition
variables:
IMAGE: debian-mipsel-cross

cross-mipsel-user:
<<: *cross_user_build_job_definition
variables:
IMAGE: debian-mipsel-cross

cross-mips64el-system:
<<: *cross_system_build_job_definition
variables:
IMAGE: debian-mips64el-cross

cross-mips64el-user:
<<: *cross_user_build_job_definition
variables:
IMAGE: debian-mips64el-cross

cross-ppc64el-system:
<<: *cross_system_build_job_definition
variables:
IMAGE: debian-ppc64el-cross

cross-ppc64el-user:
<<: *cross_user_build_job_definition
variables:
IMAGE: debian-ppc64el-cross

cross-s390x-system:
<<: *cross_system_build_job_definition
variables:
IMAGE: debian-s390x-cross

cross-s390x-user:
<<: *cross_user_build_job_definition
variables:
IMAGE: debian-s390x-cross

cross-win32-system:
<<: *cross_system_build_job_definition
variables:
IMAGE: debian-win32-cross

cross-win64-system:
<<: *cross_system_build_job_definition
variables:
IMAGE: debian-win64-cross
1 change: 1 addition & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ include:
- local: '/.gitlab-ci.d/edk2.yml'
- local: '/.gitlab-ci.d/opensbi.yml'
- local: '/.gitlab-ci.d/containers.yml'
- local: '/.gitlab-ci.d/crossbuilds.yml'

.native_build_job_template: &native_build_job_definition
stage: build
Expand Down
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -3071,6 +3071,7 @@ M: Alex Bennée <[email protected]>
R: Wainer dos Santos Moschetta <[email protected]>
S: Maintained
F: .gitlab-ci.yml
F: .gitlab-ci.d/crossbuilds.yml

Guest Test Compilation Support
M: Alex Bennée <[email protected]>
Expand Down

0 comments on commit 6bcb5fc

Please sign in to comment.