Skip to content

Migrate Jenkins CI images to Ubuntu 24.04 / ROCm 7.2.4#2416

Merged
causten merged 7 commits into
developfrom
users/umayadav/ubuntu24-rocm724
Jun 23, 2026
Merged

Migrate Jenkins CI images to Ubuntu 24.04 / ROCm 7.2.4#2416
causten merged 7 commits into
developfrom
users/umayadav/ubuntu24-rocm724

Conversation

@umangyadav

@umangyadav umangyadav commented Jun 22, 2026

Copy link
Copy Markdown
Member

Motivation

The MIGraphX nightly stage (rocm/mlir-migraphx-ci) builds tip-of-develop MIGraphX against dependencies baked into the CI image. MIGraphX develop recently started requiring a newer ROCm/rocm-cmake toolchain (e.g. rocm_add_version_resource from a bumped rocm-cmake), so the CI base image needs to be refreshed. This PR migrates the Jenkins CI images to Ubuntu 24.04 (noble) and ROCm 7.2.4, and makes the migraphx-ci image track the same base.

Technical Details

  • mlir/utils/jenkins/Dockerfile (main rocm/mlir image):

    • Base bumped ubuntu:22.04 (jammy) -> ubuntu:24.04 (noble); ROCM_BUILD_NAME jammy -> noble.
    • ROCM_VERSION 7.2 -> 7.2.4.
    • Added ENV PIP_BREAK_SYSTEM_PACKAGES=1. Ubuntu 24.04 enables PEP 668 (externally-managed environment), which blocks the system-wide pip installs this image intentionally performs.
    • Use pip install --upgrade --ignore-installed pip to avoid uninstall conflicts with the distro-managed pip on 24.04.
    • Replaced the now-archived google/llvm-premerge-checks remote requirements.txt fetch with a local pinned copy (static-checks/requirements.txt).
  • mlir/utils/jenkins/static-checks/requirements.txt (new): local pin of the premerge-checks Python deps (GitPython, pathspec, unidiff).

  • mlir/utils/jenkins/Dockerfile.migraphx-ci:

    • Introduced ARG ROCM_BASE_TAG=rocm7.2 and pin FROM rocm/mlir:${ROCM_BASE_TAG}-latest. The base image is published with a major.minor tag only (build-dockerfile.sh derives rocm${major}.${minor}), so interpolating the full patch version would resolve to a non-existent rocm7.2.4-latest tag.
    • ARG ROCM_VERSION 7.2 -> 7.2.4, and derive ROCM_PATH=/opt/rocm-${ROCM_VERSION} (the versioned /opt/rocm-7.2.4 directory exists in the 7.2.4 base image).
    • Bumped onnx 1.14.1 -> 1.17.0. The Ubuntu 24.04 base ships Python 3.12, for which onnx==1.14.1 has no prebuilt wheel; pip falls back to a source build that fails with Protobuf compiler not found. 1.17.0 matches MIGraphX's own tools/requirements-py.txt pin for python_version>=3.11 and has a prebuilt cp312 wheel.

The rocm7.2-tagged images (referenced in Jenkinsfile, Jenkinsfile.downstream, Jenkinsfile.release, and .github/workflows/ci.yml) are unchanged, since the tag scheme keys off major.minor. The image rebuild is auto-triggered by build-dockerfile.sh because Dockerfiles changed.

Both images were built and validated locally: the base rocm/mlir:rocm7.2-latest builds clean, and the migraphx-ci image builds with onnx 1.17.0 / onnxruntime 1.27.0 on Python 3.12.3.

Changelog Category

  • Not Applicable: Internal CI image change.

Made with Cursor

umangyadav and others added 4 commits June 22, 2026 12:46
Move the Jenkins CI Docker image from Ubuntu 22.04 (jammy) to 24.04
(noble) and bump ROCm from 7.2 to the 7.2.4 point release.

Ubuntu 24.04 ships Python 3.12 with PEP 668 enabled. Opt out of the
externally-managed guard, force a clean pip self-upgrade, and relax the
stale lxml==4.5.2 pin from the upstream llvm-premerge-checks
requirements (no 3.12 wheel, and unused by our static checks).

Co-authored-by: Cursor <cursoragent@cursor.com>
google/llvm-premerge-checks was archived in Sep 2025 when LLVM moved
premerge CI to GitHub Actions (infra now in llvm/llvm-zorg and
llvm/llvm-project/.ci); there is no equivalent of its
scripts/requirements.txt. Our static-checks/premerge-checks.py is a
self-contained copy of those scripts and only needs GitPython, pathspec,
and unidiff, so pin them in a local static-checks/requirements.txt and
COPY it into the CI image instead of fetching the archived file at build
time. This also removes the stale lxml==4.5.2 pin that has no Python
3.12 wheel.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Align Dockerfile.migraphx-ci with the main CI image (Ubuntu 24.04 /
ROCm 7.2.4) by setting ARG ROCM_VERSION=7.2.4. The base rocm/mlir image
is published with a major.minor tag only (see build-dockerfile.sh), so
the FROM line is pinned to rocm7.2-latest rather than interpolating the
patch version, which would resolve to a non-existent tag.

