|
@@ -0,0 +1,47 @@
|
|
|
+image: docker:23.0.5
|
|
|
+
|
|
|
+variables:
|
|
|
+ DOCKER_DRIVER: overlay2
|
|
|
+ DOCKER_TLS_CERTDIR: "/certs"
|
|
|
+ DOCKER_HOST: tcp://docker:2376
|
|
|
+ DOCKER_SHA: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
|
|
|
+ DOCKER_BRANCH: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
|
|
|
+ DOCKER_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
|
|
|
+ DOCKER_LATEST: $CI_REGISTRY_IMAGE:latest
|
|
|
+
|
|
|
+services:
|
|
|
+ - docker:23.0.5-dind
|
|
|
+
|
|
|
+stages:
|
|
|
+ - build
|
|
|
+ - release
|
|
|
+
|
|
|
+before_script:
|
|
|
+ - docker info
|
|
|
+ - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
|
+
|
|
|
+build_docker:
|
|
|
+ stage: build
|
|
|
+ script:
|
|
|
+ - docker pull $DOCKER_BRANCH || true
|
|
|
+ - docker build --cache-from $DOCKER_BRANCH -f ./Dockerfile --tag $DOCKER_BRANCH .
|
|
|
+ - docker push $DOCKER_BRANCH
|
|
|
+ rules:
|
|
|
+ - if: $CI_COMMIT_TAG || $CI_COMMIT_BRANCH == "main"
|
|
|
+ - if: $CI_PIPELINE_SOURCE == "push" || $CI_COMMIT_BRANCH == "dev"
|
|
|
+ when: manual
|
|
|
+ allow_failure: true
|
|
|
+
|
|
|
+build_tagged_docker:
|
|
|
+ stage: release
|
|
|
+ script:
|
|
|
+ - docker pull $DOCKER_BRANCH || true
|
|
|
+ - docker tag $DOCKER_BRANCH $DOCKER_LATEST
|
|
|
+ - docker push $DOCKER_LATEST
|
|
|
+ - docker tag $DOCKER_BRANCH $DOCKER_TAG
|
|
|
+ - docker push $DOCKER_TAG
|
|
|
+ rules:
|
|
|
+ - if: $CI_COMMIT_TAG
|
|
|
+ - if: $CI_PIPELINE_SOURCE == "push" || $CI_COMMIT_BRANCH == "dev"
|
|
|
+ when: manual
|
|
|
+ allow_failure: true
|