matrix-service-synapse/.woodpecker.yml
2022-08-22 02:55:35 +12:00

92 lines
2.5 KiB
YAML

variables:
&vars
- REGISTRY=code.balsillie.net
- REGISTRY_USER=michael
- ORGANIZATION=containers
- SOURCE_ORGANIZATION=mirrors
- REPO=matrix-service-synapse
- BUILD_ARGS=PYTHON_VERSION=3.10
- DOCKERFILE=docker/Dockerfile
- CONTEXT=.
- WATCHTOWER_HOST=watchtower.balsillie.net
- MATRIX_HOST=matrix.balsillie.net
- MATRIX_PORT=443
- MATRIX_ROOM=!HdSXmuHcBMaYExEfkh:balsillie.net
workspace:
base: /git
path: pipeline
clone:
git:
image: woodpeckerci/plugin-git
pipeline:
check-tag:
image: code.balsillie.net/containers/woodpecker-util
pull: true
commands:
- /bin/bash /git/pipeline/check-tag.sh
clone-source:
image: docker:git
environment:
*vars
commands:
- git clone "https://$${REGISTRY}/$${SOURCE_ORGANIZATION}/$${REPO}.git" /git/$${REPO}
- cd /git/$${REPO}
- pwd
- git checkout ${TAG}
- ls
docker-build:
image: docker:latest
secrets:
- source: REGISTRY_PASSWORD
target: REGISTRY_PASSWORD
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
*vars
commands:
- export DOCKER_BUILDKIT=1
- cd /git/$${REPO}
- pwd
- ls
- 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 -a $REGISTRY/$ORGANIZATION/$REPO
trigger-watchtower:
image: code.balsillie.net/containers/woodpecker-util
pull: false
environment:
*vars
secrets:
- source: WATCHTOWER_HTTP_API_TOKEN
target: WATCHTOWER_HTTP_API_TOKEN
commands:
# - /bin/sh /git/pipeline/trigger-watchtower.sh
- curl -H "Authorization: Bearer $${WATCHTOWER_HTTP_API_TOKEN}" -i "https://$${WATCHTOWER_HOST}/v1/update"
notify-matrix:
image: code.balsillie.net/containers/woodpecker-util
pull: false
environment:
*vars
secrets:
- source: MATRIX_ACCESS_TOKEN
target: MATRIX_ACCESS_TOKEN
commands:
- sleep 60
- shoutrrr send
--url matrix://$${MATRIX_ACCESS_TOKEN}@$${MATRIX_HOST}:$${MATRIX_PORT}/?rooms=$${MATRIX_ROOM}
--message "New image build of $${ORGANIZATION}/$${REPO}, $${TAG}, has completed and been deployed."