diff --git a/apps/prod/tekton/configs/triggers/bindings/github-pr.yaml b/apps/prod/tekton/configs/triggers/bindings/github-pr.yaml index 2f908996f..4636ff5fb 100644 --- a/apps/prod/tekton/configs/triggers/bindings/github-pr.yaml +++ b/apps/prod/tekton/configs/triggers/bindings/github-pr.yaml @@ -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 diff --git a/apps/prod/tekton/configs/triggers/event-listeners/event-listener-tibuild.yaml b/apps/prod/tekton/configs/triggers/event-listeners/event-listener-tibuild.yaml index 3962bee08..3d2f5152c 100644 --- a/apps/prod/tekton/configs/triggers/event-listeners/event-listener-tibuild.yaml +++ b/apps/prod/tekton/configs/triggers/event-listeners/event-listener-tibuild.yaml @@ -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: @@ -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: @@ -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: diff --git a/apps/prod/tekton/configs/triggers/tests/dev-build.http b/apps/prod/tekton/configs/triggers/tests/dev-build.http index 2be0e788a..4c2410619 100644 --- a/apps/prod/tekton/configs/triggers/tests/dev-build.http +++ b/apps/prod/tekton/configs/triggers/tests/dev-build.http @@ -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" + } +} diff --git a/apps/prod/tekton/configs/triggers/tests/test-github-events.ts b/apps/prod/tekton/configs/triggers/tests/test-github-events.ts index 83c88f10c..c75e7f967 100755 --- a/apps/prod/tekton/configs/triggers/tests/test-github-events.ts +++ b/apps/prod/tekton/configs/triggers/tests/test-github-events.ts @@ -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); } diff --git a/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-branch-push.yaml b/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-branch-push.yaml index 3619637b6..2462ef4c8 100644 --- a/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-branch-push.yaml +++ b/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-branch-push.yaml @@ -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 diff --git a/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-pr.yaml b/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-pr.yaml index 63e00057c..85924f678 100644 --- a/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-pr.yaml +++ b/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-pr.yaml @@ -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) } diff --git a/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-tag-create.yaml b/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-tag-create.yaml index e3ad98e94..340d74cf7 100644 --- a/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-tag-create.yaml +++ b/apps/prod/tekton/configs/triggers/triggers/_/fake-github/fake-github-tag-create.yaml @@ -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