8 Commits

Author SHA1 Message Date
Dejan Jesenko
e16f45cee3 gitlab-ci.yml: automatically tag the repository
Automatically tag the repository when we bump
the version of container image.

Related-to: TOR-1942

Signed-off-by: Dejan Jesenko <dejan.jesenko@toradex.com>
2022-02-10 13:44:47 +01:00
Dejan Jesenko
98853d997c gitlab-ci.yml: add dockerfile linter
Pipeline is configured to fail, if linter
generates warning.

Some rules cannot be applied in our specific cases.
However, since we don't want to completely ignore these rules,
we have lowered the severity of the rules below to the "info" level:
- DL3008 (pin versions in apt-get install)
- DL3029 (do not use --platform flag with FROM)

Related-to: TOR-1566

Signed-off-by: Dejan Jesenko <dejan.jesenko@toradex.com>
2022-02-01 11:53:20 +01:00
Dejan Jesenko
881f30fb32 use tokens to push to Docker Hub
Related-to: TOR-1515

Signed-off-by: Dejan Jesenko <dejan.jesenko@toradex.com>
2022-01-03 15:40:27 +01:00
Dejan Jesenko
b6c454d0c7 revert mistake from previous commit
Related-to: TOR-1515

Signed-off-by: Dejan Jesenko <dejan.jesenko@toradex.com>
2022-01-03 15:38:48 +01:00
Dejan Jesenko
a8f29027f3 Update .gitlab-ci.yml 2022-01-03 13:28:12 +00:00
Dejan Jesenko
d10d1844f4 gitlab-ci: reduce the number of deploy stages
Merge major, minor, patch and patch-date deploy stages in a single stage.

With this commit also the "deploy multiarch" job will start automatically
if the previous job is successful.

Related-to: TOR-1471

Signed-off-by: Dejan Jesenko <dejan.jesenko@toradex.com>
2021-12-17 11:19:38 +01:00
Dejan Jesenko
d5b2bf0606 rebuild containers against the latest Debian stable feed
Related-to: TOR-2049

Signed-off-by: Dejan Jesenko <dejan.jesenko@toradex.com>
2021-11-22 09:58:07 +01:00
Sergio Prado
1d6f4ef671 gitlab-ci.yml: bump version to 2.1.0
Bump containers to version 2.1.0, rebuilding against latest Debian base
container (based on snapshot 20210408T000000Z).

Related-to: TOR-1663

Signed-off-by: Sergio Prado <sergio.prado@toradex.com>
2021-05-28 06:37:33 -03:00

View File

