aboutsummaryrefslogtreecommitdiffstats
path: root/.woodpecker/build.yml
diff options
context:
space:
mode:
authorMichael Grote2024-02-17 15:29:48 +0100
committerMichael Grote2024-02-17 15:29:48 +0100
commit22acfcabebbb15e4002a7f583f47a7607a72f56f (patch)
tree3ce7a9d163da6e8862fccb505202c3b5e9693b5a /.woodpecker/build.yml
parent5d0513322e29329241cf0dcba067bf56985d1c7f (diff)
ci: new build step
Diffstat (limited to '.woodpecker/build.yml')
-rw-r--r--.woodpecker/build.yml65
1 files changed, 48 insertions, 17 deletions
diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml
index 195f884..228157c 100644
--- a/.woodpecker/build.yml
+++ b/.woodpecker/build.yml
@@ -2,25 +2,56 @@
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:
- docker_build_and_push_selfhosted:
- image: "woodpeckerci/plugin-docker-buildx:3.1.0"
- privileged: true
- settings:
- dockerfile: Dockerfile
- repo: registry.mgrote.net/mdns-repeater-mikrotik
- registry: registry.mgrote.net
- tags:
- - *VERSION
- - ${CI_COMMIT_SHA:0:8}
- - ${CI_COMMIT_BRANCH}
- - latest
- platforms:
- - linux/arm64
- - linux/amd64
+ set_variables:
+ image: "registry.mgrote.net/allzweckcontainer:v1.1.102"
+ 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
+ # https://unix.stackexchange.com/questions/748633/error-multiple-platforms-feature-is-currently-not-supported-for-docker-driver
+ - docker buildx create --use --platform=linux/arm64,linux/amd64 --name multi-platform-builder
+ - docker buildx inspect --bootstrap
+ - |
+ docker buildx build \
+ --platform=linux/arm64,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:
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
...