ci: fix pipeline, update readme and anonymize ZT references
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
variables:
|
||||
# Enable Docker BuildKit for multi-arch builds
|
||||
DOCKER_BUILDKIT: 1
|
||||
IMAGE_NAME: $CI_REGISTRY_IMAGE
|
||||
|
||||
stages:
|
||||
- build
|
||||
|
||||
build-and-push:
|
||||
stage: build
|
||||
image: docker:24.0.5
|
||||
services:
|
||||
- docker:24.0.5-dind
|
||||
before_script:
|
||||
# Log into the GitLab Container Registry using provided CI/CD variables
|
||||
- echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" --password-stdin
|
||||
|
||||
# Set up QEMU for multi-architecture builds (equivalent to setup-qemu-action)
|
||||
- docker run --privileged --rm tonistiigi/binfmt --install all
|
||||
|
||||
# Create and boot a new builder instance (equivalent to setup-buildx-action)
|
||||
- docker buildx create --use --name multi-arch-builder
|
||||
- docker buildx inspect --bootstrap
|
||||
script:
|
||||
# Determine the tags based on the trigger event (Release tag vs Manual branch run)
|
||||
- |
|
||||
if [ -n "$CI_COMMIT_TAG" ]; then
|
||||
# If triggered by a tag (release), build with the specific version and 'latest'
|
||||
TAG_ARGS="-t $IMAGE_NAME:$CI_COMMIT_TAG -t $IMAGE_NAME:latest"
|
||||
else
|
||||
# If triggered manually on a branch, use the branch name as the tag
|
||||
TAG_ARGS="-t $IMAGE_NAME:$CI_COMMIT_REF_SLUG"
|
||||
fi
|
||||
|
||||
# Build and push the Docker image for both amd64 and arm64 architectures
|
||||
- docker buildx build --push --platform linux/amd64,linux/arm64 $TAG_ARGS .
|
||||
rules:
|
||||
# Trigger automatically when pushing to main branch
|
||||
- if: $CI_COMMIT_BRANCH == "main"
|
||||
# Trigger automatically when a new tag is pushed
|
||||
- if: $CI_COMMIT_TAG
|
||||
# Allow manual triggering from the GitLab Web UI
|
||||
- if: $CI_PIPELINE_SOURCE == "web"
|
||||
Reference in New Issue
Block a user