woodpecker/.woodpecker/docker.yaml

425 lines
12 KiB
YAML
Raw Normal View History

variables:
- &golang_image 'docker.io/golang:1.22.1'
- &node_image 'docker.io/node:21-alpine'
- &xgo_image 'docker.io/techknowlogick/xgo:go-1.22.1'
- &xgo_version 'go-1.21.2'
chore(deps): update docker.io/woodpeckerci/plugin-docker-buildx docker tag to v3.1.0 (#3394) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [docker.io/woodpeckerci/plugin-docker-buildx](https://codeberg.org/woodpecker-plugins/docker-buildx) ([source](https://codeberg.org/woodpecker-plugins/docker-buildx.git)) | minor | `3.0.1` -> `3.1.0` | --- ### Release Notes <details> <summary>woodpecker-plugins/docker-buildx (docker.io/woodpeckerci/plugin-docker-buildx)</summary> ### [`v3.1.0`](https://codeberg.org/woodpecker-plugins/docker-buildx/releases/tag/v3.1.0) [Compare Source](https://codeberg.org/woodpecker-plugins/docker-buildx/compare/v3.0.1...v3.1.0) ##### Features - Improve support for `cache_to` and `cache_from` & add `cache_images` ([#&#8203;129](https://togithub.com/woodpecker-plugins/docker-buildx/issues/129)) ##### Dependencies - chore(deps): update docker docker tag to v25.0.2 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "every weekend" (UTC), Automerge - "before 4am" (UTC). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/woodpecker-ci/woodpecker). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-16 06:18:03 +00:00
- &buildx_plugin 'docker.io/woodpeckerci/plugin-docker-buildx:3.1.0'
- &platforms_release 'linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/386,linux/amd64,linux/ppc64le,linux/riscv64,linux/s390x,freebsd/arm64,freebsd/amd64,openbsd/arm64,openbsd/amd64'
- &platforms_server 'linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,linux/riscv64'
- &platforms_preview 'linux/amd64'
- &platforms_alpine 'linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le'
- &build_args 'CI_COMMIT_SHA=${CI_COMMIT_SHA},CI_COMMIT_BRANCH=${CI_COMMIT_BRANCH},CI_COMMIT_TAG=${CI_COMMIT_TAG}'
# vars used on push / tag events only
2023-10-24 12:42:05 +00:00
- publish_logins: &publish_logins # Default DockerHub login
- registry: https://index.docker.io/v1/
username: woodpeckerbot
password:
from_secret: docker_password
# Additional Quay.IO login
- registry: https://quay.io
username: 'woodpeckerci+wp_ci'
password:
from_secret: QUAY_IO_TOKEN
- &publish_repos_server 'woodpeckerci/woodpecker-server,quay.io/woodpeckerci/woodpecker-server'
- &publish_repos_agent 'woodpeckerci/woodpecker-agent,quay.io/woodpeckerci/woodpecker-agent'
- &publish_repos_cli 'woodpeckerci/woodpecker-cli,quay.io/woodpeckerci/woodpecker-cli'
2023-10-24 12:42:05 +00:00
- path: &when_path # web source code
- 'web/**'
# api source code
2023-10-24 12:42:05 +00:00
- 'server/api/**'
# go source code
2023-10-24 12:42:05 +00:00
- '**/*.go'
- 'go.*'
# schema changes
2023-10-24 12:42:05 +00:00
- 'pipeline/schema/**'
# Dockerfile changes
2023-10-24 12:42:05 +00:00
- 'docker/**'
# pipeline config changes
2024-01-12 09:53:34 +00:00
- '.woodpecker/docker.yaml'
when:
- event: [pull_request, tag]
- event: push
branch:
- renovate/*
- event: push
branch: ${CI_REPO_DEFAULT_BRANCH}
path: *when_path
steps:
vendor:
image: *golang_image
pull: true
commands:
- go mod vendor
when:
- event: pull_request
evaluate: 'CI_COMMIT_PULL_REQUEST_LABELS contains "build_pr_images"'
- event: pull_request
path: *when_path
- branch:
- ${CI_REPO_DEFAULT_BRANCH}
- renovate/*
event: [push, tag]
path: *when_path
###############
# S e r v e r #
###############
build-web:
image: *node_image
directory: web/
commands:
- corepack enable
- pnpm install --frozen-lockfile
- pnpm build
when:
- event: pull_request
evaluate: 'CI_COMMIT_PULL_REQUEST_LABELS contains "build_pr_images"'
- event: pull_request
path: *when_path
- branch:
- ${CI_REPO_DEFAULT_BRANCH}
- renovate/*
event: [push, tag]
path: *when_path
cross-compile-server-preview:
depends_on:
- vendor
- build-web
image: *xgo_image
pull: true
commands:
- apt update
- apt install -y tree
- make cross-compile-server
environment:
PLATFORMS: linux|amd64
TAGS: bindata sqlite sqlite_unlock_notify netgo
XGO_VERSION: *xgo_version
when:
- event: pull_request
evaluate: 'CI_COMMIT_PULL_REQUEST_LABELS contains "build_pr_images"'
- event: pull_request
path: *when_path
- event: push
path: *when_path
branch: renovate/*
cross-compile-server:
depends_on:
- vendor
- build-web
image: *xgo_image
pull: true
commands:
- apt update
- apt install -y tree
- make cross-compile-server
environment:
PLATFORMS: linux|arm/v7;linux|arm64/v8;linux|amd64;linux|ppc64le;linux|riscv64
TAGS: bindata sqlite sqlite_unlock_notify netgo
XGO_VERSION: *xgo_version
when:
branch:
- ${CI_REPO_DEFAULT_BRANCH}
event: [push, tag]
path: *when_path
publish-server-preview:
depends_on:
- cross-compile-server-preview
image: *buildx_plugin
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.multiarch
platforms: *platforms_preview
tag: pull_${CI_COMMIT_PULL_REQUEST}
2023-10-31 20:07:29 +00:00
logins: *publish_logins
when: &when-preview
evaluate: 'CI_COMMIT_PULL_REQUEST_LABELS contains "build_pr_images"'
event: pull_request
publish-server-alpine-preview:
depends_on:
- cross-compile-server-preview
image: *buildx_plugin
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.alpine.multiarch
platforms: *platforms_preview
tag: pull_${CI_COMMIT_PULL_REQUEST}-alpine
2023-10-31 20:07:29 +00:00
logins: *publish_logins
when: *when-preview
build-server-dryrun:
depends_on:
- vendor
- build-web
- cross-compile-server-preview
image: *buildx_plugin
settings:
dry_run: true
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.multiarch
platforms: *platforms_preview
tag: pull_${CI_COMMIT_PULL_REQUEST}
when: &when-dryrun
- evaluate: 'not (CI_COMMIT_PULL_REQUEST_LABELS contains "build_pr_images")'
event: pull_request
path: *when_path
- event: push
path: *when_path
branch: renovate/*
publish-next-server:
depends_on:
- cross-compile-server
image: *buildx_plugin
settings:
repo: *publish_repos_server
dockerfile: docker/Dockerfile.server.multiarch
platforms: *platforms_server
2023-10-24 12:42:05 +00:00
tag: [next, 'next-${CI_COMMIT_SHA:0:10}']
logins: *publish_logins
when: &when-publish-next
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
path: *when_path
publish-next-server-alpine:
depends_on:
- cross-compile-server
image: *buildx_plugin
settings:
repo: *publish_repos_server
dockerfile: docker/Dockerfile.server.alpine.multiarch
platforms: *platforms_alpine
2023-10-24 12:42:05 +00:00
tag: [next-alpine, 'next-${CI_COMMIT_SHA:0:10}-alpine']
logins: *publish_logins
when: *when-publish-next
release-server:
depends_on:
- cross-compile-server
image: *buildx_plugin
settings:
repo: *publish_repos_server
dockerfile: docker/Dockerfile.server.multiarch
platforms: *platforms_server
# remove 'latest' on older version branches to avoid accidental downgrade
2023-10-24 12:42:05 +00:00
tag: [latest, '${CI_COMMIT_TAG}']
logins: *publish_logins
when: &when-release
event: tag
release-server-alpine:
depends_on:
- cross-compile-server
image: *buildx_plugin
settings:
repo: *publish_repos_server
dockerfile: docker/Dockerfile.server.alpine.multiarch
platforms: *platforms_alpine
# remove 'latest-alpine' on older version branches to avoid accidental downgrade
2023-10-24 12:42:05 +00:00
tag: [latest-alpine, '${CI_COMMIT_TAG}-alpine']
logins: *publish_logins
when: *when-release
#############
# A g e n t #
#############
publish-agent-preview:
depends_on:
- vendor
image: *buildx_plugin
settings:
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.multiarch
platforms: *platforms_preview
tag: pull_${CI_COMMIT_PULL_REQUEST}
build_args: *build_args
2023-10-31 20:07:29 +00:00
logins: *publish_logins
when: *when-preview
build-agent-dryrun:
depends_on:
- vendor
image: *buildx_plugin
settings:
dry_run: true
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.multiarch
platforms: *platforms_preview
tag: pull_${CI_COMMIT_PULL_REQUEST}
build_args: *build_args
when: *when-dryrun
publish-next-agent:
depends_on:
- vendor
# we also depend on cross-compile-server as we would have to hight
# ram usage otherwise
- cross-compile-server
image: *buildx_plugin
settings:
repo: *publish_repos_agent
dockerfile: docker/Dockerfile.agent.multiarch
platforms: *platforms_release
2023-10-24 12:42:05 +00:00
tag: [next, 'next-${CI_COMMIT_SHA:0:10}']
logins: *publish_logins
build_args: *build_args
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
path: *when_path
publish-next-agent-alpine:
depends_on:
- vendor
# we also depend on cross-compile-server as we would have to hight
# ram usage otherwise
- cross-compile-server
image: *buildx_plugin
settings:
repo: *publish_repos_agent
dockerfile: docker/Dockerfile.agent.alpine.multiarch
platforms: *platforms_alpine
2023-10-24 12:42:05 +00:00
tag: [next-alpine, 'next-${CI_COMMIT_SHA:0:10}-alpine']
logins: *publish_logins
build_args: *build_args
when: *when-publish-next
release-agent:
depends_on:
- vendor
# we also depend on cross-compile-server as we would have to hight
# ram usage otherwise
- cross-compile-server
image: *buildx_plugin
settings:
repo: *publish_repos_agent
dockerfile: docker/Dockerfile.agent.multiarch
platforms: *platforms_release
# remove 'latest' on older version branches to avoid accidental downgrade
2023-10-24 12:42:05 +00:00
tag: [latest, '${CI_COMMIT_TAG}']
logins: *publish_logins
build_args: *build_args
when: *when-release
release-agent-alpine:
depends_on:
- vendor
# we also depend on cross-compile-server as we would have to hight
# ram usage otherwise
- cross-compile-server
image: *buildx_plugin
settings:
repo: *publish_repos_agent
dockerfile: docker/Dockerfile.agent.alpine.multiarch
platforms: *platforms_alpine
# remove 'latest-alpine' on older version branches to avoid accidental downgrade
2023-10-24 12:42:05 +00:00
tag: [latest-alpine, '${CI_COMMIT_TAG}-alpine']
logins: *publish_logins
build_args: *build_args
when: *when-release
#########
# C L I #
#########
publish-cli-preview:
depends_on:
- vendor
image: *buildx_plugin
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.multiarch
platforms: *platforms_preview
tag: pull_${CI_COMMIT_PULL_REQUEST}
build_args: *build_args
2023-10-31 20:07:29 +00:00
logins: *publish_logins
when: *when-preview
build-cli-dryrun:
depends_on:
- vendor
image: *buildx_plugin
settings:
dry_run: true
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.multiarch
platforms: *platforms_preview
tag: pull_${CI_COMMIT_PULL_REQUEST}
build_args: *build_args
when: *when-dryrun
publish-next-cli:
depends_on:
- vendor
# we also depend on publish-next-agent as we would have to hight
# ram usage otherwise
- publish-next-agent
image: *buildx_plugin
settings:
repo: *publish_repos_cli
dockerfile: docker/Dockerfile.cli.multiarch
platforms: *platforms_release
2023-10-24 12:42:05 +00:00
tag: [next, 'next-${CI_COMMIT_SHA:0:10}']
logins: *publish_logins
build_args: *build_args
when: *when-publish-next
publish-next-cli-alpine:
depends_on:
- vendor
# we also depend on publish-next-agent as we would have to hight
# ram usage otherwise
- publish-next-agent
image: *buildx_plugin
settings:
repo: *publish_repos_cli
dockerfile: docker/Dockerfile.cli.alpine.multiarch
platforms: *platforms_alpine
2023-10-24 12:42:05 +00:00
tag: [next-alpine, 'next-${CI_COMMIT_SHA:0:10}-alpine']
logins: *publish_logins
build_args: *build_args
when: *when-publish-next
release-cli:
depends_on:
- vendor
# we also depend on release-agent as we would have to hight
# ram usage otherwise
- release-agent
image: *buildx_plugin
settings:
repo: *publish_repos_cli
dockerfile: docker/Dockerfile.cli.multiarch
platforms: *platforms_release
# remove 'latest' on older version branches to avoid accidental downgrade
2023-10-24 12:42:05 +00:00
tag: [latest, '${CI_COMMIT_TAG}']
logins: *publish_logins
build_args: *build_args
when: *when-release
release-cli-alpine:
depends_on:
- vendor
# we also depend on release-agent as we would have to hight
# ram usage otherwise
- release-agent
image: *buildx_plugin
settings:
repo: *publish_repos_cli
dockerfile: docker/Dockerfile.cli.alpine.multiarch
platforms: *platforms_alpine
# remove 'latest-alpine' on older version branches to avoid accidental downgrade
2023-10-24 12:42:05 +00:00
tag: [latest-alpine, '${CI_COMMIT_TAG}-alpine']
logins: *publish_logins
build_args: *build_args
when: *when-release