variables: &vars export REGISTRY=code.balsillie.net && \ export REGISTRY_USER=michael && \ export ORGANIZATION=containers && \ export SOURCE_ORGANIZATION=mirrors && \ export REPO=matrix-service-synapse && \ export BUILD_ARGS="PYTHON_VERSION=3.10" && \ export DOCKERFILE="docker/Dockerfile" && \ export CONTEXT=. workspace: base: /git path: pipeline clone: git: image: woodpeckerci/plugin-git pipeline: check-tag: image: debian:11-slim pull: false environment: - SHELL=/bin/bash commands: - echo $SHELL - if [[ $TAG =~ ^v1\...\..rc.$ ]] - then - echo "Tag ${TAG} appears to be a release candidate, terminating build." && exit 1 - elif [[ $TAG =~ ^v1\...\..$ ]] - then - echo "Tag ${TAG} appears to be a release tag, proceeding." && exit 0 - else - echo "Unable to determine nature of tag, terminating build." && exit 1 - fi clone-source: image: docker:git commands: - *vars - git clone "https://${REGISTRY}/${SOURCE_ORGANIZATION}/${REPO}.git" /git/$REPO - cd /git/$REPO - git checkout $TAG docker-build: image: docker:latest secrets: - source: REGISTRY_PASSWORD target: REGISTRY_PASSWORD commands: - *vars - export DOCKER_BUILDKIT=1 - cd /git/$REPO - echo $REGISTRY_PASSWORD | docker login $REGISTRY -u $REGISTRY_USER --password-stdin - docker build \ -t $REGISTRY/$ORGANIZATION/$REPO:$TAG \ -t $REGISTRY/$ORGANIZATION/$REPO:$(date +%F) \ -t $REGISTRY/$ORGANIZATION/$REPO:latest \ --pull \ --build-arg $BUILD_ARGS \ -f $DOCKERFILE \ $CONTEXT - docker push $REGISTRY/$ORGANIZATION/$REPO:latest