[CI] Add ci-extra flags for scheduled builds. (#23033)
Allows the possibility of the following workflows to be triggered by
ci-extra:
* linux_arm64_clang
* linux_x64_clang_debug
* linux_x64_clang_tsan
* linux_x64_clang_byollvm
* linux_x64_gcc
ci-extra: linux_arm64_clang, linux_x64_clang_debug,
linux_x64_clang_tsan, linux_x64_clang_byollvm, linux_x64_gcc
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 98c7c05..353d135 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -235,6 +235,24 @@
uses: ./.github/workflows/ci_linux_x64_clang.yml
secrets: inherit
+ linux_x64_gcc:
+ needs: setup
+ if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'linux_x64_gcc')
+ uses: ./.github/workflows/ci_linux_x64_gcc.yml
+ secrets: inherit
+
+ linux_arm64_clang:
+ needs: setup
+ if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'linux_arm64_clang')
+ uses: ./.github/workflows/ci_linux_arm64_clang.yml
+ secrets: inherit
+
+ linux_x64_clang_debug:
+ needs: setup
+ if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'linux_x64_clang_debug')
+ uses: ./.github/workflows/ci_linux_x64_clang_debug.yml
+ secrets: inherit
+
linux_x64_clang_asan:
needs: setup
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'linux_x64_clang_asan')
@@ -247,6 +265,18 @@
uses: ./.github/workflows/ci_linux_x64_clang_ubsan.yml
secrets: inherit
+ linux_x64_clang_tsan:
+ needs: setup
+ if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'linux_x64_clang_tsan')
+ uses: ./.github/workflows/ci_linux_x64_clang_tsan.yml
+ secrets: inherit
+
+ linux_x64_clang_byollvm:
+ needs: setup
+ if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'linux_x64_clang_byollvm')
+ uses: ./.github/workflows/ci_linux_x64_clang_byollvm.yml
+ secrets: inherit
+
macos_arm64_clang:
needs: setup
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'macos_arm64_clang')
@@ -281,8 +311,13 @@
# Full project builds.
- linux_x64_bazel
- linux_x64_clang
+ - linux_x64_gcc
+ - linux_arm64_clang
+ - linux_x64_clang_debug
- linux_x64_clang_asan
- linux_x64_clang_ubsan
+ - linux_x64_clang_tsan
+ - linux_x64_clang_byollvm
- macos_arm64_clang
- macos_x64_clang
- windows_x64_msvc
diff --git a/.github/workflows/ci_linux_arm64_clang.yml b/.github/workflows/ci_linux_arm64_clang.yml
index bdd5041..0972afe 100644
--- a/.github/workflows/ci_linux_arm64_clang.yml
+++ b/.github/workflows/ci_linux_arm64_clang.yml
@@ -7,21 +7,12 @@
name: CI - Linux arm64 clang
on:
- pull_request:
- paths:
- - ".github/workflows/ci_linux_arm64_clang.yml"
schedule:
# Weekday mornings at 09:15 UTC = 01:15 PST (UTC - 8).
- cron: "15 9 * * 1-5"
workflow_dispatch:
+ workflow_call:
-concurrency:
- # A PR number if a pull request and otherwise the commit hash. This cancels
- # queued and in-progress runs for the same PR (presubmit) or commit
- # (postsubmit). The workflow name is prepended to avoid conflicts between
- # different workflows.
- group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
- cancel-in-progress: true
jobs:
linux_arm64_clang:
diff --git a/.github/workflows/ci_linux_x64_clang_byollvm.yml b/.github/workflows/ci_linux_x64_clang_byollvm.yml
index 9ef8c0e..a322e9c 100644
--- a/.github/workflows/ci_linux_x64_clang_byollvm.yml
+++ b/.github/workflows/ci_linux_x64_clang_byollvm.yml
@@ -7,21 +7,11 @@
name: CI - Linux x64 clang BYO LLVM
on:
- pull_request:
- paths:
- - ".github/workflows/ci_linux_x64_clang_byollvm.yml"
schedule:
# Weekday mornings at 09:15 UTC = 01:15 PST (UTC - 8).
- cron: "15 9 * * 1-5"
workflow_dispatch:
-
-concurrency:
- # A PR number if a pull request and otherwise the commit hash. This cancels
- # queued and in-progress runs for the same PR (presubmit) or commit
- # (postsubmit). The workflow name is prepended to avoid conflicts between
- # different workflows.
- group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
- cancel-in-progress: true
+ workflow_call:
jobs:
linux_x64_clang_byollvm:
diff --git a/.github/workflows/ci_linux_x64_clang_debug.yml b/.github/workflows/ci_linux_x64_clang_debug.yml
index f292f46..3358214 100644
--- a/.github/workflows/ci_linux_x64_clang_debug.yml
+++ b/.github/workflows/ci_linux_x64_clang_debug.yml
@@ -7,21 +7,11 @@
name: CI - Linux x64 clang debug
on:
- pull_request:
- paths:
- - ".github/workflows/ci_linux_x64_clang_debug.yml"
schedule:
# Weekday mornings at 09:15 UTC = 01:15 PST (UTC - 8).
- cron: "15 9 * * 1-5"
workflow_dispatch:
-
-concurrency:
- # A PR number if a pull request and otherwise the commit hash. This cancels
- # queued and in-progress runs for the same PR (presubmit) or commit
- # (postsubmit). The workflow name is prepended to avoid conflicts between
- # different workflows.
- group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
- cancel-in-progress: true
+ workflow_call:
jobs:
# This may run out of memory / disk space on standard GitHub-hosted runners,
diff --git a/.github/workflows/ci_linux_x64_clang_tsan.yml b/.github/workflows/ci_linux_x64_clang_tsan.yml
index 6e79e15..a1dbe97 100644
--- a/.github/workflows/ci_linux_x64_clang_tsan.yml
+++ b/.github/workflows/ci_linux_x64_clang_tsan.yml
@@ -7,21 +7,11 @@
name: CI - Linux x64 clang TSan
on:
- pull_request:
- paths:
- - ".github/workflows/ci_linux_x64_clang_tsan.yml"
schedule:
# Weekday mornings at 09:15 UTC = 01:15 PST (UTC - 8).
- cron: "15 9 * * 1-5"
workflow_dispatch:
-
-concurrency:
- # A PR number if a pull request and otherwise the commit hash. This cancels
- # queued and in-progress runs for the same PR (presubmit) or commit
- # (postsubmit). The workflow name is prepended to avoid conflicts between
- # different workflows.
- group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
- cancel-in-progress: true
+ workflow_call:
jobs:
linux_x64_clang_tsan:
diff --git a/.github/workflows/ci_linux_x64_gcc.yml b/.github/workflows/ci_linux_x64_gcc.yml
index bd57dd1..d5600d5 100644
--- a/.github/workflows/ci_linux_x64_gcc.yml
+++ b/.github/workflows/ci_linux_x64_gcc.yml
@@ -7,21 +7,11 @@
name: CI - Linux x64 gcc
on:
- pull_request:
- paths:
- - ".github/workflows/ci_linux_x64_gcc.yml"
schedule:
# Weekday mornings at 09:15 UTC = 01:15 PST (UTC - 8).
- cron: "15 9 * * 1-5"
workflow_dispatch:
-
-concurrency:
- # A PR number if a pull request and otherwise the commit hash. This cancels
- # queued and in-progress runs for the same PR (presubmit) or commit
- # (postsubmit). The workflow name is prepended to avoid conflicts between
- # different workflows.
- group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
- cancel-in-progress: true
+ workflow_call:
jobs:
linux_x64_gcc:
diff --git a/build_tools/github_actions/configure_ci.py b/build_tools/github_actions/configure_ci.py
index 611e4c9..4034b2c 100755
--- a/build_tools/github_actions/configure_ci.py
+++ b/build_tools/github_actions/configure_ci.py
@@ -129,6 +129,11 @@
[
"macos_arm64_clang",
"macos_x64_clang",
+ "linux_arm64_clang",
+ "linux_x64_clang_byollvm",
+ "linux_x64_clang_debug",
+ "linux_x64_clang_tsan",
+ "linux_x64_gcc",
]
)
@@ -136,11 +141,55 @@
# Each tuple consists of the CI job name and a list of file paths to match.
# The file paths should be specified using Unix shell-style wildcards. Sample:
# ("test_nvidia_a100", ["compiler/plugins/target/CUDA/*"]),
-# Note: these jobs should also be included in DEFAULT_POSTSUBMIT_ONLY_JOBS.
PRESUBMIT_TOUCH_ONLY_JOBS = [
(
+ "linux_arm64_clang",
+ [".github/workflows/ci_linux_arm64_clang.yml"],
+ ),
+ (
+ "linux_x64_bazel",
+ [".github/workflows/ci_linux_x64_bazel.yml"],
+ ),
+ (
+ "linux_x64_clang_asan",
+ [".github/workflows/ci_linux_x64_clang_asan.yml"],
+ ),
+ (
+ "linux_x64_clang_byollvm",
+ [".github/workflows/ci_linux_x64_clang_byollvm.yml"],
+ ),
+ (
+ "linux_x64_clang_debug",
+ [".github/workflows/ci_linux_x64_clang_debug.yml"],
+ ),
+ (
+ "linux_x64_clang_tsan",
+ [".github/workflows/ci_linux_x64_clang_tsan.yml"],
+ ),
+ (
+ "linux_x64_clang",
+ [".github/workflows/ci_linux_x64_clang.yml"],
+ ),
+ (
+ "linux_x64_gcc",
+ [".github/workflows/ci_linux_x64_gcc.yml"],
+ ),
+ (
+ "macos_arm64_clang",
+ [".github/workflows/ci_macos_arm64_clang.yml"],
+ ),
+ (
+ "macos_x64_clang",
+ [".github/workflows/ci_macos_x64_clang.yml"],
+ ),
+ (
"windows_x64_msvc",
- ["*win32*", "*windows*", "*msvc*"],
+ [
+ "*win32*",
+ "*windows*",
+ "*msvc*",
+ ".github/worklflows/ci_windows_x64_msvc.yml",
+ ],
),
]
diff --git a/build_tools/github_actions/configure_ci_test.py b/build_tools/github_actions/configure_ci_test.py
index 641d930..b23caa1 100644
--- a/build_tools/github_actions/configure_ci_test.py
+++ b/build_tools/github_actions/configure_ci_test.py
@@ -64,6 +64,21 @@
)
self.assertCountEqual(jobs, all_jobs)
+ def test_get_enabled_jobs_modified_ci(self):
+ trailers = {}
+ all_jobs = {"job1", "job2", "job3"}
+ is_pr = True
+ is_llvm_integrate_pr = False
+ modified_paths = [".github/workflows/ci_linux_arm64_clang.yml", "runtime/file"]
+ jobs = configure_ci.get_enabled_jobs(
+ trailers,
+ all_jobs,
+ modified_paths=modified_paths,
+ is_pr=is_pr,
+ is_llvm_integrate_pr=is_llvm_integrate_pr,
+ )
+ self.assertCountEqual(jobs, all_jobs | {"linux_arm64_clang"})
+
def test_get_enabled_jobs_postsubmit(self):
trailers = {}
default_jobs = {"job1", "job2", "job3"}
diff --git a/docs/website/docs/developers/general/contributing.md b/docs/website/docs/developers/general/contributing.md
index 86b4bc9..74b8204 100644
--- a/docs/website/docs/developers/general/contributing.md
+++ b/docs/website/docs/developers/general/contributing.md
@@ -447,6 +447,12 @@
ci-exactly: linux_x64_bazel
```
+* Opt in to the Linux arm64 build:
+
+ ``` text
+ ci-extra: linux_arm64_clang
+ ```
+
* Opt in to the Windows compiler build and test workflow:
``` text
@@ -459,6 +465,12 @@
ci-extra: macos_arm64_clang, macos_x64_clang
```
+* Other opt in builds:
+
+ ``` text
+ ci-extra: linux_x64_clang_byollvm, linux_x64_clang_debug, linux_x64_clang_tsan
+ ```
+
For example, this PR opted in to running the `build_test_all_windows` job
(which was renamed to `windows_x64_msvc`):