hello-stephen opened a new pull request, #70515:
URL: https://github.com/apache/doris/pull/70515

   ### Background
   
   PR comments submit TeamCity jobs through a shared shell helper. Compile 
publishes a binary/case package pair and dispatches P0, CloudP0, VaultP0, 
External and NonConcurrent with an immutable artifact binding.
   
   ### What problem does this PR solve?
   
   Issue Number: None
   Related PR: #70486 (superseded Performance trigger policy)
   PR Type: Bugfix
   
   Problem Summary:
   
   Direct regression comments supplied only the PR number and target branch, 
leaving artifact dependencies to resolve the default `UNBOUND` build number 
before any runner could execute. Resolve and validate an existing successful 
Compile before submitting any of the five regression consumers. `run buildall` 
selects only FEUT, BEUT, CloudUT, Compile and master-only Performance; Compile 
remains responsible for regression fanout. Missing or invalid packages fail the 
comment workflow and the requested `TeamCity/<lane>` status without scheduling 
another Compile.
   
   ### Details
   
   - **Change map:** Approximately 180 added production lines in the shared 
shell helper and a pure Python manifest validator, workflow condition changes, 
and approximately 170 added test lines. The validator preserves all 43 
parameters used by the existing Compile fanout, including legacy aliases used 
by different regression runners.
   - **Frequency:** Every direct regression request using an unbound 
configuration can fail before its first build step.
   - **Root cause:** Artifact resolution occurs before runner-side lookup could 
supply the missing producer number and manifest/source pins.
   - **Why existing tests missed it:** They explicitly expected regressions to 
enqueue with only PR parameters and did not model pre-run artifact resolution.
   - **Fix:** Search successful finished Compiles for the requested PR/head, 
refresh producer state, validate manifest PR/head/target, package presence and 
sizes, expiry, source integrity and checksums, then submit only the requested 
consumer. Pin the compiled base and merge from that manifest; target-branch 
advancement does not silently substitute a different package. Recheck the live 
PR before each submission and verify returned parameters. Pagination, request 
failures, canceled producers and missing artifacts fail closed; there is no 
automatic Compile or latest-other-revision fallback.
   - **Other paths and branches:** Apply the same binding to P0, CloudP0, 
VaultP0, External and NonConcurrent. Performance is independent of these 
artifacts and is selected by `buildall` only for master. Existing file filters 
remain for independent jobs and Compile; explicit regression requests check/run 
their artifacts instead of reporting an unrelated-file skip. Existing Compile 
fanout and `skip buildall` behavior remain intact.
   - **Behavior change:** Direct requests without usable packages report a 
failure immediately, without creating an unbound TeamCity build. Repeat counts 
retain the same verified producer and never create a Compile dependency.
   
   ### Testing
   
   - `python3 -m unittest discover -s regression-test/pipeline/common/tests -p 
test_teamcity_utils.py -q`: 36 tests passed locally. Coverage includes all 
command/branch combinations, all five consumers, repeat requests, 
missing/wrong/stale/incomplete packages, pagination, producer state changes, 
PR-head changes, readback mismatch, status reporting and credential tracing.
   - Three new regression tests fail on the original helper/workflow and pass 
with this change: dispatch selection, complete artifact binding, and 
missing-Compile failure without enqueue.
   - `actionlint .github/workflows/comment-to-trigger-teamcity.yml`, 
`shellcheck -S warning regression-test/pipeline/common/teamcity-utils.sh`, 
`bash -n regression-test/pipeline/common/teamcity-utils.sh`, and `git diff 
--check` passed.
   - Read-only validation against an actual successful Compile selected the 
expected producer and generated all 43 parameters identically to its existing 
automatic regression fanout. All five consumer configurations currently have no 
static snapshot dependencies.
   - No live configuration was changed and no TeamCity build was submitted for 
this PR. End-to-end comment-trigger validation requires the trusted 
workflow/helper to be merged.
   
   ### Release note
   
   None
   
   ### Check List (For Author)
   
   - Behavior changed: Yes (see Details)
   - Does this need documentation: No
   - Pre-submission status: Partially verified: local tests and read-only live 
contract checks passed; post-merge comment-trigger execution remains to be 
validated.
   
   ### AI Disclosure
   
   - Tool: OpenAI Codex
   - Generated: Code changes, tests and this description.
   - Human review: Pending maintainer review.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to