.gitlab-ci.yml 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. image: docker:23.0.5
  2. variables:
  3. DOCKER_DRIVER: overlay2
  4. DOCKER_TLS_CERTDIR: "/certs"
  5. DOCKER_HOST: tcp://docker:2376
  6. DOCKER_SHA: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  7. DOCKER_BRANCH: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
  8. DOCKER_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
  9. DOCKER_LATEST: $CI_REGISTRY_IMAGE:latest
  10. services:
  11. - docker:23.0.5-dind
  12. stages:
  13. - build
  14. - release
  15. before_script:
  16. - docker info
  17. - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  18. build_docker:
  19. stage: build
  20. script:
  21. - docker pull $DOCKER_BRANCH || true
  22. - docker build --cache-from $DOCKER_BRANCH -f ./Dockerfile --tag $DOCKER_BRANCH .
  23. - docker push $DOCKER_BRANCH
  24. rules:
  25. - if: $CI_COMMIT_TAG || $CI_COMMIT_BRANCH == "main"
  26. - if: $CI_PIPELINE_SOURCE == "push" || $CI_COMMIT_BRANCH == "dev"
  27. when: manual
  28. allow_failure: true
  29. build_tagged_docker:
  30. stage: release
  31. script:
  32. - docker pull $DOCKER_BRANCH || true
  33. - docker tag $DOCKER_BRANCH $DOCKER_LATEST
  34. - docker push $DOCKER_LATEST
  35. - docker tag $DOCKER_BRANCH $DOCKER_TAG
  36. - docker push $DOCKER_TAG
  37. rules:
  38. - if: $CI_COMMIT_TAG
  39. - if: $CI_PIPELINE_SOURCE == "push" || $CI_COMMIT_BRANCH == "dev"
  40. when: manual
  41. allow_failure: true