woodpecker/.woodpecker/test.yml
qwerty287 12db130b0b
Fix when and depends_on (#3063)
also close #3060 because it's no longer necessary then

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-12-29 14:02:29 +02:00

165 lines
3.5 KiB
YAML

when:
- event: [pull_request, tag]
- event: push
branch:
- ${CI_REPO_DEFAULT_BRANCH}
- release/*
- renovate/*
variables:
- &golang_image 'docker.io/golang:1.21.5'
- &when
- path: &when_path # related config files
- '.woodpecker/test.yml'
- '.golangci.yml'
# go source code
- '**/*.go'
- 'go.*'
# schema changes
- 'pipeline/schema/**'
event: [pull_request, tag]
steps:
vendor:
image: *golang_image
commands:
- go mod vendor
when:
- path:
- <<: *when_path
- '.woodpecker/**'
lint-pipeline:
depends_on:
- vendor
image: *golang_image
commands:
- go run go.woodpecker-ci.org/woodpecker/v2/cmd/cli lint
when:
- <<: *when
- path:
- '.woodpecker/**'
- 'pipeline/schema/**'
dummy-web:
image: *golang_image
commands:
- mkdir -p web/dist/
- echo "test" > web/dist/index.html
when:
- path: *when_path
lint:
depends_on:
- vendor
image: *golang_image
commands:
- make lint
when: *when
check_swagger:
depends_on:
- vendor
image: *golang_image
commands:
- 'make generate-swagger'
- 'DIFF=$(git diff | head)'
- '[ -n "$DIFF" ] && { echo "swagger not up to date, exec `make generate-swagger` and commit"; exit 1; } || true'
when: *when
lint-editorconfig:
image: docker.io/mstruebing/editorconfig-checker:2.7.2
when:
- event: [pull_request, tag]
lint-license-header:
image: *golang_image
commands:
- go install github.com/google/addlicense@latest
- 'addlicense -check -ignore "vendor/**" **/*.go'
when: *when
prettier:
image: docker.io/woodpeckerci/plugin-prettier:next
when: *when
test:
depends_on:
- vendor
image: *golang_image
commands:
- make test-agent
- make test-server
- make test-cli
- make test-lib
when:
- path: *when_path
sqlite:
depends_on:
- vendor
image: *golang_image
environment:
- WOODPECKER_DATABASE_DRIVER=sqlite3
commands:
- make test-server-datastore-coverage
when:
- path: *when_path
postgres:
depends_on:
- vendor
image: *golang_image
environment:
- WOODPECKER_DATABASE_DRIVER=postgres
- WOODPECKER_DATABASE_DATASOURCE=host=service-postgres user=postgres dbname=postgres sslmode=disable
commands:
- make test-server-datastore
when: *when
mysql:
depends_on:
- vendor
image: *golang_image
environment:
- WOODPECKER_DATABASE_DRIVER=mysql
- WOODPECKER_DATABASE_DATASOURCE=root@tcp(service-mysql:3306)/test?parseTime=true
commands:
- make test-server-datastore
when: *when
codecov:
depends_on:
- test
- sqlite
pull: true
image: docker.io/woodpeckerci/plugin-codecov:2.1.2
settings:
files:
- agent-coverage.out
- cli-coverage.out
- coverage.out
- server-coverage.out
- datastore-coverage.out
token:
from_secret: codecov_token
when:
- path: *when_path
failure: ignore
services:
service-postgres:
image: docker.io/postgres:16
ports: ['5432']
environment:
- POSTGRES_USER=postgres
- POSTGRES_HOST_AUTH_METHOD=trust
when: *when
service-mysql:
image: docker.io/mysql:8.2.0
ports: ['3306']
environment:
- MYSQL_DATABASE=test
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
when: *when