<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>29018</buildableDurationMillis><buildableTimeMillis>29018</buildableTimeMillis><buildingDurationMillis>46154</buildingDurationMillis><executingTimeMillis>46154</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>9219</waitingDurationMillis><waitingTimeMillis>9219</waitingTimeMillis></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmain _class='hudson.plugins.git.util.Build'><buildNumber>1806</buildNumber><marked><SHA1>643ff17a133ff5789a9a48f094c6f45294f42c69</SHA1><branch><SHA1>643ff17a133ff5789a9a48f094c6f45294f42c69</SHA1><name>origin/main</name></branch></marked><revision><SHA1>643ff17a133ff5789a9a48f094c6f45294f42c69</SHA1><branch><SHA1>643ff17a133ff5789a9a48f094c6f45294f42c69</SHA1><name>origin/main</name></branch></revision></originmain></buildsByBranchName><lastBuiltRevision><SHA1>643ff17a133ff5789a9a48f094c6f45294f42c69</SHA1><branch><SHA1>643ff17a133ff5789a9a48f094c6f45294f42c69</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>#1806</displayName><duration>46154</duration><estimatedDuration>49176</estimatedDuration><fullDisplayName>seed #1806</fullDisplayName><id>1806</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1806</number><queueId>3694173</queueId><result>SUCCESS</result><timestamp>1782198989601</timestamp><url>https://do.pingcap.net/jenkins/job/seed/1806/</url><builtOn>default-r8vkb</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_mysql_connector_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_common_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_jdbc_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/pull_integration_jdbc_test_next_gen/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_mysql_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_jdbc_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_ruby_orm_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_nodejs_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_common_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/ghpr_mysql_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/ghpr_common_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_mysql_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/pull_mysql_test_next_gen/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_python_orm_test/pipeline.groovy</affectedPath><affectedPath>pipelines/pingcap-qe/tidb-test/latest/ghpr_build/pipeline.groovy</affectedPath><commitId>643ff17a133ff5789a9a48f094c6f45294f42c69</commitId><timestamp>1782198947000</timestamp><author><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>feat(ci): refactor tidb-test latest stage agents with serial stage merging and stash/unstash (#4716)

## Summary

This PR refactors the 15
`pipelines/pingcap-qe/tidb-test/latest/*/pipeline.groovy` files to:

1. **Convert pipeline-top Kubernetes agents to `agent none`** plus
stage-level Kubernetes agents
2. **Merge serial stages** (Checkout + Prepare/Build) into single agent
blocks to reduce pod allocation overhead
3. **Use stash/unstash for workspace handoff** to parallel test stages
(replacing cache-based workspace sharing)
4. **Add `retries 2`** to all stage-level Kubernetes agents

## Changes

### Pipeline Structure Changes

- **Before**: Pipeline-top `agent { kubernetes { ... } }` with all
stages sharing the same pod
- **After**: `agent none` at pipeline level with:
  - Merged `Checkout &amp; Prepare` stage using a single Kubernetes agent
  - Separate Kubernetes agents for parallel test matrix stages

### Workspace Handoff

- **Before**: Cache-based workspace sharing (`cache(key:
"ws/${BUILD_TAG}/...")`)
- **After**: Stash/unstash pattern for workspace data transfer between
merged stages and test stages

### Files Modified

All 15 pipeline files in `pipelines/pingcap-qe/tidb-test/latest/`:
- `ghpr_build/pipeline.groovy`
- `ghpr_common_test/pipeline.groovy`
- `ghpr_integration_common_test/pipeline.groovy`
- `ghpr_integration_jdbc_test/pipeline.groovy`
- `ghpr_integration_mysql_test/pipeline.groovy`
- `ghpr_integration_nodejs_test/pipeline.groovy`
- `ghpr_integration_python_orm_test/pipeline.groovy`
- `ghpr_mysql_test/pipeline.groovy`
- `pull_integration_jdbc_test_next_gen/pipeline.groovy`
- `pull_mysql_test_next_gen/pipeline.groovy`
- `pull_tiproxy_common_test/pipeline.groovy`
- `pull_tiproxy_jdbc_test/pipeline.groovy`
- `pull_tiproxy_mysql_connector_test/pipeline.groovy`
- `pull_tiproxy_mysql_test/pipeline.groovy`
- `pull_tiproxy_ruby_orm_test/pipeline.groovy`

## Testing

- Verify Jenkins pipeline syntax: `.ci/verify-jenkins-pipelines.sh`
- Check for remaining pipeline-top agents in the batch
- Confirm stash/unstash pattern matches existing examples in the repo
(e.g., ticdc pipelines)

## Risk

Low - This is a structural refactor that maintains the same test
execution behavior. The stash/unstash pattern is already used
successfully in other pipelines in this repository.

---------

Signed-off-by: wuhuizuo &lt;wuhuizuo@126.com&gt;
</comment><date>2026-06-23 07:15:47 +0000</date><id>643ff17a133ff5789a9a48f094c6f45294f42c69</id><msg>feat(ci): refactor tidb-test latest stage agents with serial stage</msg><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_common_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_nodejs_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_common_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/ghpr_build/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_mysql_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/pull_mysql_test_next_gen/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_ruby_orm_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_jdbc_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_python_orm_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/ghpr_common_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_mysql_connector_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/pull_integration_jdbc_test_next_gen/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_mysql_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_jdbc_test/pipeline.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap-qe/tidb-test/latest/ghpr_mysql_test/pipeline.groovy</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit></freeStyleBuild>