52 lines
1.5 KiB
YAML
52 lines
1.5 KiB
YAML
stages:
|
|
- docker
|
|
|
|
workflow:
|
|
rules:
|
|
- if: '$CI_COMMIT_BRANCH == "dev"'
|
|
- when: never
|
|
|
|
variables:
|
|
DOCKER_BUILDKIT: "1"
|
|
DOCKER_DRIVER: overlay2
|
|
DOCKER_HOST: tcp://docker:2375
|
|
DOCKER_TLS_CERTDIR: ""
|
|
GIT_DEPTH: "0"
|
|
|
|
docker-dev:
|
|
stage: docker
|
|
image: docker:27.5.1
|
|
services:
|
|
- name: docker:27.5.1-dind
|
|
alias: docker
|
|
interruptible: true
|
|
parallel:
|
|
matrix:
|
|
- TARGET: backend
|
|
IMAGE: remnawave-minishop-backend
|
|
- TARGET: worker
|
|
IMAGE: remnawave-minishop-worker
|
|
- TARGET: frontend
|
|
IMAGE: remnawave-minishop-frontend
|
|
before_script:
|
|
- apk add --no-cache git
|
|
- test -n "$DOCKERHUB_USERNAME"
|
|
- test -n "$DOCKERHUB_TOKEN"
|
|
- echo "$DOCKERHUB_TOKEN" | docker login --username "$DOCKERHUB_USERNAME" --password-stdin
|
|
- docker buildx create --name gitlab-builder --use
|
|
script:
|
|
- git fetch origin dev --tags
|
|
- |
|
|
if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/dev)" ]; then
|
|
echo "A newer dev commit exists; skipping Docker Hub build for $IMAGE."
|
|
exit 0
|
|
fi
|
|
- docker buildx build --load --platform linux/amd64 --file deploy/docker/Dockerfile --target "$TARGET" --build-arg "CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME" --tag "3252a8/$IMAGE:dev" .
|
|
- git fetch origin dev --tags
|
|
- |
|
|
if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/dev)" ]; then
|
|
echo "A newer dev commit exists; skipping Docker Hub push for $IMAGE."
|
|
exit 0
|
|
fi
|
|
- docker push "3252a8/$IMAGE:dev"
|