woodpecker/.woodpecker/main.yml

228 lines
5.4 KiB
YAML
Raw Normal View History

2019-06-14 08:13:13 +00:00
clone:
git:
image: plugins/git:next
2016-05-06 18:24:08 +00:00
pipeline:
2016-10-23 21:00:55 +00:00
test:
2021-02-19 08:26:11 +00:00
image: golang:1.16
2019-11-12 13:31:51 +00:00
group: test
2016-04-20 01:37:53 +00:00
commands:
2021-02-19 08:57:34 +00:00
- make test
- make vet
- make formatcheck
2016-05-26 18:08:48 +00:00
2019-11-12 13:31:51 +00:00
test-frontend:
image: node:10.17.0-stretch
group: test
commands:
- (cd web/; yarn install)
- (cd web/; yarn run lesshint)
- (cd web/; yarn run lint --quiet)
- make test-frontend
test-postgres:
2021-02-19 08:26:11 +00:00
image: golang:1.16
2019-11-12 13:31:51 +00:00
group: db-test
2017-05-13 08:03:38 +00:00
environment:
- WOODPECKER_DATABASE_DRIVER=postgres
- WOODPECKER_DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable
2017-05-13 08:03:38 +00:00
commands:
- go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/datastore
2017-05-13 08:03:38 +00:00
2019-11-12 13:31:51 +00:00
test-mysql:
2021-02-19 08:26:11 +00:00
image: golang:1.16
2019-11-12 13:31:51 +00:00
group: db-test
2017-05-13 08:03:38 +00:00
environment:
- WOODPECKER_DATABASE_DRIVER=mysql
- WOODPECKER_DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true
2017-05-13 08:03:38 +00:00
commands:
- go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/datastore
2017-05-13 08:03:38 +00:00
2019-11-12 13:31:51 +00:00
build-frontend:
2019-11-12 13:27:39 +00:00
image: node:10.17.0-stretch
commands:
- make release-frontend
2019-11-12 13:27:39 +00:00
build-server:
group: build
2021-02-19 08:26:11 +00:00
image: golang:1.16
2019-11-12 13:31:51 +00:00
commands:
- make release-server
build-agent:
group: build
image: golang:1.16
commands:
- make release-agent
2015-10-01 05:16:42 +00:00
2021-02-19 08:26:11 +00:00
build-cli:
group: build
2021-02-19 08:26:11 +00:00
image: golang:1.16
commands:
- make release-cli
2021-02-19 08:26:11 +00:00
2019-11-12 13:31:51 +00:00
publish-server:
group: docker
2017-05-08 00:01:04 +00:00
image: plugins/docker
2021-05-25 12:15:22 +00:00
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: master
event: push
publish-server-alpine:
group: docker
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]
2019-04-04 19:18:28 +00:00
when:
branch: master
event: push
2019-11-12 13:31:51 +00:00
publish-agent:
group: docker
2019-04-04 19:18:28 +00:00
image: plugins/docker
2021-05-25 12:15:22 +00:00
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]
2016-05-04 07:06:05 +00:00
when:
2016-10-23 21:00:55 +00:00
branch: master
2016-05-04 07:06:05 +00:00
event: push
publish-agent-alpine:
group: docker
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: master
event: push
2017-09-29 18:21:06 +00:00
publish-cli:
group: docker
image: plugins/docker
repo: woodpeckerci/woodpecker-cli
dockerfile: docker/Dockerfile.cli
secrets: [docker_username, docker_password]
tag: [next]
when:
branch: master
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: master
event: push
2019-11-12 13:31:51 +00:00
release-server:
group: docker
2017-05-12 10:30:19 +00:00
image: plugins/docker
2021-05-25 12:15:22 +00:00
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server
secrets: [docker_username, docker_password]
tag: [latest, "${DRONE_TAG}"]
when:
event: tag
release-server-alpine:
group: docker
image: plugins/docker
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server.alpine
secrets: [ docker_username, docker_password ]
tag: [latest-alpine, "${DRONE_TAG}-alpine"]
2017-05-12 10:30:19 +00:00
when:
event: tag
2019-11-12 13:31:51 +00:00
release-agent:
group: docker
2017-06-29 22:51:22 +00:00
image: plugins/docker
2021-05-25 12:15:22 +00:00
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent
secrets: [docker_username, docker_password]
tag: [latest, "${DRONE_TAG}"]
when:
event: tag
release-agent-alpine:
group: docker
image: plugins/docker
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.alpine
secrets: [ docker_username, docker_password ]
tag: [latest-alpine, "${DRONE_TAG}-alpine"]
2017-06-29 22:51:22 +00:00
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, "${DRONE_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, "${DRONE_TAG}-alpine"]
when:
event: tag
checksums:
image: golang:1.16
commands:
- make release-checksums
when:
event: tag
# TODO: upload build artifacts for pushes to master
release:
2021-02-19 08:26:11 +00:00
image: plugins/github-release
files:
- dist/*.tar.gz
- dist/checksums.txt
title: ${DRONE_TAG##v}
2021-02-19 08:26:11 +00:00
secrets:
- source: github_token
target: github_release_api_key
when:
event: tag
2016-05-04 07:06:05 +00:00
services:
postgres:
2017-05-13 09:13:25 +00:00
image: postgres:9.6
2019-05-30 09:15:54 +00:00
ports: ["5432"]
environment:
- POSTGRES_USER=postgres
- POSTGRES_HOST_AUTH_METHOD=trust
mysql:
image: mysql:5.6.27
2019-05-30 09:15:54 +00:00
ports: ["3306"]
environment:
- MYSQL_DATABASE=test
- MYSQL_ALLOW_EMPTY_PASSWORD=yes