jukebox-vibe/.gitlab-ci.yml

61 lines
1.8 KiB
YAML

stages:
- build
variables:
REGISTRY_HOST: "10.10.10.10:5050"
IMAGE_NAME: "$REGISTRY_HOST/$CI_PROJECT_PATH"
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
# Force clone via IP instead of hostname to bypass Unraid Docker DNS issues
CI_SERVER_URL: "http://10.10.10.10:9080"
GITLAB_FEATURES: ""
docker-build:
stage: build
image: docker:24.0.5
services:
- docker:24.0.5-dind
rules:
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH
before_script:
- echo "$CI_REGISTRY_PASSWORD" | docker login "$REGISTRY_HOST" -u "$CI_REGISTRY_USER" --password-stdin
script:
- |
if [ "$CI_COMMIT_REF_NAME" = "main" ]; then
export TAG="main"
export VERSION="1.1.0"
export CHANNEL="stable"
elif [ "$CI_COMMIT_REF_NAME" = "feature/nightly" ] || [ "$CI_COMMIT_REF_NAME" = "nightly" ]; then
export TAG="nightly"
export VERSION="1.1.0-nightly"
export CHANNEL="nightly"
else
export CLEAN_TAG=$(echo "$CI_COMMIT_REF_NAME" | sed 's/\//-/g')
export TAG="$CLEAN_TAG"
export VERSION="1.1.0-dev"
export CHANNEL="dev"
fi
- echo "Building for channel $CHANNEL with version $VERSION and tag $TAG"
# Build
- docker pull $IMAGE_NAME:$TAG || true
- >
docker build
--cache-from $IMAGE_NAME:$TAG
--build-arg VITE_BUILD_CHANNEL=$CHANNEL
--build-arg VITE_APP_VERSION=$VERSION
-t $IMAGE_NAME:$CI_COMMIT_SHA
-t $IMAGE_NAME:$TAG
.
# Push
- docker push $IMAGE_NAME:$CI_COMMIT_SHA
- docker push $IMAGE_NAME:$TAG
# If main branch, also tag and push as latest
- |
if [ "$CI_COMMIT_REF_NAME" = "main" ]; then
docker tag $IMAGE_NAME:$TAG $IMAGE_NAME:latest
docker push $IMAGE_NAME:latest
fi