ci: replace plugin, set version with commit-count (#17)

Reviewed-on: #17
Co-authored-by: Michael Grote <michael.grote@posteo.de>
Co-committed-by: Michael Grote <michael.grote@posteo.de>
This commit is contained in:
Michael Grote 2024-02-07 17:37:00 +01:00 committed by mg
parent 611e5a5510
commit 705c1addda

View file

@ -2,21 +2,49 @@
depends_on: depends_on:
- lint - lint
variables: # https://woodpecker-ci.org/docs/usage/advanced-usage clone:
- &VERSION 'v1.0.${CI_PIPELINE_NUMBER}' # wird für die Docker-Tags verwendet git:
image: "woodpeckerci/plugin-git:2.5.0"
settings:
depth: 9999 # wird benötigt um die Commits zählen zu können
lfs: false
partial: false
steps: steps:
selfhosted_push: set_version:
image: "woodpeckerci/plugin-docker-buildx:3.0.1" image: "registry.mgrote.net/allzweckcontainer:v1.0.159"
settings: commands:
dockerfile: Dockerfile - |
repo: registry.mgrote.net/httpd MAJOR="1"
registry: registry.mgrote.net MINOR="1"
tags: PATCH="$(git rev-list --count "$CI_COMMIT_BRANCH")"
- *VERSION VERSION="v$MAJOR.$MINOR.$PATCH"
- ${CI_COMMIT_SHA:0:8} if [ "$CI_COMMIT_BRANCH" != "main" ] && [ "$CI_COMMIT_BRANCH" != "master" ]; then
- ${CI_COMMIT_BRANCH} VERSION=$VERSION-dev
- latest fi
echo "VERSION=$VERSION" > .version
cat .version
build_and_push: # damit dieser Step laufen kann muss das Repo in der Woodpecker-GUI "privilegiert" sein
image: "docker:25.0.3"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
commands:
- cat .version
- source .version
- |
docker buildx build \
--tag registry.mgrote.net/httpd \
--tag registry.mgrote.net/httpd:${CI_COMMIT_SHA:0:8} \
--tag registry.mgrote.net/httpd:${CI_COMMIT_BRANCH} \
--tag registry.mgrote.net/httpd:latest \
--tag registry.mgrote.net/httpd:$VERSION \
--label org.opencontainers.image.url=$CI_REPO_URL \
--label org.opencontainers.image.source=$CI_REPO_URL \
--label org.opencontainers.image.revision=$CI_COMMIT_SHA \
--label org.opencontainers.image.created=$(date -Iseconds) \
--file Dockerfile .
- docker push --all-tags registry.mgrote.net/httpd
when: when:
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"' - evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
... ...