--- 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:latest" commands: # set version - | MAJOR="1" MINOR="0" 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 when: - event: [push, pull_request, cron] evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"' build_and_push: # damit dieser Step laufen kann muss das Repo in der Woodpecker-GUI "privilegiert" sein image: "docker:27.0.2" volumes: - /var/run/docker.sock:/var/run/docker.sock commands: - cat .variables - source .variables # https://unix.stackexchange.com/questions/748633/error-multiple-platforms-feature-is-currently-not-supported-for-docker-driver - docker buildx create --use --platform=linux/amd64 --name multi-platform-builder - docker buildx inspect --bootstrap - | docker buildx build \ --platform=linux/amd64 \ --push \ --tag registry.mgrote.net/${CI_REPO_NAME}:${CI_COMMIT_SHA:0:8} \ --tag registry.mgrote.net/${CI_REPO_NAME}:${CI_COMMIT_BRANCH} \ --tag registry.mgrote.net/${CI_REPO_NAME}:latest \ --tag registry.mgrote.net/${CI_REPO_NAME}:$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 . when: - event: [push, pull_request, cron] evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"' ...