{
  "_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" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 19069,
      "buildableTimeMillis" : 19069,
      "buildingDurationMillis" : 119239,
      "executingTimeMillis" : 119239,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 6120,
      "waitingTimeMillis" : 6120
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/main" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1651,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "51d44697f13ebc4ff0d8844e172280bb1270ae47",
            "branch" : [
              {
                "SHA1" : "51d44697f13ebc4ff0d8844e172280bb1270ae47",
                "name" : "origin/main"
              }
            ]
          },
          "revision" : {
            "SHA1" : "51d44697f13ebc4ff0d8844e172280bb1270ae47",
            "branch" : [
              {
                "SHA1" : "51d44697f13ebc4ff0d8844e172280bb1270ae47",
                "name" : "origin/main"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "51d44697f13ebc4ff0d8844e172280bb1270ae47",
        "branch" : [
          {
            "SHA1" : "51d44697f13ebc4ff0d8844e172280bb1270ae47",
            "name" : "origin/main"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/PingCAP-QE/ci.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#1651",
  "duration" : 119239,
  "estimatedDuration" : 71508,
  "executor" : None,
  "fullDisplayName" : "seed #1651",
  "id" : "1651",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 1651,
  "queueId" : 3674529,
  "result" : "SUCCESS",
  "timestamp" : 1777016066731,
  "url" : "https://do.pingcap.net/jenkins/job/seed/1651/",
  "builtOn" : "default-n2jxg",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "prow-jobs/pingcap/tiflow/latest-presubmits.yaml",
          "pipelines/pingcap/tiflow/latest/pull_dm_integration_test.groovy",
          "pipelines/pingcap/tiflow/latest/pod-pull_dm_integration_test.yaml"
        ],
        "commitId" : "51d44697f13ebc4ff0d8844e172280bb1270ae47",
        "timestamp" : 1777016037000,
        "author" : {
          "absoluteUrl" : "https://do.pingcap.net/jenkins/user/noreply",
          "fullName" : "noreply"
        },
        "authorEmail" : "noreply@github.com",
        "comment" : "ci(tiflow): simplify dm integration test flow (#4539)\u000a\u000a## Summary\u000a\u000aSkip `make dm_integration_test_build` (~5-10 min) when the PR only\u000achanges test scripts (`dm/tests/`), not Go source code. Applies to both\u000aclassic and next-gen DM integration test pipelines.\u000a\u000a### How it works\u000a\u000a1. **Check diff files** stage computes `needBuild` by matching changed\u000afiles against a build pattern:\u000a   - `dm/**/*.go` (excluding `dm/tests/`) → rebuild\u000a   - `pkg/**/*.go` → rebuild\u000a   - `go.mod` / `go.sum` → rebuild\u000a   - `Makefile` → rebuild\u000a   - Everything else (test scripts, configs, SQL) → skip build\u000a\u000a2. **Binary cache** now uses `restoreKeys` to fall back to a previous\u000abuild from the same base SHA when the exact cache key misses.\u000a\u000a3. **Prepare stage** has three paths:\u000a   - Cache miss (no binaries at all) → build\u000a   - Cache hit + Go source changed (`needBuild=true`) → rebuild\u000a- Cache hit + only test scripts changed (`needBuild=false`) → skip\u000abuild, reuse cached binaries\u000a\u000a### Also\u000a\u000a- Added `Check diff files` stage to the next-gen pipeline (was missing —\u000aall PRs ran tests unconditionally).\u000a\u000a---------\u000a\u000aCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\u000aCo-authored-by: wuhuizuo <wuhuizuo@126.com>\u000a",
        "date" : "2026-04-24 07:33:57 +0000",
        "id" : "51d44697f13ebc4ff0d8844e172280bb1270ae47",
        "msg" : "ci(tiflow): simplify dm integration test flow (#4539)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "prow-jobs/pingcap/tiflow/latest-presubmits.yaml"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap/tiflow/latest/pull_dm_integration_test.groovy"
          },
          {
            "editType" : "edit",
            "file" : "pipelines/pingcap/tiflow/latest/pod-pull_dm_integration_test.yaml"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://do.pingcap.net/jenkins/user/noreply",
      "fullName" : "noreply"
    }
  ]
}