42 Commits

Author SHA1 Message Date
Tianqi Chen 5427e3c2de [CI] Remove stale GitHub automation (#19946)
Retire GitHub automation that is disabled, non-functional, unowned, or
explicitly no longer wanted, together with its orphaned support code and
tests.

This removes the optional Dependabot version-update config; automatic
team mentions and cc-review requests; last-successful and nightly branch
advancement; reviewer pings; the disabled PR-comment bot; and the unused
CI-resource upload path. Active CI, release, tvm-bot, and manual
Docker-update workflows remain, with narrower permissions and event
guards, plus refreshed issue-template and network-resource guidance.

The behavior change is intentional: reviewer requests and team routing
become manual, and the nightly and last-successful branches are no
longer advanced by this repository. Dependabot security updates remain
controlled by repository settings.
2026-07-04 22:21:10 -07:00
Shushi Hong f613161d72 [CI] Remove retired ci_lint Docker files (#19878)
Remove the retired ci_lint Docker image definition and its legacy lint
wrapper after the Jenkins matrix stopped building ci_lint in #19872.

Also remove the ci_lint entry from docker-images.ini, drop the
retired-image skip from the nightly Docker updater, and update the CI
test fixture accordingly.

Keep the temporary git_change_docker.sh ignore entries for the deleted
lint Docker files so this cleanup PR does not trigger an unnecessary
Docker image rebuild.
2026-06-25 15:40:31 -04:00
Shushi Hong d40f8bf2b0 [CI] Stop building ci_lint Docker image (#19872)
This is the first step in retiring the unused `ci_lint` Docker image.

This PR removes `ci_lint` from the generated Jenkins Docker image matrix
so new Jenkinsfiles no longer resolve, build, or deploy that image. It
also skips `ci_lint` in the nightly Docker image updater and teaches
`git_change_docker.sh` to ignore the lint Docker files that will be
removed later.

The actual lint Docker files are intentionally kept in this PR for
compatibility with the current Jenkins PR bootstrap path. Some PR Docker
jobs may still run the main-branch pipeline while reading files from the
PR checkout, and that older pipeline still passes `ci_lint` to
`determine_docker_images.py` during prepare. Keeping the files and the
temporary `docker-images.ini` entry avoids failing before the updated
generated Jenkinsfiles take effect.

A follow-up PR can delete `docker/Dockerfile.ci_lint`,
`docker/install/ubuntu_install_clang_format.sh`, `docker/lint.sh`, and
the README lint Docker example after this lands.
2026-06-23 21:34:13 -04:00
Tianqi Chen b046e69a7f [CI] Remove Jenkins PR linter step (#19798)
The Jenkins PR title/body linter is comparatively heavy and can report
false positives before the normal CI signal is available.

This removes the check_pr step from the Jenkins prepare flow and drops
the now-unused script-level test coverage.
2026-06-16 15:33:06 -04:00
Tianqi Chen daefffcace [CI][REFACTOR] Decouple data.py from Jenkins script and docker images (#19445)
## Summary

`ci/jenkins/data.py` was carrying two unrelated concerns: artifact
bundle definitions for s3 staging, and the docker image tag registry.
This PR decouples both from the Jenkinsfile-generated code, making each
concern standalone and machine-readable without Python.

## Changes

### Part 1 — Bundle refactor (`10950ac192`)

- `ci/scripts/jenkins/s3.py` gains `--bundle <name>` (repeatable) that
resolves bundle names from `ci/jenkins/data.py::files_to_stash` at
runtime; `--items` preserved for back-compat
- `ci/jenkins/templates/utils/macros.j2` `upload_artifacts` macro emits
`--bundle <name>` flags instead of inlining the file list as `--items`
- Template callsites (cpu, gpu, arm) updated to pass `bundles=[...]`
names
- Generated `.groovy` files regenerated — no `build/` paths appear in
artifact upload blocks; only bundle names

### Part 2 — Docker image registry extraction (`6df22c09b9`)

- New `ci/docker-images.ini` (one `[ci_*]` section per image) is the
single source of truth for image tags
- `docker/dev_common.sh::lookup_image_spec` reads the ini directly with
`awk` — no Python invocation
- `ci/jenkins/data.py` drops the inline `docker_images` dict; loads it
via `configparser` from the ini, preserving the same nested-dict shape
so Jinja templates and the current `s3.py` module import keep working
unchanged
- `data.py __main__` is now the bundle-resolver CLI (`python3
ci/jenkins/data.py <bundle> [...]` → file paths, one per line) — no more
dual-purpose image-name lookup branch
- `ci/scripts/jenkins/open_docker_update_pr.py` updated to read/write
`ci/docker-images.ini` instead of `data.py`

## Acceptance

```
# No build/ artifact paths in generated Jenkinsfiles (bundle names only):
grep -rn "build/lib\|build/cpptest" ci/jenkins/generated/   # → nothing

# generate.py is byte-identical after the change:
python3 ci/jenkins/generate.py  # → "no changes made" for all 5 groovy files

# dev_common.sh resolves same tag as before:
bash -c 'source docker/dev_common.sh && lookup_image_spec ci_cpu'
# → tlcpack/ci-cpu:20251130-061900-c429a2b1
```
2026-04-25 19:22:27 -04:00
Tianqi Chen 33dcea1686 [REFACTOR][LINT] Modernize ruff config (#18810)
This PR removes the extra lint violations from the codebase so lint
aligns with the latest style
2026-02-23 07:29:21 -05:00
Tianqi Chen aa2e609136 [LINT] Modernize lint to use pre-commit hooks (#18807)
This PR migrates existing lint to use pre-commit hooks
2026-02-22 11:03:21 -05:00
Masahiro Hiramori 6f18e4ef77 [CI] Remove i386 and Hexagon from CI pipeline (1) (#18737)
Part of #18682
2026-02-11 08:54:45 -05:00
Florin Blanaru 227c4e87f3 [CI] Update the expected CI jobs list in the update_branch script (#14908) 2023-05-26 17:33:06 -04:00
driazati c5b8ab2307 [ci][docker] Read docker image tags during CI runs (#13572)
Hardcoding the Docker images in the Jenkinsfiles has the downside that only trusted changes are actually run in CI. Since Docker image updates are pretty frequent, this makes for a pretty bad UX (e.g. CI runs but doesn't actually test the PR). The fix here makes it so the images are read from a different file during CI execution so updates from anyone are picked up.

This PR eliminates the need to use the batch jobs in Jenkins to update Docker images. Docker images are built as part of post-merge CI on `main` and anyone can trigger a validation run by filing a PR with changed Docker tags.
2022-12-08 16:08:51 -08:00
driazati 9374738b29 [ci] Split Jenkinsfile into platform-specific jobs (#13300)
This breaks up the Jenkinsfile into ones for GPU, CPU, etc. This removes a false dependency between the build and test steps (e.g. before the GPU tests had to wait on the Hexagon build to complete) and makes the Jenkins UI a bit better since there's not 30 tests to scroll through to find a failure. An example can be found in my fork here: https://github.com/driazati/tvm/pull/38 in the checks box. Before this is merged https://github.com/tlc-pack/ci/blob/main/jenkins/jenkins-jobs/prod/tvm.yaml will need to be updated to accept webhooks from apache/tvm instead of my fork.

See #13337 for more context
2022-12-06 13:52:31 -08:00
Florin Blanaru 5a767d053d [CI] Separate the ci scripts into Github and Jenkins scripts (#13368)
This PR is a duplicate of #12940 and #12941. For some reason, I am unable to reopen #12940.
2022-11-14 09:32:12 -08:00
Florin Blanaru b8384d105b [ci] Assert some tests are not skipped in the CI (#12915)
In this PR, the skipped tests script will also check if tests in the `required_tests_to_run.json` have not been skipped. If there are skipped tests, they will be added to the returned comment. 

I am not entirely sure where it's best to place the `required_tests_to_run` file, so I left it in `tvm/ci/scripts/`. I am happy to take suggestions.

Aims to prevent situations such as #12529
2022-11-12 17:09:10 -07:00
driazati d9f7cf3539 Revert "[ci] Lint PR title/body for @ tags (#12840)" (#12848)
This reverts commit ecd003c742.

The check needs to ignore @ s in some cases, such as within code blocks.
2022-09-20 17:48:23 +01:00
driazati ecd003c742 [ci] Lint PR title/body for @ tags (#12840)
This ensures that no users are tagged directly in PR titles or
descriptions, which lets us finally turn this on
https://github.blog/changelog/2022-08-23-new-options-for-controlling-the-default-commit-message-when-merging-a-pull-request/
2022-09-20 08:10:59 -07:00
driazati e037ae4992 [ci] Add bot to post welcome comment (#12695)
This would post the comment that the tests bot and the docs comment bot
uses straightaway when a PR is posted. This will contain links to
generic info about posting PRs (and obviate the
`.github/PULL_REQUEST_TEMPLATE.md`) as well as dynamic info about the
specific PR (filled in later by the respective bots). This would make
things like the auto-cc bot more transparent since it would have a link
to the relevant issue.

Tested live here: https://github.com/driazati/tvm/pull/21#issuecomment-1236019529
2022-09-16 13:29:57 -07:00
driazati 5b43c62ee6 [ci] Remove author check from ping bot (#12788)
This has been working fine for a while, this code opens it up so it's
not limited to the authors in #9983.

Co-authored-by: driazati <driazati@users.noreply.github.com>
2022-09-15 15:43:33 -07:00
driazati 4ed6564f76 [ci] Add tests for PR linter (#12680)
This adds some checks for the current usages of the PR linter and fixes the case where the script would error uncleanly when a PR body was `null`.
2022-09-02 15:01:22 -07:00
driazati 7c7b0f7a2f [ci][tvmbot] Trigger GitHub Actions after merging (#12361)
This fixes the issue where merging from GitHub Actions (i.e. with the default `GITHUB_TOKEN`) doesn't trigger post merge GitHub Actions on the commit it creates in `main`. Instead these jobs are triggered manually by a call to the Actions API after the merge has taken place.

This also updates the tvmbot testing code (and by extension some of the other CI testing code) to remove the fixtures for each test in favor of constructing them from a single sample at runtime, this makes it a lot easier to add new tests and see what is different between each data sample and clean up the testing anti-patterns that were there before (e.g. `run()` instead of `pytest.mark.parameterize`, but none of the tests in `test_ci.py` have changed)

Tested in https://github.com/driazati/tvm/pull/36 which ran https://github.com/driazati/tvm/actions/runs/2881047903
2022-09-02 09:44:22 -07:00
driazati 5287d8f11e [ci] Move non-task CI scripts into ci/ folder (#12609)
[CI] Update Hexagon image to install boost (#12613)

The new image has xgboost installed, which I need for https://github.com/apache/tvm/pull/12587

Validated in https://ci.tlcpack.ai/blue/organizations/jenkins/tvm/detail/ci-docker-staging/279/pipeline

Co-authored-by: masahi <masahi129@gmail.com>
2022-08-30 11:51:12 -07:00
Florin Blanaru 56b7c8ae96 [CI] Assert some unittests are not skipped in CI (#12436)
This PR adds a script that does a diff of skipped tests between the latest successful build on the main and the current branch. Then, it posts a comment with the report on the open PR. 

#11670
2022-08-25 08:43:06 -07:00
Andrew Reusch 25c4a73b1d Add ci_riscv image, update all to 20220810-060142-fae79bbc3. (#12369) 2022-08-15 09:58:29 -07:00
Florin Blanaru 52152e0be6 Build and test TVM under minimal configuration (#12178)
This PR builds and tests TVM (running the CPP and unittests) under minimal configuration with some debug flags enabled:
- `USE_RELAY_DEBUG=ON` in TVM
- `-Wp,-D_GLIBCXX_ASSERTIONS` in TVM
- `-DLLVM_ENABLE_ASSERTIONS=ON` in LLVM

It also adds this configuration to the CI. 

`tests/python/unittest/test_meta_schedule_task_scheduler.py::test_meta_schedule_task_scheduler_multiple_gradient_based` results in an array OOB access and a segfault due to `D_GLIBCXX_ASSERTIONS`. I disable this test for now and will open an issue to solve it ASAP.

It should fix #11932 and address [this discussion](https://discuss.tvm.apache.org/t/pre-rfc-new-ci-container-ci-cpu-asserts/12536/9).
2022-08-11 11:25:28 -07:00
Mehrdad Hessar 2249256cef [microTVM][CI] Rename ci_qemu to ci_cortexm (#12281)
* rename files

* ci script

* demo

* RVM files

* jenkins

* more ci

* Jenkins

* fake name for ci_cortexm

* merge with main

* add cortexm config file
2022-08-05 14:13:34 -07:00
driazati 465b579e3b [ci][docker] Use RFC image tags only (#11938)
This ignores image names like `123-123-abc-validated`

Co-authored-by: driazati <driazati@users.noreply.github.com>
2022-07-27 15:08:42 -07:00
Florin Blanaru 288b983b82 [CI] Skip some additional tests that are failing in the wheel (#11969)
This PR skips some additional tests that are failing in the nightly wheel.
2022-06-30 12:50:21 -07:00
Florin Blanaru 54f8176b47 [CI] Docs bot now edits previous comments (#11909)
This PR improves the docs bot to edit a previous comment instead of making new comments.

Fixes #11837
2022-06-28 21:36:29 -07:00
driazati 688b0825e2 [ci][docker] Regenerate Jenkinsfile on each run (#11886)
This makes it so the generated PRs pass CI

Co-authored-by: driazati <driazati@users.noreply.github.com>
2022-06-28 09:50:08 -07:00
driazati ce77d20c46 [ci] Allow skip tag anywhere in PR title (#11714) 2022-06-28 08:49:35 +01:00
driazati 0d14519e14 [ci] Enable pylint for tests/python/ci (#11666)
This fixes up the pylint issues as part of #11414 for the CI tests
2022-06-23 14:18:35 -07:00
driazati c42ef79d1e [ci][docker] Send a PR to bump the Docker images nightly (#11813)
See #11768 for details

This adds a GitHub Action to check for the latest images on Docker Hub via the Docker API and update the `Jenkinsfile` accordingly. It sends this in as PR for a committer to review and merge.

Co-authored-by: driazati <driazati@users.noreply.github.com>
2022-06-23 11:57:07 -07:00
driazati 6660e27e71 [ci][docker] Fall back to tlcpackstaging if images don't exist (#11775)
See #11768. This adds a script to check if Docker images exist in `tlcpack` and switch to `tlcpackstaging` if not (the tags must match though). There is also a feature flag for this in jenkins in the `DETERMINE_DOCKER_IMAGES` env variable (which must be set to `yes` for this change to work)
2022-06-23 11:35:57 -07:00
Florin Blanaru 03ed04e6a9 [CI] Amend docs bot comment (#11836)
This PR fixes the docs bot comment message.
2022-06-22 17:16:21 -07:00
Florin Blanaru a64368be0e [ci] Skip failing tests in wheel (#11705)
Some python tests are failing in the wheel. This PR skips them if the environment variable `WHEEL_TEST` is set.

This PR is related to https://github.com/tlc-pack/tlcpack/pull/115.
2022-06-15 11:16:25 -07:00
Florin Blanaru 3eb372e26f [CI] add GH workflow to comment with link to docs (#11594) 2022-06-15 10:02:46 +01:00
driazati 6d557ffae2 [ci] Rebuild Docker images if necessary (#11329)
This rebuilds Docker images and uses them in later stages in the same build. If the build is running on `main`, then the images are uploaded to Docker Hub automatically once the run is complete. Images are always rebuilt, but Docker Hub functions as a cache. If there have been no changes to `docker/` since the last available hash on Docker Hub, then the build will just use the images from Hub.
2022-06-09 23:01:48 +01:00
driazati ce60bfa0ff [ci] Add filter to teams (#11455)
This improves the parsing to avoid issues like in #11454

commit-id:53a06ab3

Co-authored-by: driazati <driazati@users.noreply.github.com>
2022-06-01 15:16:09 -07:00
Florin Blanaru 553eb1acd0 [tests] add utility to replace direct call to pytest.main (#11393) 2022-05-23 11:52:22 -07:00
driazati 5ca528c847 [skip ci][ci] Fix stale test in teams tagging (#10920)
This is failing in `main` but as of 8e438683a4 it's not used anymore

Co-authored-by: driazati <driazati@users.noreply.github.com>
2022-04-06 13:38:05 -07:00
driazati 60c766f96a [ci] Look for any tags in issues before adding new tags (#10685)
Previously this searched for a specific `cc @abc` line by itself before looking for people to tag. This led to a double-tag in #10679. The change here updates it to check for `@`-ed people anywhere in the PR/issue body and filters those out.
2022-04-06 11:01:47 +01:00
driazati 9705b146fa [ci] Check existing reviews and requested reviews before cc-ing (#10734)
This will re-request reviews from existing reviewers as in #10714 which is not intended, so this lists out existing reviews/requests and filters the new reviews to add based on those usernames.

cc @areusch

Co-authored-by: driazati <driazati@users.noreply.github.com>
2022-03-24 13:29:32 -07:00
Mehrdad Hessar ed6e7c07a5 [microTVM] Enable micro tvmc tutorial testing in CI (#10555)
* Add script convertor

* Address comments: added test

* address comments
2022-03-16 14:38:33 -07:00