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 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: group: bundle image: plugins/docker secrets: [docker_username, docker_password] settings: repo: woodpeckerci/woodpecker-agent dockerfile: docker/Dockerfile.agent # 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: plugins/docker secrets: [ docker_username, docker_password ] settings: repo: woodpeckerci/woodpecker-agent dockerfile: docker/Dockerfile.agent.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-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: plugins/docker secrets: [docker_username, docker_password] settings: repo: woodpeckerci/woodpecker-agent dockerfile: docker/Dockerfile.agent tag: [latest, "${CI_COMMIT_TAG}"] when: event: tag release-agent-alpine: group: bundle image: plugins/docker secrets: [ docker_username, docker_password ] settings: repo: woodpeckerci/woodpecker-agent dockerfile: docker/Dockerfile.agent.alpine 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