woodpecker/.drone.yml
2019-11-12 14:53:50 +01:00

168 lines
3.9 KiB
YAML

clone:
git:
image: plugins/git:next
pipeline:
test:
image: golang:1.12.4
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.12.4
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.12.4
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.12.4
commands:
- go get github.com/laszlocph/togo
- (cd web/; go generate ./...)
- sh .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
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
publish-agent-arm:
image: plugins/docker
repo: laszlocloud/woodpecker-agent
dockerfile: Dockerfile.agent.linux.arm
secrets: [ docker_username, docker_password ]
tag: [ linux-arm ]
when:
branch: master
event: push
publish-agent-arm64:
image: plugins/docker
repo: laszlocloud/woodpecker-agent
dockerfile: Dockerfile.agent.linux.arm64
secrets: [ docker_username, docker_password ]
tag: [ linux-arm64 ]
when:
branch: master
event: push
publish-agent-amd64:
image: plugins/docker
repo: laszlocloud/woodpecker-agent
dockerfile: Dockerfile.agent
secrets: [ docker_username, docker_password ]
tag: [ latest ]
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
services:
postgres:
image: postgres:9.6
ports: ["5432"]
environment:
- POSTGRES_USER=postgres
mysql:
image: mysql:5.6.27
ports: ["3306"]
environment:
- MYSQL_DATABASE=test
- MYSQL_ALLOW_EMPTY_PASSWORD=yes