Skip to content

[CI] Remove i386 and Hexagon from CI pipeline (1)#18737

Merged
tqchen merged 3 commits intoapache:mainfrom
mshr-h:remove-i386-hexagon-ci
Feb 11, 2026
Merged

[CI] Remove i386 and Hexagon from CI pipeline (1)#18737
tqchen merged 3 commits intoapache:mainfrom
mshr-h:remove-i386-hexagon-ci

Conversation

@mshr-h
Copy link
Copy Markdown
Contributor

@mshr-h mshr-h commented Feb 9, 2026

Part of #18682

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @mshr-h, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on reducing the maintenance burden and streamlining the CI infrastructure by completely removing support for the i386 and Hexagon architectures. This involves a comprehensive cleanup across configuration files, Jenkins pipeline definitions, Docker images, and test scripts, ensuring that the project's CI system is more focused and efficient.

Highlights

  • CI Pipeline Cleanup: The continuous integration (CI) pipeline has been streamlined by removing support for the i386 and Hexagon architectures.
  • Configuration Removal: All references to i386 and Hexagon CI jobs, Docker images, and related build configurations have been purged from .asf.yaml, ci/jenkins/data.py, and ci/jenkins/docker-images.ini.
  • Jenkinsfile Updates: The generated Jenkinsfiles (ci/jenkins/generated/*.groovy) and their templates (ci/jenkins/templates/*.j2) have been updated to reflect the removal of i386 and Hexagon build and test steps, including the complete deletion of dedicated Jenkinsfiles for these platforms.
  • Docker Image and Script Deletion: The Dockerfiles (docker/Dockerfile.ci_hexagon, docker/Dockerfile.ci_i386) and associated Python integration scripts (tests/scripts/task_python_integration_i386only.sh) for i386 and Hexagon have been removed.
  • Test Infrastructure Adjustments: Tests related to i386 cross-compilation and x86 architecture checks have been updated to no longer include i386, ensuring the test suite aligns with the removed CI support.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .asf.yaml
    • Removed hexagon/pr-head and i386/pr-head from the GitHub CI configuration.
  • ci/jenkins/data.py
    • Removed ci_hexagon and ci_i386 entries, which defined their Docker image tags and platforms.
  • ci/jenkins/docker-images.ini
    • Removed ci_hexagon and ci_i386 entries, which specified their Docker image names.
  • ci/jenkins/generated/arm_jenkinsfile.groovy
    • Removed ci_i386 and ci_hexagon variable declarations and related logic.
  • ci/jenkins/generated/cpu_jenkinsfile.groovy
    • Removed ci_i386 and ci_hexagon variable declarations and related logic.
  • ci/jenkins/generated/docker_jenkinsfile.groovy
    • Removed ci_i386 and ci_hexagon variable declarations and related logic, including deployment steps for these images.
  • ci/jenkins/generated/gpu_jenkinsfile.groovy
    • Removed ci_i386 and ci_hexagon variable declarations and related logic.
  • ci/jenkins/generated/hexagon_jenkinsfile.groovy
    • Removed the entire generated Jenkinsfile for Hexagon.
  • ci/jenkins/generated/i386_jenkinsfile.groovy
    • Removed the entire generated Jenkinsfile for i386.
  • ci/jenkins/generated/lint_jenkinsfile.groovy
    • Removed ci_i386 and ci_hexagon variable declarations and related logic.
  • ci/jenkins/generated/wasm_jenkinsfile.groovy
    • Removed ci_i386 and ci_hexagon variable declarations and related logic.
  • ci/jenkins/templates/hexagon_jenkinsfile.groovy.j2
    • Removed the Jinja2 template for the Hexagon Jenkinsfile.
  • ci/jenkins/templates/i386_jenkinsfile.groovy.j2
    • Removed the Jinja2 template for the i386 Jenkinsfile.
  • ci/jenkins/templates/utils/base.groovy.j2
    • Removed ci_i386 and ci_hexagon variable declarations.
  • ci/scripts/github/github_tvmbot.py
    • Removed tvm-hexagon and tvm-i386 from the list of CI jobs that can be rerun by the bot.
  • ci/scripts/github/update_branch.py
    • Removed hexagon/branch and i386/branch from the list of expected CI jobs.
  • docker/Dockerfile.ci_hexagon
    • Removed the Dockerfile for Hexagon CI.
  • docker/Dockerfile.ci_i386
    • Removed the Dockerfile for i386 CI.
  • docker/install/ubuntu_install_rust.sh
    • Removed i386-specific host argument logic for rustup installation.
  • tests/python/ci/test_ci.py
    • Removed ci_hexagon and ci_i386 from the list of Docker images checked in CI tests.
  • tests/python/codegen/test_target_codegen_cross_llvm.py
    • Removed the build_i386 function and its invocation, eliminating i386 cross-compilation tests.
  • tests/python/codegen/test_target_codegen_x86.py
    • Modified the pytest.skip condition to no longer include i386 machines, focusing solely on x86_64.
  • tests/scripts/ci.py
    • Removed ci_i386 and ci_hexagon from the DOCKER_IMAGES set.
    • Removed the i386 command generation from the CI script.
  • tests/scripts/task_build.py
    • Removed i386-specific build logic that used make instead of cmake --build.
  • tests/scripts/task_python_integration_i386only.sh
    • Removed this script entirely.
Activity
  • The pull request was created by mshr-h.
  • The changes are part of a larger effort, as indicated by the reference to issue [Tracking Issue] Upgrade Python to 3.10 #18682.
  • Multiple Jenkinsfile generation timestamps were updated, suggesting a regeneration of CI configuration files after template modifications.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request removes i386 and Hexagon from the CI pipeline. The changes are extensive, touching many configuration files, Jenkinsfiles, Dockerfiles, and test scripts. The removals appear to be consistent and correct for the most part. I've found a critical issue in docker/install/ubuntu_install_rust.sh where a variable is used after its definition has been removed, which will break the script. I also noticed a minor issue with a trailing space in the arguments of a script call within the generated Jenkinsfiles, which should be fixed in the template for cleanliness. Overall, good work on this large cleanup task.

fi

# shellcheck disable=SC2086 # word splitting is intentional here
curl -s -S -L https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path --profile minimal --default-toolchain stable $HOST_ARG
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.

critical

The HOST_ARG variable is used here, but it's no longer defined since the logic for setting it for i386 builds has been removed. This will cause the script to fail. Please remove $HOST_ARG from this command.

Suggested change
curl -s -S -L https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path --profile minimal --default-toolchain stable $HOST_ARG
curl -s -S -L https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path --profile minimal --default-toolchain stable

if (env.DETERMINE_DOCKER_IMAGES == 'yes') {
sh(
script: "./${jenkins_scripts_root}/determine_docker_images.py ci_arm ci_cpu ci_gpu ci_hexagon ci_i386 ci_lint ci_wasm ",
script: "./${jenkins_scripts_root}/determine_docker_images.py ci_arm ci_cpu ci_gpu ci_lint ci_wasm ",
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.

medium

There's a trailing space in the script arguments. While it might not cause issues, it's better to remove it for cleanliness. This likely needs to be fixed in the template ci/jenkins/templates/utils/base.groovy.j2 and will affect all generated Jenkinsfiles.

            script: "./${jenkins_scripts_root}/determine_docker_images.py ci_arm ci_cpu ci_gpu ci_lint ci_wasm",

@mshr-h mshr-h force-pushed the remove-i386-hexagon-ci branch from 38be339 to 432f112 Compare February 9, 2026 08:08
@tqchen
Copy link
Copy Markdown
Member

tqchen commented Feb 10, 2026

note that because main requires the ci to pass, we should first have a PR to .asf.yaml to removes dep on the required tests then remove

@mshr-h
Copy link
Copy Markdown
Contributor Author

mshr-h commented Feb 10, 2026

Thanks! That’s exactly what I was wondering about 🙏

@mshr-h mshr-h force-pushed the remove-i386-hexagon-ci branch from 432f112 to 2718a78 Compare February 10, 2026 17:36
@mshr-h mshr-h force-pushed the remove-i386-hexagon-ci branch from 2718a78 to 839da1a Compare February 11, 2026 03:27
@mshr-h mshr-h force-pushed the remove-i386-hexagon-ci branch from 7df1830 to 458b544 Compare February 11, 2026 05:36
@mshr-h mshr-h marked this pull request as ready for review February 11, 2026 06:44
@mshr-h mshr-h changed the title [CI] Remove i386 and Hexagon from CI pipeline [CI] Remove i386 and Hexagon from CI pipeline (1) Feb 11, 2026
@mshr-h
Copy link
Copy Markdown
Contributor Author

mshr-h commented Feb 11, 2026

cc @tqchen @yongwww

@tqchen tqchen merged commit 6f18e4e into apache:main Feb 11, 2026
13 of 15 checks passed
@mshr-h mshr-h deleted the remove-i386-hexagon-ci branch February 11, 2026 14:33
MasterJH5574 pushed a commit that referenced this pull request Mar 18, 2026
This is a follow-up pr of #18906 

- **Removed "Unity" branding**: Replace "Apache TVM Unity" with "Apache
TVM" across all docs (Unity branch has been merged into
  main)
- **Fixed stale Python APIs**: `tvm.instrument` → `tvm.ir.instrument`,
`tvm.transform` → `tvm.ir.transform`, `tvm.module.Module` →
`tvm.runtime.Module`, `tvm.convert` → `tvm.runtime.convert`,
`tvm.runtime.load` → `tvm.runtime.load_module`
- **Fixed S-TIR migration**: `tvm.tir.transform.DefaultGPUSchedule` →
`tvm.s_tir.transform.DefaultGPUSchedule`; added missing
  `s_tir/transform` API doc page
- **Removed references to deleted features**: AutoTVM/AutoScheduler
(removed), FewShotTuning (phased out in #18864), i386 CI
(removed in #18737), VTA (removed), TensorFlow frontend (not in Relax),
MXNet/Gluon (archived)
- **Fixed stale C++ references**: `NodeRef` → `ObjectRef`, `make_node` →
`ffi::make_object`, removed unused `using
tvm::runtime::Registry`, `src/relax/transforms/` →
`src/relax/transform/`
- **Updated CI docs**: Added GitHub Actions lint workflow info to
`ci.rst`
- **Fixed broken links**: dead tutorial links in `pass_infra.rst`,
`gallery/` → `docs/how_to/tutorials/`, `how-to/index.rst` →
  `how_to/dev/index.rst`, `discuss.tvm.ai` → `discuss.tvm.apache.org`
- **Updated overview**: TensorFlow → ONNX in supported framework list,
AutoTVM → RPC in security docs
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.

2 participants