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: group: bundle image: plugins/docker repo: woodpeckerci/woodpecker-server dockerfile: docker/Dockerfile.server secrets: [docker_username, docker_password] # 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: group: bundle image: plugins/docker repo: woodpeckerci/woodpecker-server dockerfile: docker/Dockerfile.server.alpine secrets: [ docker_username, docker_password ] # 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 repo: woodpeckerci/woodpecker-agent dockerfile: docker/Dockerfile.agent secrets: [docker_username, docker_password] # 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 repo: woodpeckerci/woodpecker-agent dockerfile: docker/Dockerfile.agent.alpine secrets: [ docker_username, docker_password ] # 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 repo: woodpeckerci/woodpecker-cli dockerfile: docker/Dockerfile.cli secrets: [docker_username, docker_password] tag: [next] when: branch: ${CI_REPO_DEFAULT_BRANCH} event: push publish-cli-alpine: group: docker image: plugins/docker repo: woodpeckerci/woodpecker-cli dockerfile: docker/Dockerfile.cli.alpine secrets: [ docker_username, docker_password ] tag: [next-alpine] when: branch: ${CI_REPO_DEFAULT_BRANCH} event: push release-server: group: bundle image: plugins/docker repo: woodpeckerci/woodpecker-server dockerfile: docker/Dockerfile.server secrets: [docker_username, docker_password] tag: [latest, "${CI_COMMIT_TAG}"] when: event: tag release-server-alpine: group: bundle image: plugins/docker repo: woodpeckerci/woodpecker-server dockerfile: docker/Dockerfile.server.alpine secrets: [ docker_username, docker_password ] tag: [latest-alpine, "${CI_COMMIT_TAG}-alpine"] when: event: tag release-agent: group: bundle image: plugins/docker repo: woodpeckerci/woodpecker-agent dockerfile: docker/Dockerfile.agent secrets: [docker_username, docker_password] tag: [latest, "${CI_COMMIT_TAG}"] when: event: tag release-agent-alpine: group: bundle image: plugins/docker repo: woodpeckerci/woodpecker-agent dockerfile: docker/Dockerfile.agent.alpine secrets: [ docker_username, docker_password ] tag: [latest-alpine, "${CI_COMMIT_TAG}-alpine"] when: event: tag release-cli: group: docker image: plugins/docker repo: woodpeckerci/woodpecker-cli dockerfile: docker/Dockerfile.cli secrets: [docker_username, docker_password] tag: [latest, "${CI_COMMIT_TAG}"] when: event: tag release-cli-alpine: group: docker image: plugins/docker repo: woodpeckerci/woodpecker-cli dockerfile: docker/Dockerfile.cli.alpine secrets: [ docker_username, docker_password ] 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 files: - dist/*.tar.gz - dist/*.deb - dist/*.rpm - dist/checksums.txt title: ${CI_COMMIT_TAG##v} secrets: - source: github_token target: github_release_api_key when: event: tag depends_on: - test - web