diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ac5eaf21f212362f045d2f2d1966f479e2027e31..5fcc0d9120c00faca1992093c1bfe954c375cbc1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,6 +6,8 @@ before_script: variables: CI_REGISTRY_IMAGE: antora/antora CI_REGISTRY_TAGS_RESOURCE: https://registry.hub.docker.com/v2/repositories/$CI_REGISTRY_IMAGE/tags/?page_size=25 + BUILDX_VERSION: "v0.11.2" + BUILDX_ARCH: "linux-amd64" .defs: - &set_antora_version ANTORA_VERSION=${ANTORA_VERSION:-$(curl -s 'https://gitlab.com/api/v4/projects/4180516/repository/tags?order_by=updated&sort=desc&per_page=1' | jq -rM '.[].name[1:]')} @@ -13,34 +15,33 @@ variables: sed -i "s/@latest/@$ANTORA_VERSION/g" Dockerfile - &sub_node_version | [ ${ANTORA_VERSION%%.*} -lt 3 ] && sed -i "s/^FROM node:16-/FROM node:10-/" Dockerfile +- &download_buildx + wget -O /usr/bin/docker-buildx https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.${BUILDX_ARCH} && chmod +x /usr/bin/docker-buildx && docker-buildx create --use - &docker_build - docker build --pull -t "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" . -- &docker_list_image - docker images "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" + docker-buildx build --platform linux/amd64,linux/arm64/v8 --tag "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" . build: stage: build rules: - - if: $CI_PROJECT_PATH == 'antora/docker-antora' && $CI_COMMIT_BRANCH == 'main' + - if: $CI_COMMIT_BRANCH == 'main' when: never - when: on_success script: - *set_antora_version - *sub_antora_version - *sub_node_version + - *download_buildx - *docker_build - - *docker_list_image deploy: stage: deploy rules: - - if: $CI_PROJECT_PATH == 'antora/docker-antora' && $CI_COMMIT_BRANCH == 'main' + - if: $CI_COMMIT_BRANCH == 'main' script: - echo "Antora version requested:" ${ANTORA_VERSION:-none} - *set_antora_version - echo "Antora version resolved:" $ANTORA_VERSION - *sub_antora_version - *sub_node_version - - *docker_build - - *docker_list_image + - *download_buildx - | while [ -n "$CI_REGISTRY_TAGS_RESOURCE" ]; do _tags=$(curl -s $CI_REGISTRY_TAGS_RESOURCE) @@ -54,7 +55,7 @@ deploy: 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" + - docker-buildx build --push --platform linux/amd64,linux/arm64/v8 --tag "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" . - | if [ -z "${ANTORA_VERSION/*-*}" ]; then CI_REGISTRY_IMAGE_TAG=testing @@ -62,5 +63,4 @@ deploy: CI_REGISTRY_IMAGE_TAG=latest fi - echo "Tagging $CI_REGISTRY_IMAGE:$ANTORA_VERSION as $CI_REGISTRY_IMAGE_TAG" - - docker tag "$CI_REGISTRY_IMAGE:$ANTORA_VERSION" "$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG" - - docker push "$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG" + - docker-buildx build --push --platform linux/amd64,linux/arm64/v8 --tag "$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG" .