Skip to content
Snippets Groups Projects

fix: default:before_script run multiarch/qemu-user-static

Closed Wouter Deconinck requested to merge wdconinc-master-patch-16880 into master
+ 26
6
@@ -158,6 +158,15 @@ version:
@@ -158,6 +158,15 @@ version:
reports:
reports:
dotenv: build.env
dotenv: build.env
 
builder:
 
stage: config
 
resource_group: ${CI_COMMIT_REF_NAME}
 
tags:
 
- docker-new
 
script:
 
- docker run --rm --privileged multiarch/qemu-user-static --reset --persistent yes
 
- docker buildx create --name ${CI_COMMIT_REF_NAME} --driver docker-container --bootstrap
 
## base job for all build jobs. Dependent jobs are expected to set
## base job for all build jobs. Dependent jobs are expected to set
## the BUILD_IMAGE environment variable, and take care of the actual
## the BUILD_IMAGE environment variable, and take care of the actual
## docker build during the "script" step
## docker build during the "script" step
@@ -209,9 +218,9 @@ base:
@@ -209,9 +218,9 @@ base:
stage: base
stage: base
needs:
needs:
- version
- version
 
- builder
script:
script:
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- docker buildx use ${CI_COMMIT_REF_NAME}
- docker buildx create --name builder --driver docker-container --bootstrap --use
- docker buildx build --load -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG}
- docker buildx build --load -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG}
-f containers/debian/base.Dockerfile
-f containers/debian/base.Dockerfile
${PLATFORM:+--platform ${PLATFORM}}
${PLATFORM:+--platform ${PLATFORM}}
@@ -239,9 +248,9 @@ jug_dev:default:
@@ -239,9 +248,9 @@ jug_dev:default:
stage: jug
stage: jug
needs:
needs:
- version
- version
 
- builder
- base
- base
script:
script:
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
## calculate a hash based on the spack.yaml file and the spack directory
## calculate a hash based on the spack.yaml file and the spack directory
## and use this spack as a docker variable to force a rebuild when there
## and use this spack as a docker variable to force a rebuild when there
## is a change (versus rerun from cache)
## is a change (versus rerun from cache)
@@ -255,6 +264,8 @@ jug_dev:default:
@@ -255,6 +264,8 @@ jug_dev:default:
echo "FORCE_NOCACHE set"
echo "FORCE_NOCACHE set"
export CACHE_FLAG="--no-cache"
export CACHE_FLAG="--no-cache"
fi
fi
 
## use buildx builder
 
- docker buildx use ${CI_COMMIT_REF_NAME}
## Optionally build the raw builder image
## Optionally build the raw builder image
- test ${EXPORT_BUILDER} = 1 && docker buildx build --load ${CACHE_FLAG}
- test ${EXPORT_BUILDER} = 1 && docker buildx build --load ${CACHE_FLAG}
-t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:builder-${INTERNAL_TAG}
-t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:builder-${INTERNAL_TAG}
@@ -306,7 +317,8 @@ jug_dev:multiarch:
@@ -306,7 +317,8 @@ jug_dev:multiarch:
ARCHS: "amd64 arm64v8"
ARCHS: "amd64 arm64v8"
stage: jug
stage: jug
needs:
needs:
- version
- version
 
- builder
- jug_dev:default
- jug_dev:default
script:
script:
- echo docker manifest create ${IMAGE}:${EXPORT_TAG} $(echo ${ARCHS} | xargs -d " " -I "{}" echo -n "--amend ${IMAGE}:${EXPORT_TAG}-{}")
- echo docker manifest create ${IMAGE}:${EXPORT_TAG} $(echo ${ARCHS} | xargs -d " " -I "{}" echo -n "--amend ${IMAGE}:${EXPORT_TAG}-{}")
@@ -327,10 +339,11 @@ jug_xl:default:
@@ -327,10 +339,11 @@ jug_xl:default:
stage: jug
stage: jug
needs:
needs:
- version
- version
 
- builder
- jug_dev:default
- jug_dev:default
script:
script:
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- cp detectors.yaml containers/jug
- cp detectors.yaml containers/jug
 
- docker buildx use ${CI_COMMIT_REF_NAME}
- docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG}
- docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG}
-f containers/jug/xl.Dockerfile
-f containers/jug/xl.Dockerfile
--build-arg BASE_IMAGE=${BASE_IMAGE}
--build-arg BASE_IMAGE=${BASE_IMAGE}
@@ -362,10 +375,11 @@ jug_xl:nightly:
@@ -362,10 +375,11 @@ jug_xl:nightly:
- when: never
- when: never
needs:
needs:
- version
- version
 
- builder
- jug_dev:default
- jug_dev:default
script:
script:
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- cp detectors.yaml containers/jug
- cp detectors.yaml containers/jug
 
- docker buildx use ${CI_COMMIT_REF_NAME}
- docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${NIGHTLY_TAG}
- docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${NIGHTLY_TAG}
-f containers/jug/xl.Dockerfile
-f containers/jug/xl.Dockerfile
--build-arg BASE_IMAGE=${BASE_IMAGE}
--build-arg BASE_IMAGE=${BASE_IMAGE}
@@ -399,6 +413,7 @@ jug_xl:feature:
@@ -399,6 +413,7 @@ jug_xl:feature:
- when: never
- when: never
needs:
needs:
- version
- version
 
- builder
- jug_xl:nightly
- jug_xl:nightly
variables:
variables:
BUILD_IMAGE: "jug_xl"
BUILD_IMAGE: "jug_xl"
@@ -408,6 +423,7 @@ jug_xl:feature:
@@ -408,6 +423,7 @@ jug_xl:feature:
DETECTOR_BRANCH:
DETECTOR_BRANCH:
- main
- main
script:
script:
 
- docker buildx use ${CI_COMMIT_REF_NAME}
- docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG}-${DETECTOR}-${DETECTOR_BRANCH}
- docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG}-${DETECTOR}-${DETECTOR_BRANCH}
-f containers/jug/feature.Dockerfile
-f containers/jug/feature.Dockerfile
--build-arg INTERNAL_TAG=${NIGHTLY_TAG}
--build-arg INTERNAL_TAG=${NIGHTLY_TAG}
@@ -495,7 +511,11 @@ cleanup:
@@ -495,7 +511,11 @@ cleanup:
dependencies:
dependencies:
- version
- version
when: always
when: always
 
tags:
 
- docker-new
script:
script:
 
## remove buildx builder
 
- docker buildx rm ${CI_COMMIT_REF_NAME}
## remove the pipeline specific export from eicweb if needed
## remove the pipeline specific export from eicweb if needed
- echo "Cleaning up pipeline specific docker tags if needed"
- echo "Cleaning up pipeline specific docker tags if needed"
- ./gitlab-ci/cleanup_registry.sh -i debian_testing_base -r 66 ${INTERNAL_TAG}
- ./gitlab-ci/cleanup_registry.sh -i debian_testing_base -r 66 ${INTERNAL_TAG}
Loading