<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></action><action></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>19069</buildableDurationMillis><buildableTimeMillis>19069</buildableTimeMillis><buildingDurationMillis>119239</buildingDurationMillis><executingTimeMillis>119239</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>25191</queuingDurationMillis><queuingTimeMillis>25191</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>144430</totalDurationMillis><waitingDurationMillis>6120</waitingDurationMillis><waitingTimeMillis>6120</waitingTimeMillis></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmain _class='hudson.plugins.git.util.Build'><buildNumber>1651</buildNumber><marked><SHA1>51d44697f13ebc4ff0d8844e172280bb1270ae47</SHA1><branch><SHA1>51d44697f13ebc4ff0d8844e172280bb1270ae47</SHA1><name>origin/main</name></branch></marked><revision><SHA1>51d44697f13ebc4ff0d8844e172280bb1270ae47</SHA1><branch><SHA1>51d44697f13ebc4ff0d8844e172280bb1270ae47</SHA1><name>origin/main</name></branch></revision></originmain></buildsByBranchName><lastBuiltRevision><SHA1>51d44697f13ebc4ff0d8844e172280bb1270ae47</SHA1><branch><SHA1>51d44697f13ebc4ff0d8844e172280bb1270ae47</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'><artifactsUrl>https://do.pingcap.net/jenkins/blue/organizations/jenkins/seed/detail/seed/1651/artifacts</artifactsUrl><changesUrl>https://do.pingcap.net/jenkins/blue/organizations/jenkins/seed/detail/seed/1651/changes</changesUrl><displayUrl>https://do.pingcap.net/jenkins/blue/organizations/jenkins/seed/detail/seed/1651/</displayUrl><testsUrl>https://do.pingcap.net/jenkins/blue/organizations/jenkins/seed/detail/seed/1651/tests</testsUrl></action><building>false</building><displayName>#1651</displayName><duration>119239</duration><estimatedDuration>71508</estimatedDuration><fullDisplayName>seed #1651</fullDisplayName><id>1651</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1651</number><queueId>3674529</queueId><result>SUCCESS</result><timestamp>1777016066731</timestamp><url>https://do.pingcap.net/jenkins/job/seed/1651/</url><builtOn>default-n2jxg</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>prow-jobs/pingcap/tiflow/latest-presubmits.yaml</affectedPath><affectedPath>pipelines/pingcap/tiflow/latest/pull_dm_integration_test.groovy</affectedPath><affectedPath>pipelines/pingcap/tiflow/latest/pod-pull_dm_integration_test.yaml</affectedPath><commitId>51d44697f13ebc4ff0d8844e172280bb1270ae47</commitId><timestamp>1777016037000</timestamp><author><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>ci(tiflow): simplify dm integration test flow (#4539)

## Summary

Skip `make dm_integration_test_build` (~5-10 min) when the PR only
changes test scripts (`dm/tests/`), not Go source code. Applies to both
classic and next-gen DM integration test pipelines.

### How it works

1. **Check diff files** stage computes `needBuild` by matching changed
files against a build pattern:
   - `dm/**/*.go` (excluding `dm/tests/`) → rebuild
   - `pkg/**/*.go` → rebuild
   - `go.mod` / `go.sum` → rebuild
   - `Makefile` → rebuild
   - Everything else (test scripts, configs, SQL) → skip build

2. **Binary cache** now uses `restoreKeys` to fall back to a previous
build from the same base SHA when the exact cache key misses.

3. **Prepare stage** has three paths:
   - Cache miss (no binaries at all) → build
   - Cache hit + Go source changed (`needBuild=true`) → rebuild
- Cache hit + only test scripts changed (`needBuild=false`) → skip
build, reuse cached binaries

### Also

- Added `Check diff files` stage to the next-gen pipeline (was missing —
all PRs ran tests unconditionally).

---------

Co-authored-by: Claude Opus 4.6 (1M context) &lt;noreply@anthropic.com&gt;
Co-authored-by: wuhuizuo &lt;wuhuizuo@126.com&gt;
</comment><date>2026-04-24 07:33:57 +0000</date><id>51d44697f13ebc4ff0d8844e172280bb1270ae47</id><msg>ci(tiflow): simplify dm integration test flow (#4539)</msg><path><editType>edit</editType><file>prow-jobs/pingcap/tiflow/latest-presubmits.yaml</file></path><path><editType>edit</editType><file>pipelines/pingcap/tiflow/latest/pull_dm_integration_test.groovy</file></path><path><editType>edit</editType><file>pipelines/pingcap/tiflow/latest/pod-pull_dm_integration_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName><id>noreply</id></culprit></freeStyleBuild>