<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>28752</buildableDurationMillis><buildableTimeMillis>28752</buildableTimeMillis><buildingDurationMillis>40970</buildingDurationMillis><executingTimeMillis>40970</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>35955</queuingDurationMillis><queuingTimeMillis>35955</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>76925</totalDurationMillis><waitingDurationMillis>7201</waitingDurationMillis><waitingTimeMillis>7201</waitingTimeMillis></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmain _class='hudson.plugins.git.util.Build'><buildNumber>1781</buildNumber><marked><SHA1>c03cda73afca32cc0e4c403622c9797cce20e55f</SHA1><branch><SHA1>c03cda73afca32cc0e4c403622c9797cce20e55f</SHA1><name>origin/main</name></branch></marked><revision><SHA1>c03cda73afca32cc0e4c403622c9797cce20e55f</SHA1><branch><SHA1>c03cda73afca32cc0e4c403622c9797cce20e55f</SHA1><name>origin/main</name></branch></revision></originmain></buildsByBranchName><lastBuiltRevision><SHA1>c03cda73afca32cc0e4c403622c9797cce20e55f</SHA1><branch><SHA1>c03cda73afca32cc0e4c403622c9797cce20e55f</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/1781/artifacts</artifactsUrl><changesUrl>https://do.pingcap.net/jenkins/blue/organizations/jenkins/seed/detail/seed/1781/changes</changesUrl><displayUrl>https://do.pingcap.net/jenkins/blue/organizations/jenkins/seed/detail/seed/1781/</displayUrl><testsUrl>https://do.pingcap.net/jenkins/blue/organizations/jenkins/seed/detail/seed/1781/tests</testsUrl></action><building>false</building><displayName>#1781</displayName><duration>40970</duration><estimatedDuration>67430</estimatedDuration><fullDisplayName>seed #1781</fullDisplayName><id>1781</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1781</number><queueId>3694116</queueId><result>SUCCESS</result><timestamp>1781664853618</timestamp><url>https://do.pingcap.net/jenkins/job/seed/1781/</url><builtOn>default-gq2z3</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>libraries/tipipeline/tests/TestComponent.groovy</affectedPath><affectedPath>libraries/tipipeline/vars/component.groovy</affectedPath><commitId>c03cda73afca32cc0e4c403622c9797cce20e55f</commitId><timestamp>1781664813000</timestamp><author><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>fix(libraries): fix script-level variable scope in component.groovy (#4693)

## Problem

PR #4573 introduced `PREBUILT_SUPPORTED_COMPONENTS` and
`PREBUILT_DENIED_BRANCH_REG` as top-level `final` variables in
`component.groovy`. In Jenkins shared libraries, top-level `final`
variables are **not** bound to the script's `Binding` object, causing
`MissingPropertyException` when accessed from functions.

**Failing job:**
https://prow.tidb.net/jenkins/job/pingcap/job/tidb/job/release-8.5/job/pull_check2/1644/

**Error:**
```
groovy.lang.MissingPropertyException: No such property: PREBUILT_SUPPORTED_COMPONENTS for class: groovy.lang.Binding
    at component.validatePreBuiltComponentParams(component.groovy:66)
```

## Root Cause

In Groovy scripts loaded as Jenkins shared libraries:
- `def var = ...` → bound to `Binding`, accessible from all functions
- `final var = ...` → local to script execution, **not** accessible from
functions

## Fix

Move the two variables into `validatePreBuiltComponentParams()` as local
variables, since they are only used in that function.

## Testing

Added unit tests for `validatePreBuiltComponentParams()`:
- Supported components on non-core branches → pass
- Unsupported components → reject
- Pre-built on core branches (master, release-X.Y, release-X.Y-beta.N,
release-nextgen-YYYYMMDD) → reject
- No pre-built params → pass

```
groovy libraries/tipipeline/tests/TestComponent.groovy
# JUnit 4 Runner, Tests: 10, Failures: 0
```
</comment><date>2026-06-17 02:53:33 +0000</date><id>c03cda73afca32cc0e4c403622c9797cce20e55f</id><msg>fix(libraries): fix script-level variable scope in component.groovy</msg><path><editType>edit</editType><file>libraries/tipipeline/tests/TestComponent.groovy</file></path><path><editType>edit</editType><file>libraries/tipipeline/vars/component.groovy</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>