forgejo-mcp/.tekton/on-pull-request.yaml
Christoph Görn 508c7c0c68
ci: ✨ add go-licenses check + Conventional Commits PR title gate
- go-licenses v1.6.0 added to release-tools image; license-check step
  in go-ci task fails on forbidden/restricted licenses (GPL/AGPL/LGPL/MPL)
- new commit-title-check task validates PR title AND each PR branch
  commit against Conventional Commits regex using PAC dynamic var
  {{ body.pull_request.title }}; blocks merge before semantic-release
  post-merge analysis would silently drop malformed titles
- on-pull-request pipeline wires commit-title-check as parallel task
  alongside build-and-test; PAC resolves target_branch → base_ref
2026-05-26 15:16:42 +02:00

74 lines
1.8 KiB
YAML

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: on-pull-request
annotations:
pipelinesascode.tekton.dev/on-event: "[pull_request]"
pipelinesascode.tekton.dev/on-target-branch: "[main]"
pipelinesascode.tekton.dev/task: "[git-clone, .tekton/tasks/go-ci.yaml, .tekton/tasks/commit-title-check.yaml]"
pipelinesascode.tekton.dev/max-keep-runs: "5"
pipelinesascode.tekton.dev/cancel-in-progress: "true"
spec:
params:
- name: repo_url
value: "{{ repo_url }}"
- name: revision
value: "{{ revision }}"
- name: pr_title
value: |-
{{ body.pull_request.title }}
- name: base_ref
value: "{{ target_branch }}"
pipelineSpec:
params:
- name: repo_url
- name: revision
- name: pr_title
- name: base_ref
workspaces:
- name: source
tasks:
- name: fetch-source
taskRef:
name: git-clone
workspaces:
- name: output
workspace: source
params:
- name: url
value: $(params.repo_url)
- name: revision
value: $(params.revision)
- name: build-and-test
taskRef:
name: go-ci
runAfter:
- fetch-source
workspaces:
- name: source
workspace: source
- name: commit-title-check
taskRef:
name: commit-title-check
runAfter:
- fetch-source
params:
- name: PR_TITLE
value: $(params.pr_title)
- name: BASE_REF
value: $(params.base_ref)
workspaces:
- name: source
workspace: source
workspaces:
- name: source
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi