aboutsummaryrefslogtreecommitdiff
path: root/.gitlab-ci.d
diff options
context:
space:
mode:
authorMukilan Thiyagarajan <quic_mthiyaga@quicinc.com>2022-12-21 09:04:10 +0000
committerAlex Bennée <alex.bennee@linaro.org>2022-12-23 15:16:31 +0000
commitb9052d36342c947b36447558ed0a0dd3fb3fb8f4 (patch)
tree65d7a861b5fe726332843deca6a52592a5b97d56 /.gitlab-ci.d
parent2bc6c79417b89c3306b724577e775f03fe61fb2e (diff)
downloadqemu-b9052d36342c947b36447558ed0a0dd3fb3fb8f4.zip
qemu-b9052d36342c947b36447558ed0a0dd3fb3fb8f4.tar.gz
qemu-b9052d36342c947b36447558ed0a0dd3fb3fb8f4.tar.bz2
tests/docker: use prebuilt toolchain for debian-hexagon-cross
The current docker image for cross compiling hexagon guests is manually built since it takes >2 hours to build from source. This patch: 1. Solves the above issue by using the prebuilt clang toolchain hosted on CodeLinaro [1] and maintained by QUIC [2]. 2. The dockerfile is also switched from multi-stage to single stage build to allow the CI docker engine to reuse the layer cache. 3. Re-enables the hexagon-cross-container job to be always run in CI and makes it a non-optional dependency for the build-user-hexagon job. The changes for 1 & 2 together bring down the build time to ~3 minutes in GitLab CI when cache is reused and ~9 minutes when cache cannot be reused. [1]: https://github.com/CodeLinaro/hexagon-builder [2]: https://github.com/quic/toolchain_for_hexagon/releases/ Signed-off-by: Mukilan Thiyagarajan <quic_mthiyaga@quicinc.com> [AJB: also tweak MAINTAINERS, remove QEMU_JOB_ONLY_FORKS and comment] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20221219144354.11659-1-quic_mthiyaga@quicinc.com> Message-Id: <20221221090411.1995037-6-alex.bennee@linaro.org>
Diffstat (limited to '.gitlab-ci.d')
-rw-r--r--.gitlab-ci.d/buildtest.yml4
-rw-r--r--.gitlab-ci.d/container-cross.yml22
2 files changed, 1 insertions, 25 deletions
diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index d21b4a1..93302a9 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -275,14 +275,10 @@ build-user-static:
CONFIGURE_ARGS: --disable-tools --disable-system --static
MAKE_CHECK_ARGS: check-tcg
-# Because the hexagon cross-compiler takes so long to build we don't rely
-# on the CI system to build it and hence this job has an optional dependency
-# declared. The image is manually uploaded.
build-user-hexagon:
extends: .native_build_job_template
needs:
job: hexagon-cross-container
- optional: true
variables:
IMAGE: debian-hexagon-cross
TARGETS: hexagon-linux-user
diff --git a/.gitlab-ci.d/container-cross.yml b/.gitlab-ci.d/container-cross.yml
index 2d560e9..e0d75d5 100644
--- a/.gitlab-ci.d/container-cross.yml
+++ b/.gitlab-ci.d/container-cross.yml
@@ -34,31 +34,11 @@ armhf-debian-cross-container:
variables:
NAME: debian-armhf-cross
-# We never want to build hexagon in the CI system and by default we
-# always want to refer to the master registry where it lives.
hexagon-cross-container:
- extends: .base_job_template
- image: docker:stable
+ extends: .container_job_template
stage: containers
variables:
NAME: debian-hexagon-cross
- GIT_DEPTH: 1
- QEMU_JOB_ONLY_FORKS: 1
- services:
- - docker:dind
- before_script:
- - export TAG="$CI_REGISTRY_IMAGE/qemu/$NAME:latest"
- - export COMMON_TAG="$CI_REGISTRY/qemu-project/qemu/qemu/$NAME:latest"
- - docker info
- - docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
- script:
- - echo "TAG:$TAG"
- - echo "COMMON_TAG:$COMMON_TAG"
- - docker pull $COMMON_TAG
- - docker tag $COMMON_TAG $TAG
- - docker push "$TAG"
- after_script:
- - docker logout
hppa-debian-cross-container:
extends: .container_job_template