Files
Reactive-Resume/.gitlab-ci.yml
T
2026-01-19 23:31:54 +01:00

49 lines
1.4 KiB
YAML

stages:
- build
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: "/certs"
build-and-push:
stage: build
image: docker:24
services:
- docker:24-dind
rules:
- if: $CI_COMMIT_BRANCH == "main"
- if: $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_PIPELINE_SOURCE == "web"
before_script:
- apk add --no-cache jq
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
- |
export VERSION=$(jq -r .version package.json)
echo "VERSION=$VERSION" >> build.env
script:
- source build.env
- |
SHORT_SHA=$CI_COMMIT_SHORT_SHA
PRIMARY_TAG="$CI_REGISTRY_IMAGE:$SHORT_SHA"
# Build the image
docker build -f ./Dockerfile -t $PRIMARY_TAG .
# Tag with additional tags
docker tag $PRIMARY_TAG $CI_REGISTRY_IMAGE:latest
if [ -n "$VERSION" ] && [ "$VERSION" != "null" ]; then
docker tag $PRIMARY_TAG $CI_REGISTRY_IMAGE:v$VERSION
fi
# Push all tags (only if not a merge request)
if [ "$CI_PIPELINE_SOURCE" != "merge_request_event" ]; then
docker push $PRIMARY_TAG
docker push $CI_REGISTRY_IMAGE:latest
if [ -n "$VERSION" ] && [ "$VERSION" != "null" ]; then
docker push $CI_REGISTRY_IMAGE:v$VERSION
fi
fi
after_script:
- docker logout $CI_REGISTRY || true