101 lines
2.4 KiB
YAML
101 lines
2.4 KiB
YAML
when:
|
|
- event: [pull_request, tag, cron]
|
|
- event: push
|
|
branch:
|
|
- ${CI_REPO_DEFAULT_BRANCH}
|
|
- renovate/*
|
|
|
|
variables:
|
|
- &golang "golang:1.22"
|
|
- &build_plugin "woodpeckerci/plugin-docker-buildx:3.0.1"
|
|
- base_settings: &base_buildx_settings
|
|
platforms: "linux/amd64,linux/arm64"
|
|
dockerfile: Dockerfile.multiarch
|
|
auto_tag: true
|
|
repo: woodpeckerci/plugin-docker-buildx,codeberg.org/woodpecker-plugins/docker-buildx
|
|
- &login_setting
|
|
# Default DockerHub login
|
|
- registry: https://index.docker.io/v1/
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
# Additional Codeberg login
|
|
- registry: https://codeberg.org
|
|
username:
|
|
from_secret: cb_username
|
|
password:
|
|
from_secret: cb_password
|
|
|
|
steps:
|
|
vendor:
|
|
image: *golang
|
|
commands: go mod vendor
|
|
|
|
test:
|
|
image: *golang
|
|
depends_on: vendor
|
|
commands: go test -cover ./...
|
|
|
|
lint-editorconfig:
|
|
image: docker.io/mstruebing/editorconfig-checker:2.7.2
|
|
when:
|
|
event: pull_request
|
|
|
|
lint-format:
|
|
image: *golang
|
|
depends_on: vendor
|
|
commands: make formatcheck
|
|
when:
|
|
event: pull_request
|
|
|
|
publish-dryrun:
|
|
image: *build_plugin
|
|
depends_on: test
|
|
pull: true
|
|
settings:
|
|
<<: *base_buildx_settings
|
|
repo: test
|
|
dry-run: true
|
|
when:
|
|
evaluate: 'not (CI_COMMIT_PULL_REQUEST_LABELS contains "build_pr_images")'
|
|
event: pull_request
|
|
branch:
|
|
- ${CI_REPO_DEFAULT_BRANCH}
|
|
- renovate/*
|
|
|
|
publish:
|
|
image: *build_plugin
|
|
depends_on: test
|
|
settings:
|
|
<<: *base_buildx_settings
|
|
logins: *login_setting
|
|
when:
|
|
event: [push, tag, cron]
|
|
branch: ${CI_REPO_DEFAULT_BRANCH}
|
|
|
|
publish_pr_image:
|
|
image: *build_plugin
|
|
depends_on: test
|
|
settings:
|
|
<<: *base_buildx_settings
|
|
tag: pull_${CI_COMMIT_PULL_REQUEST}
|
|
logins: *login_setting
|
|
when:
|
|
evaluate: 'CI_COMMIT_PULL_REQUEST_LABELS contains "build_pr_images"'
|
|
event: pull_request
|
|
|
|
# TODO: replace by plugin-ready-release-go once it supports gitea
|
|
gitea-release:
|
|
image: "woodpeckerci/plugin-gitea-release:0.3.1"
|
|
depends_on: test
|
|
settings:
|
|
base_url: https://codeberg.org
|
|
title: ${CI_COMMIT_TAG}
|
|
api_key:
|
|
from_secret: gitea_token
|
|
target: main
|
|
when:
|
|
event: [tag]
|
|
branch: ${CI_REPO_DEFAULT_BRANCH}
|