Skip to content

Commit

Permalink
feat(apps/prod/tekton/configs/triggers): support build with pr (#1130)
Browse files Browse the repository at this point in the history
Signed-off-by: wuhuizuo <wuhuizuo@126.com>

Signed-off-by: wuhuizuo <wuhuizuo@126.com>
  • Loading branch information
wuhuizuo authored Apr 30, 2024
1 parent 71b10fb commit 5d613a5
Show file tree
Hide file tree
Showing 7 changed files with 163 additions and 56 deletions.
12 changes: 6 additions & 6 deletions apps/prod/tekton/configs/triggers/bindings/github-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ metadata:
spec:
params:
- name: git-url
value: $(body.pull_request.base.repo.clone_url)
value: $(body.repository.clone_url)
- name: git-refspec
value: "refs/pull/$(body.pull_request.number)/head"
value: "refs/pull/$(body.pull_request.number)/head:pull/$(body.pull_request.number)"
- name: git-revision
value: $(body.pull_request.head.sha)
- name: git-ref
value: $(body.pull_request.base.ref)
- name: pr-number
value: $(body.pull_request.number)
- name: pr-head-ref
value: $(body.pull_request.head.ref)
- name: pr-base-ref
value: $(body.pull_request.base.ref)
# - name: pr-head-ref
# value: $(body.pull_request.head.ref)
# - name: pr-base-ref
# value: $(body.pull_request.base.ref)
# - name: pr-title
# value: $(body.pull_request.title)
# - name: pr-body
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,25 @@ spec:
triggerGroups:
- name: tibuild-fake-github-pr
interceptors:
- name: "filter on eventType"
- name: filter on eventType and refs and extract cloud event context
ref:
name: cel
params:
- name: filter
value: >-
header.canonical('ce-type') in ['net.pingcap.tibuild.devbuild.pull_request', 'net.pingcap.tibuild.hotfix.pull_request']
- name: "validate PR state and add field"
ref:
name: cel
params:
- name: filter
value: body.action in ['opened', 'synchronize', 'reopened']
&&
body.action in ['opened', 'synchronize', 'reopened']
- name: overlays
value:
- key: ce-context
expression: |
{
"type": header.canonical('ce-type'),
"source": header.canonical('ce-source'),
"subject": header.canonical('ce-subject'),
"user": header.canonical('ce-user'),
}.marshalJSON()
triggerSelector:
namespaceSelector:
matchNames:
Expand Down Expand Up @@ -50,8 +56,6 @@ spec:
"subject": header.canonical('ce-subject'),
"user": header.canonical('ce-user'),
}.marshalJSON()
- key: ce-context-user
expression: header.canonical('ce-user')
triggerSelector:
namespaceSelector:
matchNames:
Expand Down Expand Up @@ -80,8 +84,6 @@ spec:
"subject": header.canonical('ce-subject'),
"user": header.canonical('ce-user'),
}.marshalJSON()
- key: ce-context-user
expression: header.canonical('ce-user')
triggerSelector:
namespaceSelector:
matchNames:
Expand Down
51 changes: 51 additions & 0 deletions apps/prod/tekton/configs/triggers/tests/dev-build.http
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,60 @@ Ce-user: wuhui.zuo@pingcap.com
"ref_type": "branch",
"repository": {
"name": "pd",
"full_name": "tikv/pd",
"clone_url": "https://github.com/tikv/pd.git",
"owner": {
"login": "tikv"
}
}
}

### dev build with tag
POST http://127.0.0.1:8080 HTTP/1.1
Content-Type: application/json; charset=UTF-8
Ce-specversion: 1.0
Ce-id: 445eb4fb-c6bc-4b14-995a-4543dc541d13
Ce-source: https://tibuild.pingcap.net/dev-build/debug-123
Ce-type: net.pingcap.tibuild.devbuild.create
Ce-subject: debug-123
Ce-user: wuhui.zuo@pingcap.cn

{
"ref":"v8.0.0",
"ref_type":"tag",
"repository":{
"name":"pd",
"full_name": "tikv/pd",
"owner":{
"login":"tikv"
},
"clone_url":"https://github.com/tikv/pd.git"
}
}

### dev build with pull request
POST http://127.0.0.1:8080 HTTP/1.1
Content-Type: application/json; charset=UTF-8
Ce-specversion: 1.0
Ce-id: 445eb4fb-c6bc-4b14-995a-4543dc541d13
Ce-source: https://tibuild.pingcap.net/dev-build/debug-123
Ce-type: net.pingcap.tibuild.devbuild.pull_request
Ce-subject: debug-123
Ce-user: wuhui.zuo@pingcap.cn