@@ -4,11 +4,11 @@ variables:
IMAGE_TAG_DEBIAN: "2-bullseye"
RT_TESTS_MAJOR: "2"
RT_TESTS_MINOR: "0"
RT_TESTS_MINOR: "2"
RT_TESTS_PATCH: "0"
STRESS_TESTS_MAJOR: "2"
STRESS_TESTS_MINOR: "0"
STRESS_TESTS_MINOR: "2"
STRESS_TESTS_PATCH: "0"
# This should be set by docker image already, just to be sure...
@@ -25,20 +25,13 @@ variables:
services:
- name: docker:dind
before_script:
- docker info
stages:
- lint
- repository tagging
- 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
- deploy
- deploy-multiarch
# Docker image builds
#
@@ -50,6 +43,7 @@ stages:
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
- docker info
- 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}
@@ -70,6 +64,7 @@ stages:
docker-build-rt-tests:
extends: .docker-build
needs: []
before_script:
- export MAJOR="${RT_TESTS_MAJOR}"
- export MINOR="${RT_TESTS_MINOR}"
@@ -83,6 +78,7 @@ docker-build-rt-tests:
docker-build-stress-tests:
extends: .docker-build
needs: []
before_script:
- export MAJOR="${STRESS_TESTS_MAJOR}"
- export MINOR="${STRESS_TESTS_MINOR}"
@@ -96,6 +92,7 @@ docker-build-stress-tests:
docker-build-rt-tests-arm64:
extends: .docker-build
needs: []
before_script:
- export MAJOR="${RT_TESTS_MAJOR}"
- export MINOR="${RT_TESTS_MINOR}"
@@ -110,6 +107,7 @@ docker-build-rt-tests-arm64:
docker-build-stress-tests-arm64:
extends: .docker-build
needs: []
before_script:
- export MAJOR="${STRESS_TESTS_MAJOR}"
- export MINOR="${STRESS_TESTS_MINOR}"
@@ -122,6 +120,40 @@ docker-build-stress-tests-arm64:
DOCKER_NO_CACHE: ${DOCKER_NO_CACHE_FEEDS}
stage: build-rt-tests
lint_dockerfile:
stage: lint
image: hadolint/hadolint:latest-debian
script:
# Some rules cannot be applied in our specific cases.
# However, since we don't want to completely ignore these rules,
# we are changing the following rules to have the level "info":
# - DL3008: pin versions in apt-get install
# - DL3029 (do not use --platform flag with FROM)
- hadolint */Dockerfile --failure-threshold warning --info DL3008 --info DL3029
# Make sure to create access token in "Settings/Access Tokens" section with "write_repository" scope selected.
# Then in "Settings/CI/CD/" section add a variable with key "GIT_TOKEN" and a value of the access token. Also mask the variable.
tag:
stage: repository tagging
needs: []
before_script:
- if [ -z ${GIT_TOKEN} ]; then echo "Missing variable GIT_TOKEN." && exit 1; fi
- TAGS="rt-tests-${RT_TESTS_MAJOR}.${RT_TESTS_MINOR}.${RT_TESTS_PATCH} stress_tests-${RT_TESTS_MAJOR}.${RT_TESTS_MINOR}.${RT_TESTS_PATCH}"
script:
- apk update && apk add git
- git remote set-url origin https://gitlab-ci-token:${GIT_TOKEN}@${CI_REPOSITORY_URL#*@}
- for TAG in ${TAGS};
do
if git ls-remote --tags origin | grep ${TAG} > /dev/null; then
echo "${TAG} tag already exists.";
else
echo "Tagging repository with ${TAG} tag.";
git tag --delete ${TAG} > /dev/null 2>&1 || true;
git tag ${TAG};
git push -o ci.skip origin ${TAG};
fi
done
# Enable experimental features in Docker client (experimental feature are needed for manifest)
.do_docker_experimental: &do_docker_experimental
- mkdir -p $HOME/.docker
@@ -160,278 +192,97 @@ docker-build-stress-tests-multiarch:
# Docker deploy jobs
#
# Make sure DOCKER_HUB_USER/DOCKER_HUB_PW is properly set in the project
# Make sure DOCKER_HUB_USER/DOCKER_HUB_TOKEN is properly set in the project
# specific Gitlab CI settings.
.docker-deploy-major:
.docker-deploy:
when: manual
allow_failure: false
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
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}:${MAJOR}
- *do_docker_experimental
- export DATE=$(date +%Y%m%d)
- export DOCKER_TAGS_CHECK="${MAJOR}.${MINOR}.${PATCH} ${MAJOR}.${MINOR}.${PATCH}-${DATE}"
- export DOCKER_TAGS="${MAJOR} ${MAJOR}.${MINOR}"
- docker pull ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX}
- docker login -u $DOCKER_HUB_USER -p $DOCKER_HUB_TOKEN;
- for tag in ${DOCKER_TAGS_CHECK};
do
docker manifest inspect ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${tag} > /dev/null && true; RESULT=$?;
(if [ $RESULT == 0 ] ; then echo "Image with ${tag} tag already exists." && exit 1 ; fi);
done
- for tag in ${DOCKER_TAGS} ${DOCKER_TAGS_CHECK};
do
docker tag ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${GITLAB_DOCKERREGISTRY_SUFFIX} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${tag};
docker push ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${tag};
done
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}:${MAJOR}.${MINOR}
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}:${MAJOR}.${MINOR}.${PATCH} ; else echo Image with this tag already exists. ; fi)
docker-deploy-rt-tests-patch:
extends: .docker-deploy-patch
docker-deploy-rt-tests:
extends: .docker-deploy
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
stage: deploy
docker-deploy-stress-tests-patch:
extends: .docker-deploy-patch
docker-deploy-stress-tests:
extends: .docker-deploy
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
stage: deploy
docker-deploy-rt-tests-arm64-patch:
extends: .docker-deploy-patch
docker-deploy-rt-tests-arm64:
extends: .docker-deploy
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
stage: deploy
docker-deploy-stress-tests-arm64-patch:
extends: .docker-deploy-patch
docker-deploy-stress-tests-arm64:
extends: .docker-deploy
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
stage: deploy
.docker-deploy-patch-date:
when: manual
.docker-deploy-multiarch:
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}:${MAJOR}.${MINOR}.${PATCH}-${DATE} ; 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
- export DOCKER_TAGS_CHECK="${MAJOR}.${MINOR}.${PATCH} ${MAJOR}.${MINOR}.${PATCH}-${DATE}"
- export DOCKER_TAGS="${MAJOR} ${MAJOR}.${MINOR}"
- 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 login -u $DOCKER_HUB_USER -p $DOCKER_HUB_TOKEN
- for tag in ${DOCKER_TAGS_CHECK};
do
docker manifest inspect ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${tag} > /dev/null && true; RESULT=$?;
(if [ $RESULT == 0 ] ; then echo "Image with ${tag} tag already exists." && exit 1 ; fi);
done
- for tag in ${DOCKER_TAGS} ${DOCKER_TAGS_CHECK};
do
docker manifest create ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${tag} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_32}:${tag} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_64}:${tag};
docker manifest annotate ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${tag} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_32}:${tag} --os linux --arch arm;
docker manifest annotate ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${tag} ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME_64}:${tag} --os linux --arch arm64;
docker manifest inspect -v ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${tag};
docker manifest push ${DOCKER_HUB_REPOSITORY}/${IMAGE_NAME}:${tag};
done
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
docker-deploy-rt-tests-multiarch:
extends: .docker-deploy-multiarch
needs: ["docker-deploy-rt-tests", "docker-deploy-rt-tests-arm64"]
before_script:
- export MAJOR="${RT_TESTS_MAJOR}"
- export MINOR="${RT_TESTS_MINOR}"
@@ -440,10 +291,11 @@ docker-deploy-rt-tests-multiarch-patch:
IMAGE_NAME: rt-tests
IMAGE_NAME_32: arm32v7-rt-tests
IMAGE_NAME_64: arm64v8-rt-tests
stage: deploy-multiarch-patch
stage: deploy-multiarch
docker-deploy-stress-tests-multiarch-patch:
extends: .docker-deploy-multiarch-patch
docker-deploy-stress-tests-multiarch:
extends: .docker-deploy-multiarch
needs: ["docker-deploy-stress-tests", "docker-deploy-stress-tests-arm64"]
before_script:
- export MAJOR="${STRESS_TESTS_MAJOR}"
- export MINOR="${STRESS_TESTS_MINOR}"
@@ -452,42 +304,4 @@ docker-deploy-stress-tests-multiarch-patch:
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
stage: deploy-multiarch