mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-13 22:37:14 +10:00
49 lines
1.4 KiB
YAML
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
|