From 705c1addda18ae51493572b20e71806331ec8789 Mon Sep 17 00:00:00 2001 From: Michael Grote Date: Wed, 7 Feb 2024 17:37:00 +0100 Subject: [PATCH] ci: replace plugin, set version with commit-count (#17) Reviewed-on: https://git.mgrote.net/container-images/httpd/pulls/17 Co-authored-by: Michael Grote Co-committed-by: Michael Grote --- .woodpecker/build.yml | 54 ++++++++++++++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml index b6c4232..3ab58f6 100644 --- a/.woodpecker/build.yml +++ b/.woodpecker/build.yml @@ -2,21 +2,49 @@ depends_on: - lint -variables: # https://woodpecker-ci.org/docs/usage/advanced-usage - - &VERSION 'v1.0.${CI_PIPELINE_NUMBER}' # wird für die Docker-Tags verwendet +clone: + 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: - selfhosted_push: - image: "woodpeckerci/plugin-docker-buildx:3.0.1" - settings: - dockerfile: Dockerfile - repo: registry.mgrote.net/httpd - registry: registry.mgrote.net - tags: - - *VERSION - - ${CI_COMMIT_SHA:0:8} - - ${CI_COMMIT_BRANCH} - - latest + set_version: + image: "registry.mgrote.net/allzweckcontainer:v1.0.159" + commands: + - | + MAJOR="1" + MINOR="1" + PATCH="$(git rev-list --count "$CI_COMMIT_BRANCH")" + VERSION="v$MAJOR.$MINOR.$PATCH" + if [ "$CI_COMMIT_BRANCH" != "main" ] && [ "$CI_COMMIT_BRANCH" != "master" ]; then + VERSION=$VERSION-dev + 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: - evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"' ...