variables: - &golang_image 'golang:1.20.2' - &when_path # related config files - ".woodpecker/test.yml" - ".golangci.yml" # go source code - "**/*.go" - "go.*" # schema changes - "pipeline/schema/**" pipeline: &legacy vendor: image: *golang_image group: prepare commands: - go mod vendor when: path: *when_path lint-pipeline: image: *golang_image commands: - go run github.com/woodpecker-ci/woodpecker/cmd/cli lint when: path: - ".woodpecker/**" - "pipeline/schema/**" dummy-web: image: *golang_image group: prepare commands: - mkdir -p web/dist/ - echo "test" > web/dist/index.html when: path: *when_path lint: image: *golang_image group: test commands: - make lint when: path: *when_path check_swagger: image: *golang_image group: test 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: path: *when_path lint-editorconfig: image: mstruebing/editorconfig-checker group: test # Fixed with https://github.com/woodpecker-ci/woodpecker/pull/1753 # securitycheck: # group: test # image: aquasec/trivy:latest # commands: # - trivy fs --exit-code 0 --skip-dirs web/ --skip-dirs docs/ --severity UNKNOWN,LOW . # - trivy fs --exit-code 1 --skip-dirs web/ --skip-dirs docs/ --severity MEDIUM,HIGH,CRITICAL . # when: # path: *when_path test: image: *golang_image group: test commands: - make test-agent - make test-server - make test-cli - make test-lib when: path: *when_path sqlite: image: *golang_image group: test environment: - WOODPECKER_DATABASE_DRIVER=sqlite3 commands: - make test-server-datastore-coverage when: path: *when_path postgres: image: *golang_image group: test environment: - WOODPECKER_DATABASE_DRIVER=postgres - WOODPECKER_DATABASE_DATASOURCE=host=service-postgres user=postgres dbname=postgres sslmode=disable commands: - make test-server-datastore when: path: *when_path mysql: image: *golang_image group: test environment: - WOODPECKER_DATABASE_DRIVER=mysql - WOODPECKER_DATABASE_DATASOURCE=root@tcp(service-mysql:3306)/test?parseTime=true commands: - make test-server-datastore when: path: *when_path codecov: pull: true image: woodpeckerci/plugin-codecov:next-alpine 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: postgres:11 ports: ["5432"] environment: - POSTGRES_USER=postgres - POSTGRES_HOST_AUTH_METHOD=trust when: path: *when_path service-mysql: image: mysql:5.6.27 ports: ["3306"] environment: - MYSQL_DATABASE=test - MYSQL_ALLOW_EMPTY_PASSWORD=yes when: path: *when_path steps: *legacy