woodpecker/.woodpecker/main.yml

285 lines
6.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:
web-deps:
image: node:16-alpine
commands:
- cd web/
- yarn install --frozen-lockfile
when:
path: "web/**"
# TODO: enable if we have enouth mem (~2g) to lint, cause an oom atm.
# For reviewers, please run localy to verify it passes
# web-lint:
# TODO: disabled group for now to prevent oom
# group: web-test
# image: node:16-alpine
# commands:
# - cd web/
# - yarn lint
# when:
# path: "web/**"
web-formatcheck:
group: web-test
image: node:16-alpine
commands:
- cd web/
- yarn formatcheck
when:
path: "web/**"
web-typecheck:
group: web-test
image: node:16-alpine
commands:
- cd web/
- yarn typecheck
when:
path: "web/**"
web-test:
group: web-test
image: node:16-alpine
commands:
- cd web/
- yarn test
when:
path: "web/**"
web-build:
image: node:16-alpine
commands:
- cd web/
- yarn build
when:
path: "web/**"
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 lint
2016-05-26 18:08:48 +00:00
2019-11-12 13:31:51 +00:00
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:
image: node:16-alpine
2019-11-12 13:27:39 +00:00
commands:
- apk add make
- 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
2021-10-20 19:55:09 +00:00
build-deb-rpm:
group: bundle
image: golang:1.16
commands:
- make bundle
when:
event: [push, tag]
branch: master
2019-11-12 13:31:51 +00:00
publish-server:
2021-10-20 19:55:09 +00:00
group: bundle
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:
2021-10-20 19:55:09 +00:00
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]
2019-04-04 19:18:28 +00:00
when:
branch: master
event: push
2019-11-12 13:31:51 +00:00
publish-agent:
2021-10-20 19:55:09 +00:00
group: bundle
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:
2021-10-20 19:55:09 +00:00
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: 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:
2021-10-20 19:55:09 +00:00
group: bundle
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, "${CI_COMMIT_TAG}"]
when:
event: tag
release-server-alpine:
2021-10-20 19:55:09 +00:00
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"]
2017-05-12 10:30:19 +00:00
when:
event: tag
2019-11-12 13:31:51 +00:00
release-agent:
2021-10-20 19:55:09 +00:00
group: bundle
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, "${CI_COMMIT_TAG}"]
when:
event: tag
release-agent-alpine:
2021-10-20 19:55:09 +00:00
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"]
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, "${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 master
release:
2021-02-19 08:26:11 +00:00
image: plugins/github-release
files:
- dist/*.tar.gz
2021-10-20 19:55:09 +00:00
- dist/*.deb
- dist/*.rpm
- dist/checksums.txt
title: ${CI_COMMIT_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