woodpecker/.woodpecker/main.yml
6543 9c7691094a
Add multiarch support agent (#622)
- Makefile
  - Delete _with-docker
  - Fix version creation
  - Add default values for  TARGETOS & TARGETARCH
- Add multiarch Dockerfile for agent
- pipeline config
  - target more platforms for agent docker builds (windows & darwin)

close #181, close #187
2021-12-21 02:35:48 +01:00

223 lines
5.7 KiB
YAML

pipeline:
build-web:
image: node:16-alpine
commands:
- cd web/
- yarn install --frozen-lockfile
- yarn build
build-server:
group: build
image: golang:1.16
commands:
- make release-server
build-agent:
group: build
image: golang:1.16
commands:
- make release-agent
when:
event: tag
build-cli:
group: build
image: golang:1.16
commands:
- make release-cli
build-deb-rpm:
group: bundle
image: golang:1.16
commands:
- make bundle
when:
event: [push, tag]
branch: ${CI_REPO_DEFAULT_BRANCH}
publish-server:
image: plugins/docker
group: bundle
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server
# TODO: only release as next after 0.15.0 got released
tag: [next, latest]
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-server-alpine:
image: plugins/docker
group: bundle
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.alpine
# TODO: only release as next-alpine after 0.15.0 got released
tag: [next-alpine, latest-alpine]
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-agent-dryrun:
group: bundle
image: woodpeckerci/plugin-docker-buildx
settings:
dry_run: true
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: test
when:
event: pull_request
publish-agent:
group: bundle
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
# TODO: only release as next after 0.15.0 got released
tag: [next, latest]
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-agent-alpine:
group: bundle
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
# TODO: only release as next-alpine after 0.15.0 got released
tag: [next-alpine, latest-alpine]
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-cli:
group: docker
image: plugins/docker
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli
tag: next
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish-cli-alpine:
group: docker
image: plugins/docker
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.alpine
tag: next-alpine
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
release-server:
group: bundle
image: plugins/docker
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server
tag: [latest, "${CI_COMMIT_TAG}"]
when:
event: tag
release-server-alpine:
group: bundle
image: plugins/docker
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.alpine
tag: [latest-alpine, "${CI_COMMIT_TAG}-alpine"]
when:
event: tag
release-agent:
group: bundle
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: [latest, "${CI_COMMIT_TAG}"]
when:
event: tag
release-agent-alpine:
group: bundle
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: [latest-alpine, "${CI_COMMIT_TAG}-alpine"]
when:
event: tag
release-cli:
group: docker
image: plugins/docker
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli
tag: [latest, "${CI_COMMIT_TAG}"]
when:
event: tag
release-cli-alpine:
group: docker
image: plugins/docker
secrets: [ docker_username, docker_password ]
settings:
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli.alpine
tag: [latest-alpine, "${CI_COMMIT_TAG}-alpine"]
when:
event: tag
checksums:
image: golang:1.16
commands:
- make release-checksums
when:
event: tag
# TODO: upload build artifacts for pushes to ${CI_REPO_DEFAULT_BRANCH}
release:
image: plugins/github-release
secrets:
- source: github_token
target: github_release_api_key
settings:
files:
- dist/*.tar.gz
- dist/*.deb
- dist/*.rpm
- dist/checksums.txt
title: ${CI_COMMIT_TAG##v}
when:
event: tag
depends_on:
- test
- web