woodpecker/.drone.yml
2021-02-19 09:28:39 +01:00

154 lines
3.6 KiB
YAML

clone:
git:
image: plugins/git:next
pipeline:
test:
image: golang:1.16
group: test
commands:
- go test -cover -timeout 30s $(go list ./...)
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:
image: golang:1.16
group: db-test
environment:
- DATABASE_DRIVER=postgres
- DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable
commands:
- go test -timeout 30s github.com/laszlocph/woodpecker/store/datastore
test-mysql:
image: golang:1.16
group: db-test
environment:
- DATABASE_DRIVER=mysql
- DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true
commands:
- go test -timeout 30s github.com/laszlocph/woodpecker/store/datastore
build-frontend:
image: node:10.17.0-stretch
commands:
- make build-frontend
build:
image: golang:1.16
commands:
- go get github.com/laszlocph/togo
- (cd web/; go generate ./...)
- ./.drone.sh
when:
event: [ push, tag ]
# publish-server-alpine:
# image: plugins/docker
# repo: laszlocloud/woodpecker-server
# dockerfile: Dockerfile.alpine
# secrets: [ docker_username, docker_password ]
# tag: [ alpine ]
# when:
# branch: master
# event: push
build-cli:
image: golang:1.16
commands: sh .cli.sh
publish-server:
image: plugins/docker
repo: laszlocloud/woodpecker-server
secrets: [ docker_username, docker_password ]
tag: [ latest ]
when:
branch: master
event: push
publish-agent:
image: plugins/docker
repo: laszlocloud/woodpecker-agent
dockerfile: Dockerfile.agent
secrets: [ docker_username, docker_password ]
tag: [ latest ]
when:
branch: master
event: push
# publish-agent-alpine:
# image: plugins/docker
# repo: laszlocloud/woodpecker-agent
# dockerfile: Dockerfile.agent.alpine
# secrets: [ docker_username, docker_password ]
# tag: [ alpine ]
# when:
# branch: master
# event: push
# release-server-alpine:
# image: plugins/docker
# repo: laszlocloud/woodpecker-server
# dockerfile: Dockerfile.alpine
# secrets: [ docker_username, docker_password ]
# tag: "${DRONE_TAG}-alpine"
# when:
# event: tag
#
# release-agent-alpine:
# image: plugins/docker
# repo: laszlocloud/woodpecker-agent
# dockerfile: Dockerfile.agent.alpine
# secrets: [ docker_username, docker_password ]
# tag: "${DRONE_TAG}-alpine"
# when:
# event: tag
release-server:
image: plugins/docker
repo: laszlocloud/woodpecker-server
secrets: [ docker_username, docker_password ]
tag: ${DRONE_TAG}
when:
event: tag
release-agent:
image: plugins/docker
repo: laszlocloud/woodpecker-agent
dockerfile: Dockerfile.agent
secrets: [ docker_username, docker_password ]
tag: ${DRONE_TAG}
when:
event: tag
release-cli:
image: plugins/github-release
files:
- release/drone_*.tar.gz
- release/drone_checksums.txt
secrets:
- source: github_token
target: github_release_api_key
when:
event: tag
services:
postgres:
image: postgres:9.6
ports: ["5432"]
environment:
- POSTGRES_USER=postgres
- POSTGRES_HOST_AUTH_METHOD=trust
mysql:
image: mysql:5.6.27
ports: ["3306"]
environment:
- MYSQL_DATABASE=test
- MYSQL_ALLOW_EMPTY_PASSWORD=yes