{
"action": "opened",
"number": 8132,
"pull_request": {
"number": 8132,
"state": "open",
"head": { "sha": "c6d2fb9f19bf1e582a4c034fd796a99061c7a8d3" },
"base": { "ref": "master" }
},
"repository": {
"name": "pd",
"full_name": "tikv/pd",
"owner": { "login": "tikv" },
"clone_url": "https://github.com/tikv/pd.git"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@ async function sendGithubEvent(
},
body: JSON.stringify(eventPayload),
};
console.debug(fetchInit);
console.dir(fetchInit);
console.dir(fetchInit.body);

await fetch(eventUrl, fetchInit);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,50 @@ metadata:
type: fake-github-branch-push
spec:
interceptors:
- name: filter on repo owner and name and branches
- name: filter on repo
ref: { name: cel }
params:
- name: filter
# support branches:
# - master
# - release-6.1, release-6.5, release-7.1, release-7.5
value: >-
(
(body.repository.owner.login == 'pingcap' && body.repository.name in ['tidb', 'tiflow', 'tiflash', 'tidb-dashboard'])
||
(body.repository.owner.login == 'tikv' && body.repository.name in ['tikv', 'pd'])
) &&
body.ref.matches('^refs/heads/(master|release-[7-9][.][0-9]+)$')
body.repository.full_name in ['pingcap/tidb', 'pingcap/tiflow', 'pingcap/tiflash', 'tikv/tikv', 'tikv/pd']
- name: overlays
value:
- key: timeout
expression: >-
{ 'tidb': '30m', 'tiflash': '2h', 'tiflow': '30m', 'pd': '30m', 'tikv': '2h30m' }[body.repository.name]
{
'pingcap/tidb': '30m',
'pingcap/tiflash': '2h',
'pingcap/tiflow': '30m',
'tikv/pd': '30m',
'tikv/tikv': '2h30m',
}[body.repository.full_name]
- key: source-ws-size
expression: >-
{ 'tidb': '50Gi', 'tiflash': '100Gi', 'tiflow': '50Gi', 'pd': '50Gi', 'tikv': '100Gi' }[body.repository.name]
{
'pingcap/tidb': '50Gi',
'pingcap/tiflash': '100Gi',
'pingcap/tiflow': '50Gi',
'tikv/pd': '50Gi',
'tikv/tikv': '100Gi',
}[body.repository.full_name]
- key: builder-resources-cpu
expression: >-
{ 'tidb': '8', 'tiflash': '16', 'tiflow': '8', 'pd': '8', 'tikv': '16' }[body.repository.name]
{
'pingcap/tidb': '8',
'pingcap/tiflash': '16',
'pingcap/tiflow': '8',
'tikv/pd': '8',
'tikv/tikv': '16',
}[body.repository.full_name]
- key: builder-resources-memory
expression: >-
{ 'tidb': '32Gi', 'tiflash': '64Gi', 'tiflow': '32Gi', 'pd': '32Gi', 'tikv': '64Gi' }[body.repository.name]
{
'pingcap/tidb': '32Gi',
'pingcap/tiflash': '64Gi',
'pingcap/tiflow': '32Gi',
'tikv/pd': '32Gi',
'tikv/tikv': '64Gi',
}[body.repository.full_name]
bindings:
- ref: github-branch-push
- ref: ce-context
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,54 @@ metadata:
type: fake-github-pr
spec:
interceptors:
- name: filter on repo owner and name and branches
- name: filter on repo
ref: { name: cel }
params:
- name: filter
# support branches:
# - master
# - release-6.1, release-6.5, release-7.1, release-7.5
value: >-
(
(body.pull_request.base.user.login == 'pingcap' && body.pull_request.base.repo.name in ['tidb', 'tiflow', 'tiflash'])
||
(body.pull_request.base.user.login == 'tikv' && body.pull_request.base.repo.name in ['tikv', 'pd'])
) &&
body.pull_request.base.ref.matches('^refs/heads/(master|release-[7-9][.][0-9]+)$')
body.repository.full_name in ['pingcap/tidb', 'pingcap/tiflow', 'pingcap/tiflash', 'tikv/tikv', 'tikv/pd']
- name: overlays
value:
- key: timeout
expression: >-
{ 'tidb': '30m', 'tiflash': '2h', 'tiflow': '30m', 'pd': '30m', 'tikv': '2h30m' }[body.pull_request.base.repo.name]
{
'pingcap/tidb': '30m',
'pingcap/tiflash': '2h',
'pingcap/tiflow': '30m',
'tikv/pd': '30m',
'tikv/tikv': '2h30m',
}[body.repository.full_name]
- key: source-ws-size
expression: >-
{ 'tidb': '50Gi', 'tiflash': '100Gi', 'tiflow': '50Gi', 'pd': '50Gi', 'tikv': '100Gi' }[body.pull_request.base.repo.name]
{
'pingcap/tidb': '50Gi',
'pingcap/tiflash': '100Gi',
'pingcap/tiflow': '50Gi',
'tikv/pd': '50Gi',
'tikv/tikv': '100Gi',
}[body.repository.full_name]
- key: builder-resources-cpu
expression: >-
{ 'tidb': '8', 'tiflash': '16', 'tiflow': '8', 'pd': '8', 'tikv': '16' }[body.pull_request.base.repo.name]
{
'pingcap/tidb': '8',
'pingcap/tiflash': '16',
'pingcap/tiflow': '8',
'tikv/pd': '8',
'tikv/tikv': '16',
}[body.repository.full_name]
- key: builder-resources-memory
expression: >-
{ 'tidb': '32Gi', 'tiflash': '64Gi', 'tiflow': '32Gi', 'pd': '32Gi', 'tikv': '64Gi' }[body.pull_request.base.repo.name]
{
'pingcap/tidb': '32Gi',
'pingcap/tiflash': '64Gi',
'pingcap/tiflow': '32Gi',
'tikv/pd': '32Gi',
'tikv/tikv': '64Gi',
}[body.repository.full_name]
bindings:
- ref: github-pr
- ref: ce-context
- { name: component, value: $(body.pull_request.base.repo.name) }
- { name: component, value: $(body.repository.name) }
- { name: os, value: linux }
- { name: profile, value: release }
- { name: timeout, value: $(extensions.timeout) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,47 @@ spec:
params:
- name: filter
value: >-
(
(body.repository.owner.login == 'pingcap' && body.repository.name in ['tidb', 'tiflow', 'tiflash'])
||
(body.repository.owner.login == 'tikv' && body.repository.name in ['tikv', 'pd'])
) &&
body.repository.full_name in ['pingcap/tidb', 'pingcap/tiflow', 'pingcap/tiflash', 'tikv/tikv', 'tikv/pd']
&&
body.ref.matches('^v[0-9]+[.][0-9]+[.][0-9]+$')
- name: overlays
value:
- key: timeout
expression: >-
{ 'tidb': '30m', 'tiflash': '2h', 'tiflow': '30m', 'pd': '30m', 'tikv': '2h30m' }[body.repository.name]
{
'pingcap/tidb': '30m',
'pingcap/tiflash': '2h',
'pingcap/tiflow': '30m',
'tikv/pd': '30m',
'tikv/tikv': '2h30m',
}[body.repository.full_name]
- key: source-ws-size
expression: >-
{ 'tidb': '50Gi', 'tiflash': '100Gi', 'tiflow': '50Gi', 'pd': '50Gi', 'tikv': '100Gi' }[body.repository.name]
{
'pingcap/tidb': '50Gi',
'pingcap/tiflash': '100Gi',
'pingcap/tiflow': '50Gi',
'tikv/pd': '50Gi',
'tikv/tikv': '100Gi',
}[body.repository.full_name]
- key: builder-resources-cpu
expression: >-
{ 'tidb': '8', 'tiflash': '16', 'tiflow': '8', 'pd': '8', 'tikv': '16' }[body.repository.name]
{
'pingcap/tidb': '8',
'pingcap/tiflash': '16',
'pingcap/tiflow': '8',
'tikv/pd': '8',
'tikv/tikv': '16',
}[body.repository.full_name]
- key: builder-resources-memory
expression: >-
{ 'tidb': '32Gi', 'tiflash': '64Gi', 'tiflow': '32Gi', 'pd': '32Gi', 'tikv': '64Gi' }[body.repository.name]
{
'pingcap/tidb': '32Gi',
'pingcap/tiflash': '64Gi',
'pingcap/tiflow': '32Gi',
'tikv/pd': '32Gi',
'tikv/tikv': '64Gi',
}[body.repository.full_name]
bindings:
- ref: github-tag-create
- ref: ce-context
Expand Down

0 comments on commit 5d613a5

Please sign in to comment.