ci: add woddpecker
This commit is contained in:
parent
1d2d3749f2
commit
d494041401
3 changed files with 87 additions and 95 deletions
95
.drone.yml
95
.drone.yml
|
@ -1,95 +0,0 @@
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: linting
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: gitleaks
|
|
||||||
image: plugins/gitleaks
|
|
||||||
settings:
|
|
||||||
path: .
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- tag
|
|
||||||
|
|
||||||
- name: hadolint
|
|
||||||
image: hadolint/hadolint:latest-debian
|
|
||||||
commands:
|
|
||||||
- hadolint Dockerfile
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: selfhosted
|
|
||||||
depends_on: # bezieht sich auf linting pipeline
|
|
||||||
- linting
|
|
||||||
steps:
|
|
||||||
- name: docker_build_and_push_selfhosted
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
repo: registry.mgrote.net/munin-server
|
|
||||||
registry: registry.mgrote.net
|
|
||||||
tags:
|
|
||||||
- ${DRONE_COMMIT_SHA:0:8}
|
|
||||||
- ${DRONE_COMMIT_BRANCH}
|
|
||||||
- latest
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
- tag
|
|
||||||
|
|
||||||
- name: docker_build_and_push_selfhosted_tag
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
repo: registry.mgrote.net/munin-server
|
|
||||||
registry: registry.mgrote.net
|
|
||||||
tags:
|
|
||||||
- ${DRONE_TAG}
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- tag
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: dockerhub
|
|
||||||
depends_on: # bezieht sich auf linting pipeline
|
|
||||||
- linting
|
|
||||||
steps:
|
|
||||||
- name: docker_build_and_push_dockerhub
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
username:
|
|
||||||
from_secret: DOCKERHUB_USER
|
|
||||||
password:
|
|
||||||
from_secret: DOCKERHUB_PASS
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
repo: quotengrote/munin-server
|
|
||||||
tags:
|
|
||||||
- ${DRONE_COMMIT_SHA:0:8}
|
|
||||||
- ${DRONE_COMMIT_BRANCH}
|
|
||||||
- latest
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
- tag
|
|
||||||
|
|
||||||
- name: docker_build_and_push_dockerhub_tag
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
username:
|
|
||||||
from_secret: DOCKERHUB_USER
|
|
||||||
password:
|
|
||||||
from_secret: DOCKERHUB_PASS
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
repo: quotengrote/munin-server
|
|
||||||
tags:
|
|
||||||
- ${DRONE_TAG}
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- tag
|
|
58
.woodpecker/build.yml
Normal file
58
.woodpecker/build.yml
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
---
|
||||||
|
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.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
|
||||||
|
- |
|
||||||
|
docker buildx build \
|
||||||
|
--tag registry.mgrote.net/$CI_REPO_NAME \
|
||||||
|
--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 .
|
||||||
|
- docker push registry.mgrote.net/$CI_REPO_NAME:${CI_COMMIT_SHA:0:8}
|
||||||
|
- docker push registry.mgrote.net/$CI_REPO_NAME:${CI_COMMIT_BRANCH}
|
||||||
|
- docker push registry.mgrote.net/$CI_REPO_NAME:latest
|
||||||
|
- docker push registry.mgrote.net/$CI_REPO_NAME:$VERSION
|
||||||
|
- docker push registry.mgrote.net/$CI_REPO_NAME
|
||||||
|
when:
|
||||||
|
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
|
||||||
|
...
|
29
.woodpecker/lint.yml
Normal file
29
.woodpecker/lint.yml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
steps:
|
||||||
|
gitleaks:
|
||||||
|
image: zricethezav/gitleaks:v8.18.2
|
||||||
|
commands:
|
||||||
|
- gitleaks detect --no-git --verbose --source $CI_WORKSPACE
|
||||||
|
when:
|
||||||
|
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
|
||||||
|
|
||||||
|
hadolint:
|
||||||
|
image: pipelinecomponents/hadolint:0.26.0
|
||||||
|
commands:
|
||||||
|
- hadolint Dockerfile
|
||||||
|
when:
|
||||||
|
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
|
||||||
|
|
||||||
|
shellcheck:
|
||||||
|
image: "koalaman/shellcheck-alpine:latest"
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
find . -type f -not -path './.git/*' -not -path './collections/*' -exec file {} \; | while IFS= read -r line; do
|
||||||
|
if echo "$line" | grep -q "shell script"; then
|
||||||
|
file_path=$(echo "$line" | awk -F':' '{print $1}')
|
||||||
|
shellcheck "$file_path"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
when:
|
||||||
|
- evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
|
||||||
|
...
|
Reference in a new issue