woodpecker/.woodpecker/docker.yml
6543 98e6396e3e
Publish preview container images of pulls (#1072)
* convert dryrun into preview

* nit: vendor first
2022-08-14 19:04:19 +02:00

326 lines
11 KiB
YAML

depends_on:
- test
- web
variables:
- &golang_image 'golang:1.18'
- &node_image 'node:16-alpine'
- &xgo_image 'techknowlogick/xgo:go-1.18.x'
- &xgo_version 'go-1.18.x'
pipeline:
vendor:
image: *golang_image
commands:
- go mod vendor
###############
# S e r v e r #
###############
build-web:
image: *node_image
commands:
- cd web/
- yarn install --frozen-lockfile
- yarn build
cross-compile-server:
image: *xgo_image
commands:
- apt update
- apt install -y tree
- make cross-compile-server
environment:
PLATFORMS: linux|arm/v7;linux|arm64/v8;linux|amd64;linux|ppc64le
TAGS: bindata sqlite sqlite_unlock_notify
XGO_VERSION: *xgo_version
publish-server-preview:
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
group: docker
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
tag: pull_${CI_COMMIT_PULL_REQUEST}
when:
event: pull_request
publish-server-alpine-preview:
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
group: docker
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.alpine.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
tag: pull_${CI_COMMIT_PULL_REQUEST}-alpine
when:
event: pull_request
publish-next-server:
image: woodpeckerci/plugin-docker-buildx
group: docker
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
tag: next
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-next-server-alpine:
image: woodpeckerci/plugin-docker-buildx
group: docker
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.alpine.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
tag: next-alpine
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-release-branch-server:
image: woodpeckerci/plugin-docker-buildx
group: docker
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
tag: ${CI_COMMIT_BRANCH##release/}
when:
branch: release/*
event: push
publish-release-branch-server-alpine:
image: woodpeckerci/plugin-docker-buildx
group: docker
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.alpine.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
tag: ${CI_COMMIT_BRANCH##release/}
when:
branch: release/*
event: push
release-server:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
# remove 'latest' on older version branches to avoid accidental downgrade
tag: [latest, "${CI_COMMIT_TAG}"]
when:
event: tag
release-server-alpine:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.alpine.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
# remove 'latest-alpine' on older version branches to avoid accidental downgrade
tag: [latest-alpine, "${CI_COMMIT_TAG}-alpine"]
when:
event: tag
#############
# A g e n t #
#############
publish-agent-preview:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,windows/amd64,darwin/amd64,darwin/arm64
tag: pull_${CI_COMMIT_PULL_REQUEST}
when:
event: pull_request
publish-next-agent:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,windows/amd64,darwin/amd64,darwin/arm64,freebsd/arm64,freebsd/amd64,openbsd/arm64,openbsd/amd64
tag: next
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-next-agent-alpine:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.alpine.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
tag: next-alpine
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-release-branch-agent:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,windows/amd64,darwin/amd64,darwin/arm64,freebsd/arm64,freebsd/amd64,openbsd/arm64,openbsd/amd64
tag: ${CI_COMMIT_BRANCH##release/}
when:
branch: release/*
event: push
publish-release-branch-agent-alpine:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.alpine.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
tag: ${CI_COMMIT_BRANCH##release/}
when:
branch: release/*
event: push
release-agent:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,windows/amd64,darwin/amd64,darwin/arm64,freebsd/arm64,freebsd/amd64,openbsd/arm64,openbsd/amd64
# remove 'latest' on older version branches to avoid accidental downgrade
tag: [latest, "${CI_COMMIT_TAG}"]
when:
event: tag
release-agent-alpine:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.alpine.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
# remove 'latest-alpine' on older version branches to avoid accidental downgrade
tag: [latest-alpine, "${CI_COMMIT_TAG}-alpine"]
when:
event: tag
#########
# C L I #
#########
publish-cli-preview:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,windows/amd64,darwin/amd64,darwin/arm64
tag: pull_${CI_COMMIT_PULL_REQUEST}
when:
event: pull_request
publish-next-cli:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,windows/amd64,darwin/amd64,darwin/arm64,freebsd/arm64,freebsd/amd64,openbsd/arm64,openbsd/amd64
tag: next
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-next-cli-alpine:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.alpine.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
tag: next-alpine
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-release-branch-cli:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,windows/amd64,darwin/amd64,darwin/arm64,freebsd/arm64,freebsd/amd64,openbsd/arm64,openbsd/amd64
tag: ${CI_COMMIT_BRANCH##release/}
when:
branch: release/*
event: push
publish-release-branch-cli-alpine:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.alpine.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
tag: ${CI_COMMIT_BRANCH##release/}
when:
branch: release/*
event: push
release-cli:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,windows/amd64,darwin/amd64,darwin/arm64,freebsd/arm64,freebsd/amd64,openbsd/arm64,openbsd/amd64
# remove 'latest' on older version branches to avoid accidental downgrade
tag: [latest, "${CI_COMMIT_TAG}"]
when:
event: tag
release-cli-alpine:
group: docker
image: woodpeckerci/plugin-docker-buildx
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.alpine.multiarch
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le
# remove 'latest-alpine' on older version branches to avoid accidental downgrade
tag: [latest-alpine, "${CI_COMMIT_TAG}-alpine"]
when:
event: tag