<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='com.cloudbees.jenkins.GitHubPushCause'><shortDescription>Started by GitHub push by ti-chi-bot[bot]</shortDescription></cause><cause _class='com.cloudbees.jenkins.GitHubPushCause'><shortDescription>Started by GitHub push by ti-chi-bot[bot]</shortDescription></cause></action><action></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>17829</buildableDurationMillis><buildableTimeMillis>17829</buildableTimeMillis><buildingDurationMillis>56641</buildingDurationMillis><executingTimeMillis>56641</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>6897</waitingDurationMillis><waitingTimeMillis>6897</waitingTimeMillis></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmain _class='hudson.plugins.git.util.Build'><buildNumber>1386</buildNumber><marked><SHA1>2be41a54202fca6327f594c58220d11ef7834378</SHA1><branch><SHA1>2be41a54202fca6327f594c58220d11ef7834378</SHA1><name>origin/main</name></branch></marked><revision><SHA1>2be41a54202fca6327f594c58220d11ef7834378</SHA1><branch><SHA1>2be41a54202fca6327f594c58220d11ef7834378</SHA1><name>origin/main</name></branch></revision></originmain></buildsByBranchName><lastBuiltRevision><SHA1>2be41a54202fca6327f594c58220d11ef7834378</SHA1><branch><SHA1>2be41a54202fca6327f594c58220d11ef7834378</SHA1><name>origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/PingCAP-QE/ci.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1386</displayName><duration>56641</duration><estimatedDuration>83303</estimatedDuration><fullDisplayName>seed #1386</fullDisplayName><id>1386</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1386</number><queueId>3151282</queueId><result>SUCCESS</result><timestamp>1769928747102</timestamp><url>https://do.pingcap.net/jenkins/view/all/job/seed/1386/</url><builtOn>default-vw8lv</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pipelines/pingcap/tidb/release-8.3/pull_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-8.0/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-7.6/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/tikv/pd/latest/pull_integration_realcluster_test_next_gen/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-7.1/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-7.5/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-6.5-with-kv-timeout-feature/ghpr_unit_test.groovy</affectedPath><affectedPath>libraries/tipipeline/vars/prow.groovy</affectedPath><affectedPath>pipelines/tidbcloud/cloud-storage-engine/dedicated/pull_integration_realcluster_test_next_gen/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-8.2/pull_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/latest/merged_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-7.0/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-6.5-fips/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-7.4/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-6.5/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/latest/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/latest/pull_integration_realcluster_test_next_gen/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-9.0-beta/pull_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-8.5/pull_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/latest/pull_unit_test_next_gen/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-6.5-20241101-v6.5.7/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-7.3/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-8.4/pull_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-7.2/ghpr_unit_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tidb/release-8.1/ghpr_unit_test.groovy</affectedPath><commitId>2be41a54202fca6327f594c58220d11ef7834378</commitId><timestamp>1769928718000</timestamp><author><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>refactor: encapsulate cloudevents sending into shared function (#4134)

## Summary

- Add `sendTestCaseRunReport()` function to `prow.groovy` shared library
- Replace inline curl commands with function call in all pipeline files
- CloudEvents URL centralized:
`https://internal2-do.pingcap.net/cloudevents-server/events`

## Changes

### Benefits
- **Reduced code duplication**: ~85% reduction (from 12 lines to 2 lines
per file)
- **Single source of truth**: CloudEvents URL configuration in one place
- **Easier maintenance**: Future URL changes only need one update
- **Cleaner code**: Declarative pipelines remain readable and concise

### Modified Files
- `libraries/tipipeline/vars/prow.groovy` - Added shared function
- 23 pipeline files - Replaced inline curl with function call

## Example

**Before:**
```groovy
sh label: 'Send event to cloudevents server', script: """timeout 10 \\
    curl --verbose --request POST --url https://internal2-do.pingcap.net/cloudevents-server/events \\
    --header "ce-id: \\\$(uuidgen)" \\
    --header "ce-source: \\\${JENKINS_URL}" \\
    --header 'ce-type: test-case-run-report' \\
    --header 'ce-repo: \\\${REFS.org}/\\${REFS.repo}' \\
    --header 'ce-branch: \\\${REFS.base_ref}' \\
    --header "ce-buildurl: \\\${BUILD_URL}" \\
    --header 'ce-specversion: 1.0' \\
    --header 'content-type: application/json; charset=UTF-8' \\
    --data @bazel-go-test-problem-cases.json || true
"""
```

**After:**
```groovy
script {
    prow.sendTestCaseRunReport("${REFS.org}/${REFS.repo}", "${REFS.base_ref}")
}
```
</comment><date>2026-02-01 06:51:58 +0000</date><id>2be41a54202fca6327f594c58220d11ef7834378</id><msg>refactor: encapsulate cloudevents sending into shared function (#4134)</msg><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-6.5-with-kv-timeout-feature/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-9.0-beta/pull_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-7.6/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-6.5/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-8.0/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-7.2/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-8.4/pull_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-7.4/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-8.5/pull_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/tidbcloud/cloud-storage-engine/dedicated/pull_integration_realcluster_test_next_gen/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/latest/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-6.5-fips/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-7.0/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-7.5/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/tikv/pd/latest/pull_integration_realcluster_test_next_gen/pipeline.groovy</file></path><path><editType>edit</editType><file>libraries/tipipeline/vars/prow.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-7.3/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/latest/merged_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-7.1/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-8.1/ghpr_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-8.3/pull_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/latest/pull_unit_test_next_gen/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-8.2/pull_unit_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/latest/pull_integration_realcluster_test_next_gen/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tidb/release-6.5-20241101-v6.5.7/ghpr_unit_test.groovy</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit></freeStyleBuild>