<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>38547</buildableDurationMillis><buildableTimeMillis>38547</buildableTimeMillis><buildingDurationMillis>98776</buildingDurationMillis><executingTimeMillis>98776</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>5768</waitingDurationMillis><waitingTimeMillis>5768</waitingTimeMillis></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmain _class='hudson.plugins.git.util.Build'><buildNumber>1441</buildNumber><marked><SHA1>d9712db6adac8c9a18991322e8999433c37b7f50</SHA1><branch><SHA1>d9712db6adac8c9a18991322e8999433c37b7f50</SHA1><name>origin/main</name></branch></marked><revision><SHA1>d9712db6adac8c9a18991322e8999433c37b7f50</SHA1><branch><SHA1>d9712db6adac8c9a18991322e8999433c37b7f50</SHA1><name>origin/main</name></branch></revision></originmain></buildsByBranchName><lastBuiltRevision><SHA1>d9712db6adac8c9a18991322e8999433c37b7f50</SHA1><branch><SHA1>d9712db6adac8c9a18991322e8999433c37b7f50</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>#1441</displayName><duration>98776</duration><estimatedDuration>50732</estimatedDuration><fullDisplayName>seed #1441</fullDisplayName><id>1441</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1441</number><queueId>3321140</queueId><result>SUCCESS</result><timestamp>1772186240479</timestamp><url>https://do.pingcap.net/jenkins/job/seed/1441/</url><builtOn>default-d6hjq</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.ci/replay-jenkins-build.sh</affectedPath><affectedPath>prow-jobs/pingcap-qe/ci/presubmits.yaml</affectedPath><affectedPath>prow-jobs/tikv/pd/common-presubmits.yaml</affectedPath><affectedPath>docs/guides/CI.md</affectedPath><affectedPath>docs/contributing.md</affectedPath><commitId>d9712db6adac8c9a18991322e8999433c37b7f50</commitId><timestamp>1772186192000</timestamp><author><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>ci: add replay-jenkins-build script and presubmit job (#4194)

This pull request improves the documentation and CI workflow for Jenkins
pipeline changes, and refactors the Prow job configuration to support
better pre-PR validation and replay testing. The main focus is to ensure
that changes to `pipelines/**/*.groovy` files are thoroughly validated
both locally and in presubmit jobs, and to clarify the process for
contributors. Additionally, the Prow job YAML files are refactored for
maintainability.

**Documentation enhancements:**

* Added a new section in `docs/contributing.md` recommending local
static and replay checks for Jenkins pipeline changes, with command
examples and links to further documentation.
* Expanded `docs/guides/CI.md` with detailed instructions on pre-PR
verification, including static validation, replay testing, and how to
use Prow jobs for Jenkins pipeline changes.

**CI and Prow job improvements:**

* Added a new optional presubmit job `pull-replay-jenkins-pipelines` in
`prow-jobs/pingcap-qe/ci/presubmits.yaml` to automate replay validation
of changed pipeline files, including job configuration, environment
variables, and usage of secrets.
* Refactored Prow job YAML to use a global `labels` anchor for
consistency and maintainability, updating all job definitions
accordingly.
* Minor restructuring in `prow-jobs/tikv/pd/common-presubmits.yaml` to
clarify section separation and maintain consistency.

---------

Co-authored-by: gemini-code-assist[bot] &lt;176961590+gemini-code-assist[bot]@users.noreply.github.com&gt;
</comment><date>2026-02-27 09:56:32 +0000</date><id>d9712db6adac8c9a18991322e8999433c37b7f50</id><msg>ci: add replay-jenkins-build script and presubmit job (#4194)</msg><path><editType>add</editType><file>.ci/replay-jenkins-build.sh</file></path><path><editType>edit</editType><file>prow-jobs/pingcap-qe/ci/presubmits.yaml</file></path><path><editType>edit</editType><file>prow-jobs/tikv/pd/common-presubmits.yaml</file></path><path><editType>edit</editType><file>docs/contributing.md</file></path><path><editType>edit</editType><file>docs/guides/CI.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit></freeStyleBuild>