37 lines
1.2 KiB
YAML
37 lines
1.2 KiB
YAML
workflow:
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
when: never
|
|
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
|
|
when: never
|
|
# - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch
|
|
default:
|
|
image: docker:28.0.4
|
|
services:
|
|
- docker:28.0.4-dind
|
|
before_script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
variables:
|
|
# Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled
|
|
DOCKER_HOST: tcp://docker:2376
|
|
DOCKER_TLS_CERTDIR: "/certs"
|
|
CONTAINER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH
|
|
CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:latest
|
|
IMAGES: ('poetry')
|
|
stages:
|
|
- build
|
|
.commands:
|
|
strip_tag:
|
|
- TAG=$(echo ${CI_COMMIT_MESSAGE} | tr -d \\n)
|
|
build:
|
|
stage: build
|
|
script:
|
|
- docker context create my-builder
|
|
- docker buildx create my-builder --driver docker-container --use
|
|
- |
|
|
for image in $IMAGES
|
|
do
|
|
CONTAINER_IMAGE="$CI_REGISTRY_IMAGE/$image"
|
|
docker buildx build --push -t $CONTAINER_IMAGE --cache-to type=registry,ref=$CONTAINER_IMAGE,mode=max --cache-from type=registry,ref=$CONTAINER_IMAGE -f Dockerfile-$image .
|
|
done
|