Loading .gitlab-ci.yml +28 −32 Original line number Diff line number Diff line Loading @@ -2,6 +2,9 @@ variables: VERSION: value: 2.20.0 description: Pre-Commit version TARGET_PLATFORM: value: linux/amd64,linux/arm64 description: Comma separated list of platforms to build images for .docker: image: docker:stable Loading @@ -17,41 +20,34 @@ variables: - docker info - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY" build: Build: stage: build extends: .docker image: docker.kodo.org.uk/ci-images/buildkit/buildctl:latest tags: [buildkit] script: - docker build . --pull=true --build-arg=VERSION=${VERSION} --tag=${BUILD_TAG} - docker push ${BUILD_TAG} - buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=. --output=type=image,name=$CI_REGISTRY_IMAGE/build:pipeline-$CI_PIPELINE_IID,push=true --opt platform=$TARGET_PLATFORMS --opt label:commit=$CI_COMMIT_SHA ${VERSION:+--opt build-arg:VERSION=$VERSION} deploy:commit: Tag Commit: stage: deploy extends: .docker variables: TAG: ${CI_REGISTRY_IMAGE}/commit:${CI_COMMIT_SHORT_SHA} image: docker.kodo.org.uk/ci-images/docker-reg:0.2.0 script: - docker pull ${BUILD_TAG} - docker tag ${BUILD_TAG} ${TAG} - docker push ${TAG} deploy:branch: extends: [ "deploy:commit" ] only: [ branches ] except: [ master ] variables: TAG: ${CI_REGISTRY_IMAGE}/branch/${CI_COMMIT_REF_SLUG}:latest - docker-reg $CI_REGISTRY_IMAGE/build:pipeline-$CI_PIPELINE_IID retag commit-$CI_COMMIT_SHA deploy:tag: extends: [ "deploy:commit" ] only: [ tags ] except: - /^[^v]/ - /^v[^0-9]/ variables: TAG: ${CI_REGISTRY_IMAGE}:latest after_script: - docker tag ${BUILD_TAG} ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG#v} - docker push ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG#v} Tag Release: stage: deploy image: docker.kodo.org.uk/ci-images/docker-reg:0.2.0 rules: - if: $CI_COMMIT_TAG =~ /^v[0-9]/ script: - docker-reg $CI_REGISTRY_IMAGE/build:pipeline-$CI_PIPELINE_IID retag $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG#v} - docker-reg $CI_REGISTRY_IMAGE/build:pipeline-$CI_PIPELINE_IID retag $CI_REGISTRY_IMAGE:latest Loading
.gitlab-ci.yml +28 −32 Original line number Diff line number Diff line Loading @@ -2,6 +2,9 @@ variables: VERSION: value: 2.20.0 description: Pre-Commit version TARGET_PLATFORM: value: linux/amd64,linux/arm64 description: Comma separated list of platforms to build images for .docker: image: docker:stable Loading @@ -17,41 +20,34 @@ variables: - docker info - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY" build: Build: stage: build extends: .docker image: docker.kodo.org.uk/ci-images/buildkit/buildctl:latest tags: [buildkit] script: - docker build . --pull=true --build-arg=VERSION=${VERSION} --tag=${BUILD_TAG} - docker push ${BUILD_TAG} - buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=. --output=type=image,name=$CI_REGISTRY_IMAGE/build:pipeline-$CI_PIPELINE_IID,push=true --opt platform=$TARGET_PLATFORMS --opt label:commit=$CI_COMMIT_SHA ${VERSION:+--opt build-arg:VERSION=$VERSION} deploy:commit: Tag Commit: stage: deploy extends: .docker variables: TAG: ${CI_REGISTRY_IMAGE}/commit:${CI_COMMIT_SHORT_SHA} image: docker.kodo.org.uk/ci-images/docker-reg:0.2.0 script: - docker pull ${BUILD_TAG} - docker tag ${BUILD_TAG} ${TAG} - docker push ${TAG} deploy:branch: extends: [ "deploy:commit" ] only: [ branches ] except: [ master ] variables: TAG: ${CI_REGISTRY_IMAGE}/branch/${CI_COMMIT_REF_SLUG}:latest - docker-reg $CI_REGISTRY_IMAGE/build:pipeline-$CI_PIPELINE_IID retag commit-$CI_COMMIT_SHA deploy:tag: extends: [ "deploy:commit" ] only: [ tags ] except: - /^[^v]/ - /^v[^0-9]/ variables: TAG: ${CI_REGISTRY_IMAGE}:latest after_script: - docker tag ${BUILD_TAG} ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG#v} - docker push ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG#v} Tag Release: stage: deploy image: docker.kodo.org.uk/ci-images/docker-reg:0.2.0 rules: - if: $CI_COMMIT_TAG =~ /^v[0-9]/ script: - docker-reg $CI_REGISTRY_IMAGE/build:pipeline-$CI_PIPELINE_IID retag $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG#v} - docker-reg $CI_REGISTRY_IMAGE/build:pipeline-$CI_PIPELINE_IID retag $CI_REGISTRY_IMAGE:latest