diff --git a/.woodpecker/binaries.yml b/.woodpecker/binaries.yml index a41773ae9..1986d2b35 100644 --- a/.woodpecker/binaries.yml +++ b/.woodpecker/binaries.yml @@ -15,6 +15,14 @@ variables: # web source code - "web/**" +when: + - event: push + branch: ["${CI_REPO_DEFAULT_BRANCH}", "release/*" ] + path: *when_path + - event: tag + - event: pull_request # TODO: Do we need this :thinking:? + path: *when_path + pipeline: build-web: group: prepare @@ -24,63 +32,47 @@ pipeline: - corepack enable - pnpm install --frozen-lockfile - pnpm build - when: - path: *when_path vendor: group: prepare image: *golang_image commands: - go mod vendor - when: - path: *when_path build-server: group: build image: *golang_image commands: - make release-server - when: - path: *when_path build-agent: group: build image: *golang_image commands: - make release-agent - when: - path: *when_path build-cli: group: build image: *golang_image commands: - make release-cli - when: - path: *when_path build-deb-rpm: group: bundle image: *golang_image commands: - make bundle - when: - path: *when_path build-tarball: group: bundle image: *golang_image commands: - make release-tarball - when: - path: *when_path checksums: image: *golang_image commands: - make release-checksums - when: - path: *when_path # TODO: upload build artifacts for pushes to ${CI_REPO_DEFAULT_BRANCH} @@ -89,8 +81,6 @@ pipeline: commands: - ls -la dist/*.* - cat dist/checksums.txt - when: - path: *when_path release: image: plugins/github-release @@ -106,4 +96,3 @@ pipeline: title: ${CI_COMMIT_TAG##v} when: event: tag - # path conditions are ignored for tag events diff --git a/.woodpecker/docker.yml b/.woodpecker/docker.yml index f027ca7c6..d44c4c49d 100644 --- a/.woodpecker/docker.yml +++ b/.woodpecker/docker.yml @@ -12,6 +12,12 @@ variables: - &platforms_preview 'linux/arm/v6,linux/arm64/v8,linux/amd64,linux/riscv64,windows/amd64' - &platforms_alpine 'linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le' +when: + - event: push + branch: ["${CI_REPO_DEFAULT_BRANCH}", "release/*" ] + - event: tag + - event: pull_request + pipeline: vendor: image: *golang_image diff --git a/.woodpecker/docs.yml b/.woodpecker/docs.yml index aab2f5047..72b1798ab 100644 --- a/.woodpecker/docs.yml +++ b/.woodpecker/docs.yml @@ -8,13 +8,19 @@ variables: - "cli/**" - "cmd/cli/**" +when: + - event: push + branch: ["${CI_REPO_DEFAULT_BRANCH}", "release/*" ] + path: *when_path + - event: tag + - event: pull_request + path: *when_path + pipeline: build-cli: image: *golang_image commands: - make docs - when: - path: *when_path build: image: *node_image @@ -23,8 +29,6 @@ pipeline: - corepack enable - pnpm install --frozen-lockfile - pnpm build - when: - path: *when_path securitycheck: image: aquasec/trivy:latest @@ -32,8 +36,6 @@ pipeline: - trivy fs --exit-code 0 --skip-dirs node_modules/ --skip-dirs plugins/woodpecker-plugins/node_modules --severity UNKNOWN,LOW docs/ # TODO currently it is not fixable so just do not block currently - trivy fs --exit-code 0 --skip-dirs node_modules/ --skip-dirs plugins/woodpecker-plugins/node_modules --severity MEDIUM,HIGH,CRITICAL docs/ - when: - path: *when_path deploy-preview: image: woodpeckerci/plugin-surge-preview:next @@ -47,7 +49,6 @@ pipeline: from_secret: GITHUB_TOKEN_SURGE when: event: pull_request - path: *when_path # TODO: add step to remove preview again after PR is closed (waiting for #286) @@ -75,4 +76,3 @@ pipeline: when: event: push branch: ${CI_REPO_DEFAULT_BRANCH} - path: *when_path diff --git a/.woodpecker/helm.yml b/.woodpecker/helm.yml index b8211f1b8..be1a29d14 100644 --- a/.woodpecker/helm.yml +++ b/.woodpecker/helm.yml @@ -1,3 +1,16 @@ +variables: + - &when_path + - "charts/**" + - ".woodpecker/helm.yml" + +when: + - event: push + branch: ["${CI_REPO_DEFAULT_BRANCH}", "release/*" ] + path: *when_path + - event: tag + - event: pull_request + path: *when_path + pipeline: set-version: image: alpine/helm:3.5.3 @@ -10,22 +23,12 @@ pipeline: - sed -i "s//$CHART_VERSION/g" charts/woodpecker-server/Chart.yaml - cat charts/woodpecker-agent/Chart.yaml - cat charts/woodpecker-server/Chart.yaml - when: - path: - include: - - "charts/**" - - ".woodpecker/helm.yml" lint: image: alpine/helm:3.5.3 commands: - helm lint charts/woodpecker-agent/ - helm lint charts/woodpecker-server/ - when: - path: - include: - - "charts/**" - - ".woodpecker/helm.yml" release: image: quay.io/helmpack/chart-releaser:v1.4.0 @@ -43,7 +46,3 @@ pipeline: - cd woodpecker-ci.github.io/ && cr index --owner woodpecker-ci --git-repo woodpecker-ci.github.io --pages-branch master --package-path ../.cr-release-packages --index-path ../.cr-index/index.yaml --charts-repo https://woodpecker-ci.org --push --release-name-template "helm-{{ .Name }}-{{ .Version }}" when: event: tag - path: - include: - - "charts/**" - - ".woodpecker/helm.yml" diff --git a/.woodpecker/test.yml b/.woodpecker/test.yml index 05f9edb70..a27e7949f 100644 --- a/.woodpecker/test.yml +++ b/.woodpecker/test.yml @@ -11,6 +11,12 @@ variables: # schema changes - "pipeline/schema/**" +when: + - event: push + branch: ["${CI_REPO_DEFAULT_BRANCH}", "release/*" ] + - event: tag + - event: pull_request + pipeline: vendor: image: *golang_image @@ -124,8 +130,6 @@ services: environment: - POSTGRES_USER=postgres - POSTGRES_HOST_AUTH_METHOD=trust - when: - path: *when_path service-mysql: image: mysql:5.6.27 @@ -133,5 +137,3 @@ services: environment: - MYSQL_DATABASE=test - MYSQL_ALLOW_EMPTY_PASSWORD=yes - when: - path: *when_path diff --git a/.woodpecker/web.yml b/.woodpecker/web.yml index 400987860..03ac4118e 100644 --- a/.woodpecker/web.yml +++ b/.woodpecker/web.yml @@ -6,6 +6,14 @@ variables: # web source code - "web/**" +when: + - event: push + branch: ["${CI_REPO_DEFAULT_BRANCH}", "release/*" ] + path: *when_path + - event: tag + - event: pull_request + path: *when_path + pipeline: deps: image: *node_image @@ -13,8 +21,6 @@ pipeline: - cd web/ - corepack enable - pnpm install --frozen-lockfile - when: - path: *when_path lint: group: test @@ -23,8 +29,6 @@ pipeline: - cd web/ - corepack enable - pnpm lint - when: - path: *when_path formatcheck: group: test @@ -33,8 +37,6 @@ pipeline: - cd web/ - corepack enable - pnpm formatcheck - when: - path: *when_path typecheck: group: test @@ -43,8 +45,6 @@ pipeline: - cd web/ - corepack enable - pnpm typecheck - when: - path: *when_path securitycheck: group: test @@ -52,8 +52,6 @@ pipeline: commands: - trivy fs --exit-code 0 --skip-dirs node_modules/ --severity UNKNOWN,LOW web/ - trivy fs --exit-code 1 --skip-dirs node_modules/ --severity MEDIUM,HIGH,CRITICAL web/ - when: - path: *when_path test: group: test @@ -62,5 +60,3 @@ pipeline: - cd web/ - corepack enable - pnpm test - when: - path: *when_path diff --git a/pipeline/schema/schema.json b/pipeline/schema/schema.json index 18bc9c247..a7e9d356d 100644 --- a/pipeline/schema/schema.json +++ b/pipeline/schema/schema.json @@ -15,14 +15,15 @@ "description": "Use yaml aliases to define variables. Read more: https://woodpecker-ci.org/docs/usage/advanced-yaml-syntax" }, "clone": { "$ref": "#/definitions/clone" }, + "skip_clone": { "type": "boolean" }, "branches": { "$ref": "#/definitions/branches" }, + "when": { "$ref": "#/definitions/pipeline_when" }, "pipeline": { "$ref": "#/definitions/pipeline" }, "services": { "$ref": "#/definitions/services" }, "workspace": { "$ref": "#/definitions/workspace" }, "matrix": { "$ref": "#/definitions/matrix" }, "platform": { "$ref": "#/definitions/platform" }, "labels": { "$ref": "#/definitions/labels" }, - "skip_clone": { "type": "boolean" }, "depends_on": { "type": "array", "minLength": 1, @@ -99,7 +100,7 @@ ] }, "pipeline_when": { - "description": "Whole pipelines can be skipped based on conditions. Read more: TODO", + "description": "Whole pipelines can be skipped based on conditions. Read more: https://woodpecker-ci.org/docs/next/usage/pipeline-syntax#when---global-pipeline-conditions", "oneOf": [ { "type": "array",