mirror of
https://github.com/toradex/rt-validation.git
synced 2025-05-04 22:16:19 +00:00
Add GitLab CI script
The GitLab CI script will automatically build the containers (with multiarch support) and push to GitLab local registry. Manual jobs will be available to push the containers to Docker hub. Signed-off-by: Sergio Prado <sergio.prado@toradex.com>
This commit is contained in:
parent
25be3a08a2
commit
720e987df8
493
.gitlab-ci.yml
Normal file
493
.gitlab-ci.yml
Normal file
@ -0,0 +1,493 @@
|
||||
image: docker:latest
|
||||
|
||||
variables:
|
||||
IMAGE_TAG_DEBIAN: "2-bullseye"
|
||||
|
||||
RT_TESTS_MAJOR: "2"
|
||||
RT_TESTS_MINOR: "0"
|
||||
RT_TESTS_PATCH: "0"
|
||||
|
||||
STRESS_TESTS_MAJOR: "2"
|
||||
STRESS_TESTS_MINOR: "0"
|
||||
STRESS_TESTS_PATCH: "0"
|
||||
|
||||
# This should be set by docker image already, just to be sure...
|
||||
DOCKER_HOST: tcp://docker:2375
|
||||
|
||||
# Use overlayfs driver for better performance
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
DOCKER_DRIVER: overlay2
|
||||
|
||||
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
|
||||
GITLAB_DOCKERREGISTRY_SUFFIX: ${CI_COMMIT_REF_SLUG}-${CI_PIPELINE_ID}
|
||||
GITLAB_DOCKERREGISTRY_SUFFIX_LATEST: ${CI_COMMIT_REF_SLUG}-latest
|
||||
|
||||
services:
|
||||
- name: docker:dind
|
||||
|
||||
before_script:
|
||||
- docker info
|
||||
|
||||
stages:
|
||||
- build-rt-tests
|
||||
- build-rt-tests-multiarch
|
||||
- deploy-major
|
||||
- deploy-minor
|
||||
- deploy-patch
|
||||
- deploy-patch-date
|
||||
- deploy-multiarch-major
|
||||
- deploy-multiarch-minor
|
||||
- deploy-multiarch-patch
|
||||
- deploy-multiarch-patch-date
|
||||
|
||||
# Docker image builds
|
||||
#
|
||||
# Build the Docker images specified in DOCKERFILE_FOLDER/IMAGE_NAME and push
|
||||
# it to Gitlab's internal Docker registry
|
||||
.docker-build:
|
||||
variables:
|
||||
IMAGE_ARCH: linux/arm
|
||||
script:
|
||||
# Try to download latest image for cache, but don't fail if it does not exist
|
||||
- docker pull ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX_LATEST} || true
|
||||
- export DATE=$(date +%Y%m%d)
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker build --build-arg IMAGE_TAG=${IMAGE_TAG}
|
||||
--build-arg IMAGE_ARCH=${IMAGE_ARCH}
|
||||
--cache-from ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX_LATEST}
|
||||
${DOCKER_NO_CACHE:+--no-cache}
|
||||
--label container.name=${IMAGE_NAME}
|
||||
--label container.version=${MAJOR}.${MINOR}.${PATCH}-${DATE}
|
||||
--label git.branch=${CI_COMMIT_BRANCH}
|
||||
--label git.hash=${CI_COMMIT_SHA}
|
||||
--label pipeline.id=${CI_PIPELINE_ID}
|
||||
-f ${DOCKERFILE_FOLDER}Dockerfile
|
||||
-t ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX}
|
||||
-t ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX_LATEST}
|
||||
${DOCKERFILE_FOLDER}
|
||||
- docker push ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX}
|
||||
- docker push ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX_LATEST}
|
||||
|
||||
docker-build-rt-tests:
|
||||
extends: .docker-build
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
- export PATCH="${RT_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_TAG: ${IMAGE_TAG_DEBIAN}
|
||||
IMAGE_NAME: arm32v7-rt-tests
|
||||
DOCKERFILE_FOLDER: "./rt-tests/"
|
||||
DOCKER_NO_CACHE: ${DOCKER_NO_CACHE_FEEDS}
|
||||
stage: build-rt-tests
|
||||
|
||||
docker-build-stress-tests:
|
||||
extends: .docker-build
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
- export PATCH="${STRESS_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_TAG: ${IMAGE_TAG_DEBIAN}
|
||||
IMAGE_NAME: arm32v7-stress-tests
|
||||
DOCKERFILE_FOLDER: "./stress-tests/"
|
||||
DOCKER_NO_CACHE: ${DOCKER_NO_CACHE_FEEDS}
|
||||
stage: build-rt-tests
|
||||
|
||||
docker-build-rt-tests-arm64:
|
||||
extends: .docker-build
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
- export PATCH="${RT_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_ARCH: linux/arm64
|
||||
IMAGE_TAG: ${IMAGE_TAG_DEBIAN}
|
||||
IMAGE_NAME: arm64v8-rt-tests
|
||||
DOCKERFILE_FOLDER: "./rt-tests/"
|
||||
DOCKER_NO_CACHE: ${DOCKER_NO_CACHE_FEEDS}
|
||||
stage: build-rt-tests
|
||||
|
||||
docker-build-stress-tests-arm64:
|
||||
extends: .docker-build
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
- export PATCH="${STRESS_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_ARCH: linux/arm64
|
||||
IMAGE_TAG: ${IMAGE_TAG_DEBIAN}
|
||||
IMAGE_NAME: arm64v8-stress-tests
|
||||
DOCKERFILE_FOLDER: "./stress-tests/"
|
||||
DOCKER_NO_CACHE: ${DOCKER_NO_CACHE_FEEDS}
|
||||
stage: build-rt-tests
|
||||
|
||||
# Enable experimental features in Docker client (experimental feature are needed for manifest)
|
||||
.do_docker_experimental: &do_docker_experimental
|
||||
- mkdir -p $HOME/.docker
|
||||
- "echo -e '{\n \"experimental\": \"enabled\"\n}' | tee $HOME/.docker/config.json"
|
||||
- docker version
|
||||
|
||||
.docker-build-multiarch:
|
||||
before_script:
|
||||
- *do_docker_experimental
|
||||
- rm -rf ~/.docker/manifests/*
|
||||
script:
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker pull ${CI_REGISTRY_IMAGE}/${IMAGE_NAME_32}:${GITLAB_DOCKERREGISTRY_SUFFIX}
|
||||
- docker pull ${CI_REGISTRY_IMAGE}/${IMAGE_NAME_64}:${GITLAB_DOCKERREGISTRY_SUFFIX}
|
||||
- docker manifest create ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX_LATEST} ${CI_REGISTRY_IMAGE}/${IMAGE_NAME_32}:${GITLAB_DOCKERREGISTRY_SUFFIX} ${CI_REGISTRY_IMAGE}/${IMAGE_NAME_64}:${GITLAB_DOCKERREGISTRY_SUFFIX}
|
||||
- docker manifest annotate ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX_LATEST} ${CI_REGISTRY_IMAGE}/${IMAGE_NAME_32}:${GITLAB_DOCKERREGISTRY_SUFFIX} --os linux --arch arm
|
||||
- docker manifest annotate ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX_LATEST} ${CI_REGISTRY_IMAGE}/${IMAGE_NAME_64}:${GITLAB_DOCKERREGISTRY_SUFFIX} --os linux --arch arm64
|
||||
- docker manifest inspect -v ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX_LATEST}
|
||||
- docker manifest push ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX_LATEST}
|
||||
|
||||
docker-build-rt-tests-multiarch:
|
||||
extends: .docker-build-multiarch
|
||||
variables:
|
||||
IMAGE_NAME: rt-tests
|
||||
IMAGE_NAME_32: arm32v7-rt-tests
|
||||
IMAGE_NAME_64: arm64v8-rt-tests
|
||||
stage: build-rt-tests-multiarch
|
||||
|
||||
docker-build-stress-tests-multiarch:
|
||||
extends: .docker-build-multiarch
|
||||
variables:
|
||||
IMAGE_NAME: stress-tests
|
||||
IMAGE_NAME_32: arm32v7-stress-tests
|
||||
IMAGE_NAME_64: arm64v8-stress-tests
|
||||
stage: build-rt-tests-multiarch
|
||||
|
||||
# Docker deploy jobs
|
||||
#
|
||||
# Make sure DOCKER_HUB_USER/DOCKER_HUB_PW is properly set in the project
|
||||
# specific Gitlab CI settings.
|
||||
.docker-deploy-major:
|
||||
when: manual
|
||||
script:
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker pull ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX}
|
||||
- docker tag ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}
|
||||
- docker login -u $DOCKER_HUB_USER -p $DOCKER_HUB_PW
|
||||
- docker push ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}
|
||||
|
||||
docker-deploy-rt-tests-major:
|
||||
extends: .docker-deploy-major
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
variables:
|
||||
IMAGE_NAME: arm32v7-rt-tests
|
||||
stage: deploy-major
|
||||
|
||||
docker-deploy-stress-tests-major:
|
||||
extends: .docker-deploy-major
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
variables:
|
||||
IMAGE_NAME: arm32v7-stress-tests
|
||||
stage: deploy-major
|
||||
|
||||
docker-deploy-rt-tests-arm64-major:
|
||||
extends: .docker-deploy-major
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
variables:
|
||||
IMAGE_NAME: arm64v8-rt-tests
|
||||
stage: deploy-major
|
||||
|
||||
docker-deploy-stress-tests-arm64-major:
|
||||
extends: .docker-deploy-major
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
variables:
|
||||
IMAGE_NAME: arm64v8-stress-tests
|
||||
stage: deploy-major
|
||||
|
||||
.docker-deploy-minor:
|
||||
when: manual
|
||||
script:
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker pull ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX}
|
||||
- docker tag ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}
|
||||
- docker login -u $DOCKER_HUB_USER -p $DOCKER_HUB_PW
|
||||
- docker push ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}
|
||||
|
||||
docker-deploy-rt-tests-minor:
|
||||
extends: .docker-deploy-minor
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
variables:
|
||||
IMAGE_NAME: arm32v7-rt-tests
|
||||
stage: deploy-minor
|
||||
|
||||
docker-deploy-stress-tests-minor:
|
||||
extends: .docker-deploy-minor
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
variables:
|
||||
IMAGE_NAME: arm32v7-stress-tests
|
||||
stage: deploy-minor
|
||||
|
||||
docker-deploy-rt-tests-arm64-minor:
|
||||
extends: .docker-deploy-minor
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
variables:
|
||||
IMAGE_NAME: arm64v8-rt-tests
|
||||
stage: deploy-minor
|
||||
|
||||
docker-deploy-stress-tests-arm64-minor:
|
||||
extends: .docker-deploy-minor
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
variables:
|
||||
IMAGE_NAME: arm64v8-stress-tests
|
||||
stage: deploy-minor
|
||||
|
||||
.docker-deploy-patch:
|
||||
when: manual
|
||||
script:
|
||||
- *do_docker_experimental
|
||||
- docker manifest inspect ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH} > /dev/null && true; RESULT=$?
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker pull ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX}
|
||||
- docker tag ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH}
|
||||
- docker login -u $DOCKER_HUB_USER -p $DOCKER_HUB_PW
|
||||
- (if [ ${RESULT} == 1 ] ; then docker push ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME} ; else echo Image with this tag already exists. ; fi)
|
||||
|
||||
docker-deploy-rt-tests-patch:
|
||||
extends: .docker-deploy-patch
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
- export PATCH="${RT_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: arm32v7-rt-tests
|
||||
stage: deploy-patch
|
||||
|
||||
docker-deploy-stress-tests-patch:
|
||||
extends: .docker-deploy-patch
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
- export PATCH="${STRESS_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: arm32v7-stress-tests
|
||||
stage: deploy-patch
|
||||
|
||||
docker-deploy-rt-tests-arm64-patch:
|
||||
extends: .docker-deploy-patch
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
- export PATCH="${RT_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: arm64v8-rt-tests
|
||||
stage: deploy-patch
|
||||
|
||||
docker-deploy-stress-tests-arm64-patch:
|
||||
extends: .docker-deploy-patch
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
- export PATCH="${STRESS_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: arm64v8-stress-tests
|
||||
stage: deploy-patch
|
||||
|
||||
.docker-deploy-patch-date:
|
||||
when: manual
|
||||
script:
|
||||
- *do_docker_experimental
|
||||
- export DATE=$(date +%Y%m%d)
|
||||
- docker manifest inspect ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH}-${DATE} > /dev/null && true; RESULT=$?
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker pull ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX}
|
||||
- docker tag ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH}-${DATE}
|
||||
- docker login -u $DOCKER_HUB_USER -p $DOCKER_HUB_PW
|
||||
- (if [ ${RESULT} == 1 ] ; then docker push ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME} ; else echo Image with this tag already exists. ; fi)
|
||||
|
||||
docker-deploy-rt-tests-patch-date:
|
||||
extends: .docker-deploy-patch-date
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
- export PATCH="${RT_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: arm32v7-rt-tests
|
||||
stage: deploy-patch-date
|
||||
|
||||
docker-deploy-stress-tests-patch-date:
|
||||
extends: .docker-deploy-patch-date
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
- export PATCH="${STRESS_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: arm32v7-stress-tests
|
||||
stage: deploy-patch-date
|
||||
|
||||
docker-deploy-rt-tests-arm64-patch-date:
|
||||
extends: .docker-deploy-patch-date
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
- export PATCH="${RT_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: arm64v8-rt-tests
|
||||
stage: deploy-patch-date
|
||||
|
||||
docker-deploy-stress-tests-arm64-patch-date:
|
||||
extends: .docker-deploy-patch-date
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
- export PATCH="${STRESS_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: arm64v8-stress-tests
|
||||
stage: deploy-patch-date
|
||||
|
||||
.docker-deploy-multiarch-major:
|
||||
when: manual
|
||||
script:
|
||||
- *do_docker_experimental
|
||||
- rm -rf ~/.docker/manifests/*
|
||||
- docker login -u $DOCKER_HUB_USER -p $DOCKER_HUB_PW
|
||||
- docker manifest create ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_32}:${MAJOR} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_64}:${MAJOR}
|
||||
- docker manifest annotate ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_32}:${MAJOR} --os linux --arch arm
|
||||
- docker manifest annotate ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_64}:${MAJOR} --os linux --arch arm64
|
||||
- docker manifest inspect -v ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}
|
||||
- docker manifest push ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}
|
||||
|
||||
docker-deploy-rt-tests-multiarch-major:
|
||||
extends: .docker-deploy-multiarch-major
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
variables:
|
||||
IMAGE_NAME: rt-tests
|
||||
IMAGE_NAME_32: arm32v7-rt-tests
|
||||
IMAGE_NAME_64: arm64v8-rt-tests
|
||||
stage: deploy-multiarch-major
|
||||
|
||||
docker-deploy-stress-tests-multiarch-major:
|
||||
extends: .docker-deploy-multiarch-major
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
variables:
|
||||
IMAGE_NAME: stress-tests
|
||||
IMAGE_NAME_32: arm32v7-stress-tests
|
||||
IMAGE_NAME_64: arm64v8-stress-tests
|
||||
stage: deploy-multiarch-major
|
||||
|
||||
.docker-deploy-multiarch-minor:
|
||||
when: manual
|
||||
script:
|
||||
- *do_docker_experimental
|
||||
- rm -rf ~/.docker/manifests/*
|
||||
- docker login -u $DOCKER_HUB_USER -p $DOCKER_HUB_PW
|
||||
- docker manifest create ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_32}:${MAJOR}.${MINOR} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_64}:${MAJOR}.${MINOR}
|
||||
- docker manifest annotate ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_32}:${MAJOR}.${MINOR} --os linux --arch arm
|
||||
- docker manifest annotate ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_64}:${MAJOR}.${MINOR} --os linux --arch arm64
|
||||
- docker manifest inspect -v ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}
|
||||
- docker manifest push ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}
|
||||
|
||||
docker-deploy-rt-tests-multiarch-minor:
|
||||
extends: .docker-deploy-multiarch-minor
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
variables:
|
||||
IMAGE_NAME: rt-tests
|
||||
IMAGE_NAME_32: arm32v7-rt-tests
|
||||
IMAGE_NAME_64: arm64v8-rt-tests
|
||||
stage: deploy-multiarch-minor
|
||||
|
||||
docker-deploy-stress-tests-multiarch-minor:
|
||||
extends: .docker-deploy-multiarch-minor
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
variables:
|
||||
IMAGE_NAME: stress-tests
|
||||
IMAGE_NAME_32: arm32v7-stress-tests
|
||||
IMAGE_NAME_64: arm64v8-stress-tests
|
||||
stage: deploy-multiarch-minor
|
||||
|
||||
.docker-deploy-multiarch-patch:
|
||||
when: manual
|
||||
script:
|
||||
- *do_docker_experimental
|
||||
- rm -rf ~/.docker/manifests/*
|
||||
- docker manifest inspect ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH} > /dev/null && true; RESULT=$?
|
||||
- docker login -u $DOCKER_HUB_USER -p $DOCKER_HUB_PW
|
||||
- docker manifest create ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_32}:${MAJOR}.${MINOR}.${PATCH} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_64}:${MAJOR}.${MINOR}.${PATCH}
|
||||
- docker manifest annotate ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_32}:${MAJOR}.${MINOR}.${PATCH} --os linux --arch arm
|
||||
- docker manifest annotate ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_64}:${MAJOR}.${MINOR}.${PATCH} --os linux --arch arm64
|
||||
- docker manifest inspect -v ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH}
|
||||
- (if [ ${RESULT} == 1 ] ; then docker manifest push ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH} ; else echo Image with this tag already exists. ; fi)
|
||||
|
||||
docker-deploy-rt-tests-multiarch-patch:
|
||||
extends: .docker-deploy-multiarch-patch
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
- export PATCH="${RT_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: rt-tests
|
||||
IMAGE_NAME_32: arm32v7-rt-tests
|
||||
IMAGE_NAME_64: arm64v8-rt-tests
|
||||
stage: deploy-multiarch-patch
|
||||
|
||||
docker-deploy-stress-tests-multiarch-patch:
|
||||
extends: .docker-deploy-multiarch-patch
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
- export PATCH="${STRESS_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: stress-tests
|
||||
IMAGE_NAME_32: arm32v7-stress-tests
|
||||
IMAGE_NAME_64: arm64v8-stress-tests
|
||||
stage: deploy-multiarch-patch
|
||||
|
||||
.docker-deploy-multiarch-patch-date:
|
||||
when: manual
|
||||
script:
|
||||
- *do_docker_experimental
|
||||
- rm -rf ~/.docker/manifests/*
|
||||
- export DATE=$(date +%Y%m%d)
|
||||
- docker manifest inspect ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH}-${DATE} > /dev/null && true; RESULT=$?
|
||||
- docker login -u $DOCKER_HUB_USER -p $DOCKER_HUB_PW
|
||||
- docker manifest create ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH}-${DATE} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_32}:${MAJOR}.${MINOR}.${PATCH}-${DATE} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_64}:${MAJOR}.${MINOR}.${PATCH}-${DATE}
|
||||
- docker manifest annotate ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH}-${DATE} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_32}:${MAJOR}.${MINOR}.${PATCH}-${DATE} --os linux --arch arm
|
||||
- docker manifest annotate ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH}-${DATE} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_64}:${MAJOR}.${MINOR}.${PATCH}-${DATE} --os linux --arch arm64
|
||||
- docker manifest inspect -v ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH}-${DATE}
|
||||
- (if [ ${RESULT} == 1 ] ; then docker manifest push ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${MAJOR}.${MINOR}.${PATCH}-${DATE} ; else echo Image with this tag already exists. ; fi)
|
||||
|
||||
docker-deploy-rt-tests-multiarch-patch-date:
|
||||
extends: .docker-deploy-multiarch-patch-date
|
||||
before_script:
|
||||
- export MAJOR="${RT_TESTS_MAJOR}"
|
||||
- export MINOR="${RT_TESTS_MINOR}"
|
||||
- export PATCH="${RT_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: rt-tests
|
||||
IMAGE_NAME_32: arm32v7-rt-tests
|
||||
IMAGE_NAME_64: arm64v8-rt-tests
|
||||
stage: deploy-multiarch-patch-date
|
||||
|
||||
docker-deploy-stress-tests-multiarch-patch-date:
|
||||
extends: .docker-deploy-multiarch-patch-date
|
||||
before_script:
|
||||
- export MAJOR="${STRESS_TESTS_MAJOR}"
|
||||
- export MINOR="${STRESS_TESTS_MINOR}"
|
||||
- export PATCH="${STRESS_TESTS_PATCH}"
|
||||
variables:
|
||||
IMAGE_NAME: stress-tests
|
||||
IMAGE_NAME_32: arm32v7-stress-tests
|
||||
IMAGE_NAME_64: arm64v8-stress-tests
|
||||
stage: deploy-multiarch-patch-date
|
Loading…
Reference in New Issue
Block a user