Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(apps/prod/tekton/configs): add task and triggers for auto sync OWNERS for hotfix branches #737

59 changes: 59 additions & 0 deletions apps/prod/tekton/configs/tasks/create-pr-to-sync-owners.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: create-pr-to-sync-owners
labels:
app.kubernetes.io/version: "0.1"
annotations:
tekton.dev/pipelines.minVersion: "0.29.0"
tekton.dev/categories: Deno
tekton.dev/tags: deno
tekton.dev/displayName: "sync owners"
tekton.dev/platforms: "linux/amd64"
spec:
description: >-
Create pull request to sync `OWNERS`` file to github repository branch.
params:
- name: git-url
description: repository clone url
type: string
- name: branch
description: branch name
type: string
steps:
- name: clone-community-repo
image: bitnami/git:latest
workingDir: /workspace
script: |
git clone https://github.com/pingcap/community.git --branch master
- name: create-pull-request
image: denoland/deno:1.37.2
workingDir: /workspace/community
script: |
owner=$(basename $(dirname $(params.git-url)))
repo=$(basename $(params.git-url) .git)

echo "url=$(params.git-url)"
echo "branch=$(params.branch)"
echo "owner=${owner}"
echo "repo=${repo}"

deno run --allow-all https://github.com/PingCAP-QE/ci/raw/main/scripts/pingcap/community/update-prow-owners.ts \
--force \
--owner=${owner} \
--github_private_token=$(cat /etc/github/token) \
--only_repo.repo=${repo} \
--only_repo.branch=$(params.branch) \
--inputs=teams/diagnostic/membership.json \
--inputs=teams/docs/membership.json \
--inputs=teams/tiunimanager/membership.json \
--inputs=teams/tidb/membership.json \
--inputs=teams/tiflash/membership.json \
--inputs=teams/tiup/membership.json \
--inputs=teams/kubernetes/membership.json \
--inputs=teams/migration/membership.json \
--inputs=teams/bigdata/membership.json
workspaces:
- name: github
description: Must includes a key `token`
mountPath: /etc/github
11 changes: 6 additions & 5 deletions apps/prod/tekton/configs/tasks/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: ee-cd
resources:
- create-pr-to-sync-owners.yaml
- echo.yaml
- git-clone.yaml
- github-set-status.yaml
- golang-build.yaml
- golang-test.yaml
- kubernetes-actions.yaml
- echo.yaml
- ko-test-infra.yaml
- multi-arch-image-push.yaml # multi-arch-image-push task
- https://raw.githubusercontent.com/tektoncd/catalog/main/task/ko/0.1/ko.yaml # ko task
- https://raw.githubusercontent.com/tektoncd/catalog/main/task/kaniko/0.6/kaniko.yaml # kaniko task
- https://raw.githubusercontent.com/tektoncd/catalog/main/task/ko/0.1/ko.yaml # ko task
- https://raw.githubusercontent.com/tektoncd/catalog/main/task/tkn/0.4/tkn.yaml
- ko-test-infra.yaml
- kubernetes-actions.yaml
- multi-arch-image-push.yaml # multi-arch-image-push task
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ spec:
- name: git-url
value: $(body.repository.url)
- name: git-ref
value: $(body.ref)
value: $(body.ref.substringAfter('refs/heads/')) # "refs/heads/xxx" => "xxx"
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ metadata:
spec:
params:
- name: git-url
value: $(body.repository.url)
value: $(body.repository.clone_url)
- name: git-revision
value: $(body.head_commit.id)
value: $(body.after)
- name: git-ref
value: $(body.ref)
value: $(body.ref.substringAfter('refs/heads/')) # "refs/heads/main" => "main"
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ metadata:
spec:
params:
- name: git-url
value: $(body.repository.url)
value: $(body.repository.clone_url)
- name: git-ref
value: $(body.ref)
- name: git-tag
value: $(body.ref)
value: $(body.ref.substringAfter('refs/tags/')) # "refs/tags/vX.Y.Z" => "vX.Y.Z"
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
apiVersion: triggers.tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
name: branch-create-product-components-hotfix
spec:
params:
- name: git-url
description: The git repository full url
- name: git-ref
description: The git ref
default: main
resourcetemplates:
- apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
generateName: branch-create-product-components-hotfix-run-
annotations:
"tekton.dev/git-status": "true"
"tekton.dev/status-target-url":
"https://do.pingcap.net/tekton/#/namespaces/{{ .Namespace }}/pipelineruns/{{ .Name }}"
"tekton.dev/git-repo": $(tt.params.git-url)
"tekton.dev/git-revision": $(tt.params.git-revision)
spec:
params:
- name: git-url
value: $(tt.params.git-url)
- name: branch
value: $(tt.params.git-ref)
taskRef:
kind: Task
name: create-pr-to-sync-owners
podTemplate:
nodeSelector:
kubernetes.io/arch: "amd64"
workspaces:
- name: github
secret:
secretName: github
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
apiVersion: triggers.tekton.dev/v1beta1
kind: Trigger
metadata:
name: branch-create-product-components-hotfix
labels:
type: github-branch-create
spec:
interceptors:
- name: filter on repo owner and name
ref:
name: cel
params:
- name: filter
value: >-
body.repository.owner.login == 'pingcap' && body.repository.name in [
'tidb',
'tiflash',
'tiflow',
'tidb-binlog',
'tidb-dashboard',
'tidb-tools'
]
# filter git refs that match regexp: ^refs/heads/release-\d+\.\d+-\d+-v\d+\.\d+\.\d+$
# example values of `body.ref`:
# refs/heads/release-6.5-20231020-v6.5.5
wuhuizuo marked this conversation as resolved.
Show resolved Hide resolved
wuhuizuo marked this conversation as resolved.
Show resolved Hide resolved
# refs/heads/release-6.5-20231020-v6.5.5-1
- name: filter on branch names
ref:
name: cel
params:
- name: filter
value: >-
body.ref.matches('^refs/heads/release-\\d+\\.\\d+-\\d+-v\\d+\\.\\d+\\.\\d+$')
wuhuizuo marked this conversation as resolved.
Show resolved Hide resolved
bindings:
- ref: github-branch-create
template:
ref: branch-create-product-components-hotfix
Loading