<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>17955</buildableDurationMillis><buildableTimeMillis>17955</buildableTimeMillis><buildingDurationMillis>51575</buildingDurationMillis><executingTimeMillis>51575</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>25564</queuingDurationMillis><queuingTimeMillis>25564</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>77139</totalDurationMillis><waitingDurationMillis>7607</waitingDurationMillis><waitingTimeMillis>7607</waitingTimeMillis></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmain _class='hudson.plugins.git.util.Build'><buildNumber>1608</buildNumber><marked><SHA1>dd7dc0392220d9d4e4f5cb29bd7306f8118d9f62</SHA1><branch><SHA1>dd7dc0392220d9d4e4f5cb29bd7306f8118d9f62</SHA1><name>origin/main</name></branch></marked><revision><SHA1>dd7dc0392220d9d4e4f5cb29bd7306f8118d9f62</SHA1><branch><SHA1>dd7dc0392220d9d4e4f5cb29bd7306f8118d9f62</SHA1><name>origin/main</name></branch></revision></originmain></buildsByBranchName><lastBuiltRevision><SHA1>dd7dc0392220d9d4e4f5cb29bd7306f8118d9f62</SHA1><branch><SHA1>dd7dc0392220d9d4e4f5cb29bd7306f8118d9f62</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/1608/artifacts</artifactsUrl><changesUrl>https://do.pingcap.net/jenkins/blue/organizations/jenkins/seed/detail/seed/1608/changes</changesUrl><displayUrl>https://do.pingcap.net/jenkins/blue/organizations/jenkins/seed/detail/seed/1608/</displayUrl><testsUrl>https://do.pingcap.net/jenkins/blue/organizations/jenkins/seed/detail/seed/1608/tests</testsUrl></action><building>false</building><displayName>#1608</displayName><duration>51575</duration><estimatedDuration>80415</estimatedDuration><fullDisplayName>seed #1608</fullDisplayName><id>1608</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1608</number><queueId>3662908</queueId><result>SUCCESS</result><timestamp>1775817657126</timestamp><url>https://do.pingcap.net/jenkins/job/seed/1608/</url><builtOn>default-gp5f7</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tekton/v1/pipelines/pingcap-build-package-linux.yaml</affectedPath><commitId>dd7dc0392220d9d4e4f5cb29bd7306f8118d9f62</commitId><timestamp>1775817627000</timestamp><author><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>tekton: avoid dirty tidb-operator version during image builds (#4503)

## Summary
- move the package `release-dir` outside the checked-out source repo in
the linux package pipeline
- avoid creating an untracked `build/` directory inside component repos
before kaniko image builds
- fix the `tidb-operator` image version showing `-dirty` when built
through the tekton package pipeline

## Root cause
`pingcap-build-images` runs in the checked-out repo root and the
generated image build script unconditionally creates `RELEASE_WS` before
invoking kaniko. The linux package pipeline currently passes
`release-dir=build`, so the repo gets an untracked `build/` directory.
For `tidb-operator &gt;= 2.0`, image builds use `context: .` plus
`image/Dockerfile`, and the Dockerfile runs `./hack/build.sh` inside the
repo. `tidb-operator` derives `dirty` from VCS state, so the untracked
`build/` directory turns the version into `-dirty`.

## Validation
- `yq e '.' tekton/v1/pipelines/pingcap-build-package-linux.yaml
&gt;/dev/null`
- `git diff --check`
- local repro in `pingcap/tidb-operator`:
  - clean tree =&gt; clean version metadata
- creating only an untracked `build/` directory =&gt; dirty version
metadata
</comment><date>2026-04-10 10:40:27 +0000</date><id>dd7dc0392220d9d4e4f5cb29bd7306f8118d9f62</id><msg>tekton: avoid dirty tidb-operator version during image builds (#4503)</msg><path><editType>edit</editType><file>tekton/v1/pipelines/pingcap-build-package-linux.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>