{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by ti-chi-bot[bot]"
        },
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by ti-chi-bot[bot]"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 29018,
      "buildableTimeMillis" : 29018,
      "buildingDurationMillis" : 46154,
      "executingTimeMillis" : 46154,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 9219,
      "waitingTimeMillis" : 9219
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/main" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1806,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "643ff17a133ff5789a9a48f094c6f45294f42c69",
            "branch" : [
              {
                "SHA1" : "643ff17a133ff5789a9a48f094c6f45294f42c69",
                "name" : "origin/main"
              }
            ]
          },
          "revision" : {
            "SHA1" : "643ff17a133ff5789a9a48f094c6f45294f42c69",
            "branch" : [
              {
                "SHA1" : "643ff17a133ff5789a9a48f094c6f45294f42c69",
                "name" : "origin/main"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "643ff17a133ff5789a9a48f094c6f45294f42c69",
        "branch" : [
          {
            "SHA1" : "643ff17a133ff5789a9a48f094c6f45294f42c69",
            "name" : "origin/main"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/PingCAP-QE/ci.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : false,
  "description" : null,
  "displayName" : "#1806",
  "duration" : 46154,
  "estimatedDuration" : 49176,
  "executor" : null,
  "fullDisplayName" : "seed #1806",
  "id" : "1806",
  "inProgress" : false,
  "keepLog" : false,
  "number" : 1806,
  "queueId" : 3694173,
  "result" : "SUCCESS",
  "timestamp" : 1782198989601,
  "url" : "https://do.pingcap.net/jenkins/job/seed/1806/",
  "builtOn" : "default-r8vkb",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_mysql_connector_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_common_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_jdbc_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/pull_integration_jdbc_test_next_gen/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_mysql_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_jdbc_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_ruby_orm_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_nodejs_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_common_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/ghpr_mysql_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/ghpr_common_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_mysql_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/pull_mysql_test_next_gen/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_python_orm_test/pipeline.groovy",
          "pipelines/pingcap-qe/tidb-test/latest/ghpr_build/pipeline.groovy"
        ],
        "commitId" : "643ff17a133ff5789a9a48f094c6f45294f42c69",
        "timestamp" : 1782198947000,
        "author" : {
          "absoluteUrl" : "https://do.pingcap.net/jenkins/user/noreply",
          "fullName" : "noreply"
        },
        "authorEmail" : "noreply@github.com",
        "comment" : "feat(ci): refactor tidb-test latest stage agents with serial stage merging and stash/unstash (#4716)\u000a\u000a## Summary\u000a\u000aThis PR refactors the 15\u000a`pipelines/pingcap-qe/tidb-test/latest/*/pipeline.groovy` files to:\u000a\u000a1. **Convert pipeline-top Kubernetes agents to `agent none`** plus\u000astage-level Kubernetes agents\u000a2. **Merge serial stages** (Checkout + Prepare/Build) into single agent\u000ablocks to reduce pod allocation overhead\u000a3. **Use stash/unstash for workspace handoff** to parallel test stages\u000a(replacing cache-based workspace sharing)\u000a4. **Add `retries 2`** to all stage-level Kubernetes agents\u000a\u000a## Changes\u000a\u000a### Pipeline Structure Changes\u000a\u000a- **Before**: Pipeline-top `agent { kubernetes { ... } }` with all\u000astages sharing the same pod\u000a- **After**: `agent none` at pipeline level with:\u000a  - Merged `Checkout & Prepare` stage using a single Kubernetes agent\u000a  - Separate Kubernetes agents for parallel test matrix stages\u000a\u000a### Workspace Handoff\u000a\u000a- **Before**: Cache-based workspace sharing (`cache(key:\u000a\"ws/${BUILD_TAG}/...\")`)\u000a- **After**: Stash/unstash pattern for workspace data transfer between\u000amerged stages and test stages\u000a\u000a### Files Modified\u000a\u000aAll 15 pipeline files in `pipelines/pingcap-qe/tidb-test/latest/`:\u000a- `ghpr_build/pipeline.groovy`\u000a- `ghpr_common_test/pipeline.groovy`\u000a- `ghpr_integration_common_test/pipeline.groovy`\u000a- `ghpr_integration_jdbc_test/pipeline.groovy`\u000a- `ghpr_integration_mysql_test/pipeline.groovy`\u000a- `ghpr_integration_nodejs_test/pipeline.groovy`\u000a- `ghpr_integration_python_orm_test/pipeline.groovy`\u000a- `ghpr_mysql_test/pipeline.groovy`\u000a- `pull_integration_jdbc_test_next_gen/pipeline.groovy`\u000a- `pull_mysql_test_next_gen/pipeline.groovy`\u000a- `pull_tiproxy_common_test/pipeline.groovy`\u000a- `pull_tiproxy_jdbc_test/pipeline.groovy`\u000a- `pull_tiproxy_mysql_connector_test/pipeline.groovy`\u000a- `pull_tiproxy_mysql_test/pipeline.groovy`\u000a- `pull_tiproxy_ruby_orm_test/pipeline.groovy`\u000a\u000a## Testing\u000a\u000a- Verify Jenkins pipeline syntax: `.ci/verify-jenkins-pipelines.sh`\u000a- Check for remaining pipeline-top agents in the batch\u000a- Confirm stash/unstash pattern matches existing examples in the repo\u000a(e.g., ticdc pipelines)\u000a\u000a## Risk\u000a\u000aLow - This is a structural refactor that maintains the same test\u000aexecution behavior. The stash/unstash pattern is already used\u000asuccessfully in other pipelines in this repository.\u000a\u000a---------\u000a\u000aSigned-off-by: wuhuizuo <wuhuizuo@126.com>\u000a",
        "date" : "2026-06-23 07:15:47 +0000",
        "id" : "643ff17a133ff5789a9a48f094c6f45294f42c69",
        "msg" : "feat(ci): refactor tidb-test latest stage agents with serial stage",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_common_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_nodejs_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_common_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/ghpr_build/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_mysql_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/pull_mysql_test_next_gen/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_ruby_orm_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_jdbc_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_python_orm_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/ghpr_common_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_mysql_connector_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/pull_integration_jdbc_test_next_gen/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/ghpr_integration_mysql_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/pull_tiproxy_jdbc_test/pipeline.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap-qe/tidb-test/latest/ghpr_mysql_test/pipeline.groovy"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://do.pingcap.net/jenkins/user/noreply",
      "fullName" : "noreply"
    }
  ]
}