--- depends_on: - lint 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: set_variables: image: "registry.mgrote.net/allzweckcontainer:v1.0.167" commands: # set version - | 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" >> .variables # set date - | DATE=$(date --iso-8601=seconds) echo "DATE=$DATE" >> .variables 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 .variables - source .variables - | 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 \ --file Dockerfile . - docker push registry.mgrote.net/httpd:${CI_COMMIT_SHA:0:8} - docker push registry.mgrote.net/httpd:${CI_COMMIT_BRANCH} - docker push registry.mgrote.net/httpd:latest - docker push registry.mgrote.net/httpd:$VERSION - docker push registry.mgrote.net/httpd when: - evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"' ...