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]
