Repository navigation
[TRTLLMINF-472][infra] Migrate test results to artifactory.nvidia.com - #21223
Draft
sharabeshj-nvda wants to merge 2 commits into
Draft
sharabeshj-nvda wants to merge 2 commits into
sharabeshj-nvda wants to merge 2 commits into
Conversation
sharabeshj-nvda
force-pushed
the
TRTLLMINF-472-migrate-test-results-to-aws-artifactory
branch
3 times, most recently
from
October 29, 2026 05:42
390a25f to
c7b8c5e
Compare
Collaborator
Author
|
/bot run --stage-list "A10-PyTorch-1" |
Publish build_info.txt, the packaged builds (*.tar.gz) and waive_list/ to sw-tensorrt-llm-generic-local on artifactory.nvidia.com instead of sw-tensorrt-generic on urm.nvidia.com, and read them from there first. - Readers fall back to urm only when a file is absent (HTTP 404), so builds published before the switch stay readable. A rejected credential fails fast with a message that names the credential and says that its token needs renewal or lacks the permission the request needs, and never falls back. - jenkins/scripts/fetch_build_artifact.sh is the one read helper: the pipelines, the Slurm jobs, the image build, coverage-based test selection and BOLT profile generation run it, and it checks each download's SHA-1. - LLM_ARTIFACTS_PRIMARY=urm on the Jenkins controllers returns publishing and first reads to urm without a code change. A parent pipeline passes its value to the jobs it starts. - Build reuse copies within one instance, and rebuilds when the earlier build is only on the other one. - BOLT profile generation copies its longest cluster scripts (the two bootstrap downloads and the optimized-package publish) to the Slurm login node as files and runs them with bash, instead of sending them base64-encoded on the ssh command line, where a csh login shell rejects a word that long. - CI reads these artifacts with aws-artifactory-credentials, the credential it publishes them with, in every environment that reads them, including hosts that run a pull request's code. That credential also pushes CI's container images. Container-image pulls in the test jobs and on the Slurm clusters keep trtllm-artifactory-credentials. Signed-off-by: Sharabesh Jayaraman <338298191+sharabeshj-nvda@users.noreply.github.com>
sharabeshj-nvda
force-pushed
the
TRTLLMINF-472-migrate-test-results-to-aws-artifactory
branch
from
October 29, 2026 16:45
c7b8c5e to
ced4674
Compare
Collaborator
Author
|
/bot run --stage-list "A10-PyTorch-1" |
Collaborator
|
PR_Github #81464 [ run ] triggered by Bot. Commit: |
Collaborator
|
PR_Github #81464 [ run ] completed with state |
Publish CI's test results to sw-tensorrt-llm-generic-local on artifactory.nvidia.com as well as to sw-tensorrt-generic on urm.nvidia.com, and read them from artifactory.nvidia.com first. LLM_ARTIFACTS_PRIMARY=urm returns everything to urm, with no replica. - Everything under test-results/ is still published to urm first, then replicated to artifactory.nvidia.com. A failed urm upload fails the step for a final archive or the docs preview and is only logged for the build-level rerun report, as today. A failed replica upload marks the stage unstable and logs the link to the urm copy. Checkpoints are the exception: a failed checkpoint upload, on either location, is only logged. rerun_reports/ and cbts-coverage/ go to the primary location alone. - A parallel branch next to the tests keeps each running stage's checkpoint. Credential-free scripts prepare it (progress_snapshot.sh, and progress_collect_slurm.sh for Slurm batch stages), and the Jenkins agent uploads it, so no Artifactory credential is bound while the tests run. The checkpoint is deleted from each location once the stage's final archive is uploaded. - fetch_build_artifact.sh gains --list, which lists a folder on both locations. Collect Test Result and the coverage step list the run's test-results/ and read each archive once by the read rule: from the primary location first, and from the other one when it is absent there. A failed listing or read marks the stage unstable, and three reads in a row that are rejected or fail in transfer stop the reading. A retried stage reads its earlier attempts through the same helper and marks the stage unstable when a read fails. Coverage-based test selection reads through it too, and skips a build it cannot read or declines. None of these fails the run. - Links shown to people (the Slurm job's pointer to the full output, the rerun reports, the coverage archives, and the perf record's artifact_url) point to the primary location: the native browser of artifactory.nvidia.com, or direct urm links when urm is the primary. artifact_url names the run's test-results/ folder instead of the run folder, whose outputs now span both instances. Draft only, removed before the pull request is marked ready: the design documents under specs/, the comparison of the two locations' copies in Collect Test Result, and the two probe tests under tests/integration/defs/. Signed-off-by: Sharabesh Jayaraman <338298191+sharabeshj-nvda@users.noreply.github.com>
sharabeshj-nvda
force-pushed
the
TRTLLMINF-472-migrate-test-results-to-aws-artifactory
branch
from
October 29, 2026 20:24
ced4674 to
028564b
Compare
Collaborator
Author
|
/bot run --disable-fail-fast |
Collaborator
|
PR_Github #81501 [ run ] triggered by Bot. Commit: |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Draft. Moves CI's test results from
sw-tensorrt-genericon urm.nvidia.com tosw-tensorrt-llm-generic-localon artifactory.nvidia.com, after #20494 (TRTLLM-17014) moves the build artifacts there. It covers each test stage's final and checkpoint archives, the build-level and per-stage rerun reports, the docs preview, and the post-merge coverage archives, together with every CI step that writes, lists, reads, deletes, or links them.test-results/is still published to urm first and then replicated to the same path on artifactory.nvidia.com. A failed urm upload fails the step for a final archive or the docs preview and is only logged for the build-level rerun report, as today. A failed replica upload logs the link to the urm copy and marks only its stage unstable, never the build, because an UNSTABLE sub-job counts as infra-incomplete to the parent pipeline. Checkpoints are the exception: a failed checkpoint upload, on either location, is only logged.rerun_reports/andcbts-coverage/go to the primary location alone.LLM_ARTIFACTS_PRIMARY=urmreturns everything to urm, with no replica, as it does for build artifacts.progress_upload_watcher.sh. Credential-free scripts prepare it (progress_snapshot.sh, plusprogress_collect_slurm.shfor Slurm batch stages), and the Jenkins agent uploads it, so no Artifactory credential for either location is bound while tests run. Once the stage's final archive is uploaded, the checkpoint is deleted on each location from where no test runs: the test pod'sjnlpcontainer, or a Slurm stage's dispatcher pod.jenkins/scripts/fetch_build_artifact.shgains--list, which lists a folder on both locations, because artifactory.nvidia.com rejects the anonymous index reads used today. Collect Test Result and the coverage step list the run'stest-results/and read each archive once, from the primary location first (artifactory.nvidia.com unless rolled back) and from the other when it is absent there. A failed listing or read marks the stage unstable, and after three reads in a row are rejected or fail in transfer, the remaining names are not read. A retried stage reads its earlier attempts through the same helper and marks the stage unstable when a read fails. Coverage-based test selection reads through it too, and skips a build it cannot read or declines. None of these fails the run.artifact_url) point to the primary location: artifactory.nvidia.com's native browser, or direct urm links when urm is the primary.artifact_urlnow names the run'stest-results/folder instead of the run folder, because the run's outputs now span both instances and the field holds one link.blossom-ci, keeps working from urm's copies; its own change lands before urm is retired. A follow-up change ends dual publishing before then.This branch is stacked on #20494 and carries its commit until that merges.
Draft only, removed before the PR is marked ready: the design documents under
specs/001-migrate-test-results-aws-artifactory/, the comparison of the two locations' copies in Collect Test Result, and two probe tests undertests/integration/defs/(test_no_artifactory_credentials.pyandtest_rerun_once_probe.py).Test Coverage
tests/unittest/scripts/test_fetch_build_artifact.py: the helper's--listmode and its exit codes, and that every pipeline reader defines those exit codes with the helper's values and compares against them by name.tests/unittest/scripts/test_progress_snapshot.py: the checkpoint scripts, without network or credentials.tests/unittest/scripts/cbts/test_coverage_artifact.py: coverage-based selection's archive reads through the helper, including failed and rejected downloads.tests/unittest/others/test_perf_regression_artifact_url.py: the perf record'sartifact_url.tests/unittest/scripts/test_slurm_install.py: checkpoint deletes use each location's publishing credential.On CI so far, a targeted run of
A10-PyTorch-1(L0_MergeRequest_PR #67135: 886 passed, 0 failed) uploaded its checkpoints and final archive to urm and then to artifactory.nvidia.com, and deleted the checkpoint on both. Collect Test Result then read the archive from artifactory.nvidia.com and found the same SHA-1 on both locations. Next come the default pre-merge run and runs that reach the remaining cluster and runtime combinations.PR Checklist
Please review the following before submitting your PR:
PR description clearly explains what and why. If using CodeRabbit's summary, please make sure it makes sense.
PR Follows TRT-LLM CODING GUIDELINES to the best of your knowledge.
Test cases are provided for new code paths (see test instructions)
If PR introduces API changes, an appropriate PR label is added - either
api-compatibleorapi-breaking. Forapi-breaking, includeBREAKINGin the PR title.Any new dependencies have been scanned for license and vulnerabilities
CODEOWNERS updated if ownership changes
Documentation updated as needed
Update tava architecture diagram if there is a significant design change in PR.
The reviewers assigned automatically/manually are appropriate for the PR.
Please check this after reviewing the above items as appropriate for this PR.
GitHub Bot Help
To see a list of available CI bot commands, please comment
/bot help.🤖 Generated with Claude Code