From f8180eace1b99d46b5a4e6cd93ab019ab7dc5d28 Mon Sep 17 00:00:00 2001 From: Michael Balsillie Date: Sun, 21 Aug 2022 22:21:11 +1200 Subject: [PATCH] wrote pipeline file --- .woodpecker/main.yml | 62 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 3 deletions(-) diff --git a/.woodpecker/main.yml b/.woodpecker/main.yml index 8d4dbd6..e2eb37d 100644 --- a/.woodpecker/main.yml +++ b/.woodpecker/main.yml @@ -1,6 +1,62 @@ +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: - matrix-service-synapse: + check-tag: image: debian:11-slim + pull: true commands: - - echo "triggered" - - echo $TAG + - 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 \ No newline at end of file