diff --git a/ci/README.md b/ci/README.md
index 2cb915e70207..2f67e590f69a 100644
--- a/ci/README.md
+++ b/ci/README.md
@@ -27,7 +27,7 @@ TVM project in a healthy state and preventing breakages. CI in TVM is broken int
- Definitions of test suites, with each suite defined as a separate `task_` script in
[`tests/scripts`](../tests/scripts).
- Scripts and automation [`ci/scripts`](../ci/scripts).
- - The linux test sequence (in [`Jenkinsfile`](../Jenkinsfile)), which lints and builds TVM and runs test
+ - The linux test sequence (in [`Jenkinsfile`](../ci/jenkins/templates/)), which lints and builds TVM and runs test
suites using Docker on Linux.
- The Windows and Mac test sequences (in [`.github/actions`](../.github/actions)).
- GitHub Actions that support the code review process (in [`.github/actions`](../.github/actions)).
@@ -66,21 +66,21 @@ https://github.com/apache/tvm/actions has the logs for each of these workflows.
Each CI job runs most of its work inside a Docker container, built from files
in the [`docker/`](../docker) folder. These
-files are built nightly in Jenkins via the [docker-images-ci](https://ci.tlcpack.ai/job/docker-images-ci/>) job.
-The images for these containers are hosted in the [tlcpack Docker Hub](https://hub.docker.com/u/tlcpack>)
-and referenced in the [`Jenkinsfile.j2`](Jenkinsfile.j2). These can be inspected and run
+files are built nightly in Jenkins via the [docker-images-ci](https://ci.tlcpack.ai/job/docker-images-ci/) job.
+The images for these containers are hosted in the [tlcpack Docker Hub](https://hub.docker.com/u/tlcpack)
+and referenced in the [`jenkins/templates`](/ci/jenkins/templates/). These can be inspected and run
locally via standard Docker commands.
### `ci-docker-staging`
-The [ci-docker-staging](https://github.com/apache/tvm/tree/ci-docker-staging>)
+The [ci-docker-staging](https://github.com/apache/tvm/tree/ci-docker-staging)
branch is used to test updates to Docker images and `Jenkinsfile` changes. When
running a build for a normal PR from a forked repository, Jenkins uses the code
from the PR except for the `Jenkinsfile` itself, which comes from the base branch.
When branches are built, the `Jenkinsfile` in the branch is used, so a committer
with write access must push PRs to a branch in apache/tvm to properly test
`Jenkinsfile` changes. If your PR makes changes to the `Jenkinsfile`, make sure
-to @ a [committer](../CONTRIBUTORS.md>)
+to @ a [committer](/CONTRIBUTORS.md)
and ask them to push your PR as a branch to test the changes.
# Jenkins CI
@@ -88,11 +88,11 @@ and ask them to push your PR as a branch to test the changes.
TVM uses Jenkins for running Linux continuous integration (CI) tests on
[branches](https://ci.tlcpack.ai/job/tvm/) and
[pull requests](https://ci.tlcpack.ai/job/tvm/view/change-requests/) through a
-build configuration specified in a [`Jenkinsfile`](../Jenkinsfile).
+build configuration specified in a [`Jenkinsfile`](/ci/jenkins/templates/).
Other jobs run in GitHub Actions for Windows and MacOS jobs.
## `Jenkinsfile`
-The template files in this directory are used to generate the [`Jenkinsfile`](../Jenkinsfile) used by Jenkins to run CI jobs for each commit to PRs and branches.
+The template files in this directory are used to generate the [`Jenkinsfile`](/ci/jenkins/templates/) used by Jenkins to run CI jobs for each commit to PRs and branches.
To regenerate the `Jenkinsfile`, run `make` in the `ci/jenkins` dir.
diff --git a/ci/jenkins/README.md b/ci/jenkins/README.md
index ff136bdca6f1..e207751a738f 100644
--- a/ci/jenkins/README.md
+++ b/ci/jenkins/README.md
@@ -39,12 +39,12 @@ https://github.com/apache/tvm/actions has the logs for each of these workflows.
TVM uses Jenkins for running Linux continuous integration (CI) tests on
[branches](https://ci.tlcpack.ai/job/tvm/) and
[pull requests](https://ci.tlcpack.ai/job/tvm/view/change-requests/) through a
-build configuration specified in a [`Jenkinsfile`](../../Jenkinsfile).
+build configuration specified in a [`Jenkinsfile`](/ci/jenkins/templates/).
Other jobs run in GitHub Actions for Windows and MacOS jobs.
## `Jenkinsfile`
-The template files in this directory are used to generate the [`Jenkinsfile`](../../Jenkinsfile) used by Jenkins to run CI jobs for each commit to PRs and branches.
+The template files in this directory are used to generate the [`Jenkinsfile`](/ci/jenkins/templates/) used by Jenkins to run CI jobs for each commit to PRs and branches.
To regenerate the `Jenkinsfile`, run
diff --git a/docs/contribute/ci.rst b/docs/contribute/ci.rst
index 428319a99a0a..037b64bac39e 100644
--- a/docs/contribute/ci.rst
+++ b/docs/contribute/ci.rst
@@ -26,7 +26,7 @@ Using TVM's CI
TVM primarily uses Jenkins for running Linux continuous integration (CI) tests on
`branches `_
`pull requests `_ through a
-build configuration specified in a `Jenkinsfile `_.
+build configuration specified in a `Jenkinsfile `_.
Jenkins is the only CI step that is codified to block merging. TVM is also tested minimally
against Windows and MacOS using GitHub Actions.