Co-authored-by: Cursor <cursoragent@cursor.com>
@umangyadav umangyadav requested a review from causten as a code owner June 22, 2026 18:27
The Ubuntu 24.04 base ships Python 3.12, for which onnx==1.14.1 has no
prebuilt wheel; pip falls back to a source build that fails with
"Protobuf compiler not found". Bump to onnx==1.17.0, matching MIGraphX's
own tools/requirements-py.txt pin for python_version>=3.11 (prebuilt
cp312 wheel, no protobuf toolchain needed).

Also make the base image tag a build arg (ROCM_BASE_TAG=rocm7.2) instead
of dropping the patch version inline, and derive ROCM_PATH from
ROCM_VERSION (/opt/rocm-7.2.4 exists in the 7.2.4 base image).

Co-authored-by: Cursor <cursoragent@cursor.com>
@umangyadav umangyadav added the claude-review Trigger automated PR review by claude[bot]; auto-removed after the run. label Jun 22, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Jenkins CI Docker images used by rocMLIR (and the MIGraphX nightly stage) to a newer OS/toolchain baseline so MIGraphX develop can build against updated ROCm/rocm-cmake tooling.

Changes:

  • Bump Jenkins base image to Ubuntu 24.04 (noble) and ROCm 7.2.4, including a pip/PEP-668 workaround for system installs.
  • Migrate MIGraphX CI image to track the major.minor-tagged base image while still using the full ROCm patch version path, and bump onnx for Python 3.12 wheels.
  • Vendor a local, pinned static-checks Python requirements file instead of fetching from the archived upstream location.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
mlir/utils/jenkins/Dockerfile Updates base OS/ROCm version and adjusts pip behavior for Ubuntu 24.04; switches static-checks deps to a local requirements file.
mlir/utils/jenkins/Dockerfile.migraphx-ci Decouples base image tag from patch version, updates ROCm path/version, and bumps onnx to a Python 3.12-compatible wheel version.
mlir/utils/jenkins/static-checks/requirements.txt Adds a local pinned dependency set for static-checks/premerge-checks.py.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +6 to 8
ARG ROCM_VERSION=7.2.4
ARG ROCM_PATH=/opt/rocm-${ROCM_VERSION}

@rocmlir-pr-reviewer rocmlir-pr-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE -- submitted as COMMENT (automated reviews are advisory)  ·  Findings: 0 (0 Critical, 0 Major, 0 Minor)


Scope

Migrates the Jenkins CI Docker images to Ubuntu 24.04 (noble) / ROCm 7.2.4. Touches mlir/utils/jenkins/Dockerfile (base bump, PEP 668 opt-out, local pinned premerge-checks requirements), Dockerfile.migraphx-ci (base-tag arg, versioned ROCM_PATH, onnx 1.17.0 bump), and adds static-checks/requirements.txt.

Findings

No blocking issues found.

Notes

  • Verified the central design claim against mlir/utils/jenkins/build-dockerfile.sh:45-48: the tag is derived from ^ARG ROCM_VERSION= via cut -d. -f1/f2, yielding rocm7.2. Keeping ROCM_BASE_TAG=rocm7.2 separate from the full ROCM_VERSION=7.2.4 is therefore correct and avoids resolving to a non-existent rocm7.2.4-latest tag.
  • Dockerfile.migraphx-ci sets ROCM_PATH=/opt/rocm-7.2.4 and CMAKE_PREFIX_PATH=${ROCM_PATH}, but line 23 still invokes /opt/rocm/llvm/bin/clang++. This relies on the conventional /opt/rocm -> /opt/rocm-7.2.4 symlink existing in the base image; the PR description states both paths were validated locally, so not flagged as blocking.
  • onnxruntime remains unpinned (pre-existing); the PR notes 1.27.0 was the resolved/validated version. Consider pinning it in a follow-up for reproducibility, but this is out of scope here.
  • Replacing the now-archived google/llvm-premerge-checks remote fetch with a local pinned copy improves build reproducibility. Pins are sensible and the new file has a correct trailing newline.

CI status

No non-self CI checks are currently in a fail/cancel state; premerge and Python checks are still in progress at review time.

@rocmlir-pr-reviewer rocmlir-pr-reviewer Bot removed the claude-review Trigger automated PR review by claude[bot]; auto-removed after the run. label Jun 22, 2026
@codecov

codecov Bot commented Jun 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #2416      +/-   ##
===========================================
+ Coverage    82.57%   82.65%   +0.09%     
===========================================
  Files          120      120              
  Lines        42852    42828      -24     
  Branches      7110     7106       -4     
===========================================
+ Hits         35381    35399      +18     
+ Misses        4815     4797      -18     
+ Partials      2656     2632      -24     
Flag Coverage Δ
gfx120x 82.57% <ø> (+0.05%) ⬆️
gfx950 82.40% <ø> (+0.05%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 28 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@umangyadav umangyadav force-pushed the users/umayadav/ubuntu24-rocm724 branch from ba59b3b to 5365176 Compare June 23, 2026 13:45
@umangyadav umangyadav requested a review from dhernandez0 June 23, 2026 13:49
@causten causten merged commit d2dcfb0 into develop Jun 23, 2026
6 of 17 checks passed
@causten causten deleted the users/umayadav/ubuntu24-rocm724 branch June 23, 2026 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants