Skip to content

feat(packaging): add ROCm artifact availability + install-verify tests - #62

Draft
y1k2chaitanya wants to merge 2 commits into
mainfrom
users/kyenumul/packaging-availability
Draft

feat(packaging): add ROCm artifact availability + install-verify tests#62
y1k2chaitanya wants to merge 2 commits into
mainfrom
users/kyenumul/packaging-availability

Conversation

@y1k2chaitanya

@y1k2chaitanya y1k2chaitanya commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

New tests/e2e/packaging area covering the public ROCm/TheRock distribution (shift-left from the TMS rock_* tests). All against public CloudFront/S3 endpoints (verified HTTP 200, anonymous) documented in ROCm/rockrel and used by ROCm/TheRock/build_tools/install_rocm_from_artifacts.py.

Availability (test_rock_artifacts_available.py, hw.cpu_only):

  • test_rock_nightly_tarball_available — S3 list of therock-nightly-tarball (TMS tarball channel)
  • test_rock_pip_index_available/v2/ family list + /v2/<family>/ ROCm packages
  • test_rock_package_repo_available — prerelease deb/rpm repo base + GPG key (1002761/1002762)

Extract + verify (test_rock_install_contents.py) — verifies the extracted ROCm tree under --rock-dir has core binaries + shared libs and rocminfo runs (1002766, without re-downloading the multi-GB tarball).

pip install (test_rock_pip_install.py) — pip install rocm-sdk into a throwaway venv from the public per-family index + pip show verify (1002763).

Native package install (test_rock_native_package_install.py, gated, ci.weekly) — apt/dnf install amdrocm-<gfx> from the public prerelease repo (1002764/1002765). Destructive → skips unless ROCM_TEST_ALLOW_PKG_INSTALL=1 + root + matching distro (safe for the ephemeral e2e job container; never a shared host).

Adds layer.packaging to MARKER_SCHEMA + pyproject.toml, and a tests/e2e/packaging CATEGORY_PROFILE (hw.cpu_only, layer.packaging, ci.pr, os.linux). Family override via ROCM_TEST_ARTIFACT_GROUP (default gfx94X-dcgpu).

Provenance / OSS-safety

Only public CloudFront/S3 endpoints — no internal artifactory, no NDA payload.

Note on CI lane

These are hw.cpu_only; the nightly e2e lane collects -m "ci.nightly and hw.gpu", so a cpu/packaging lane (or marker) is needed to auto-run them — flagging for maintainer input. The e2e job already runs in an ephemeral no_rocm_image_ubuntu24_04 container, which is the right place for the pip venv + (opt-in) apt install.

Test plan

  • pytest --collect-only --no-gpu — 10 collected, markers valid, no warnings
  • Local on quanta MI325: availability 4/4, install_contents 3/3, pip_install 1/1; native install correctly skips without opt-in

@y1k2chaitanya y1k2chaitanya changed the title feat(packaging): add public ROCm artifact availability tests feat(packaging): add ROCm artifact availability + install-verify tests Jul 28, 2026
@y1k2chaitanya

Copy link
Copy Markdown
Contributor Author

CI validation — e2e-tests.yml on linux-gfx94x-MI325 (gfx942)

Ran the packaging suite in CI via helper branch users/kyenumul/packaging-ci (adds tests/e2e/packaging/ to the workflow path), tests_filters="ci.pr and hw.cpu_only", keyword_filter="rock_":

8 passed, 289 deselected in 12.60s

Run: https://github.com/ROCm/rocm-tests/actions/runs/30350274681

Test subtests
test_rock_nightly_tarball_available 1
test_rock_pip_index_available 1
test_rock_package_repo_available 2
test_rock_install_has_core_binaries / _libraries / _binary_runs 3
test_rock_pip_install_in_venv 1

The two destructive test_rock_native_package_install cases are ci.weekly (deselected here) and remain opt-in (ROCM_TEST_ALLOW_PKG_INSTALL=1 + root + matching distro).

Kept as draft pending review confirmation.

kyenumul added 2 commits July 31, 2026 01:32
New tests/e2e/packaging area (hw.cpu_only, layer.packaging) verifying the public
TheRock/rockrel distribution endpoints are reachable + populated:
- nightly tarball S3 bucket lists dist tarballs for the GPU family
- per-family nightly pip index lists ROCm packages
- prerelease deb/rpm package repo base + GPG key respond

Covers TMS rock_deb/rpm_package_availability_check + tarball/pip channels. HTTP/S3
only (no GPU, no download, no root). Adds layer.packaging to MARKER_SCHEMA +
pyproject markers. Validated 4/4 on quanta.
…-install tests

- test_rock_install_contents.py: verify the extracted ROCm tree (--rock-dir) has
  core binaries + shared libs and rocminfo runs (rock_tar_download_extract_verify).
- test_rock_pip_install.py: pip install rocm-sdk into a throwaway venv from the
  public per-family nightly index + verify (rock_pip_install_verification).
- test_rock_native_package_install.py: apt/dnf install amdrocm-<gfx> from the public
  prerelease repo; destructive + opt-in (ROCM_TEST_ALLOW_PKG_INSTALL=1 + root +
  matching distro), else skips (rock_apt_install_deb / rock_yum_install_rpm), ci.weekly.

Validated on quanta: install_contents 3/3, pip_install 1/1, native install correctly
skips without opt-in.
@y1k2chaitanya
y1k2chaitanya force-pushed the users/kyenumul/packaging-availability branch from 680b744 to 27572e4 Compare July 30, 2026 20:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants