diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 978eb2a8ca1385919ae8716033a6b9867a5d9e3c..863277132648a4158bca371537b983514659b2dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,9 +2,10 @@ image: docker:27 services: - docker:27-dind before_script: -- apk --no-cache -q add curl jq +- apk --no-cache -q add curl git jq variables: CI_REGISTRY_IMAGE: antora/antora + CI_REGISTRY_IMAGE_PLATFORM: linux/amd64,linux/arm64 CI_REGISTRY_TAGS_RESOURCE: https://registry.hub.docker.com/v2/repositories/$CI_REGISTRY_IMAGE/tags/?page_size=25 .defs: - &set_antora_version @@ -15,10 +16,14 @@ variables: [[ $ANTORA_VERSION == "3.2."* ]] && sed -i "s/^FROM node:16-/FROM node:18-/" Dockerfile - &set_image_tag | if [ -z "${ANTORA_VERSION/*-*}" ]; then CI_REGISTRY_IMAGE_TAG=testing; else CI_REGISTRY_IMAGE_TAG=latest; fi +- &init_buildx + docker buildx install && docker buildx create --name docker-antora --use - &docker_build - docker build --pull -t "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" -t "$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG" . -- &docker_list_image - docker images "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" + docker build --pull --platform "$CI_REGISTRY_IMAGE_PLATFORM" -t "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" -t "$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG" . +- &docker_push + docker build --push --platform "$CI_REGISTRY_IMAGE_PLATFORM" -t "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" -t "$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG" . +- &docker_inspect + docker buildx imagetools inspect "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" build: stage: build rules: @@ -30,8 +35,8 @@ build: - *sub_antora_version - *sub_node_version - *set_image_tag + - *init_buildx - *docker_build - - *docker_list_image deploy: stage: deploy rules: @@ -43,8 +48,8 @@ deploy: - *sub_antora_version - *sub_node_version - *set_image_tag + - *init_buildx - *docker_build - - *docker_list_image - | while [ -n "$CI_REGISTRY_TAGS_RESOURCE" ]; do _tags=$(curl -s $CI_REGISTRY_TAGS_RESOURCE) @@ -57,7 +62,6 @@ deploy: fi done - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" - - echo "Publishing $CI_REGISTRY_IMAGE:$ANTORA_VERSION" - - docker push "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" - echo "Publishing $CI_REGISTRY_IMAGE:$ANTORA_VERSION as $CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG" - - docker push "$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG" + - *docker_push + - *docker_inspect