Skip to content

Commit ca202de

Browse files
hvadehrarules_java Copybara
authored andcommitted
Improve rules_java CI config
- Removes duplication by using the matrix configuration - Separates out linux-only tests, so we can run analysis tests on all platforms - Uses bazelbuild/continuous-integration#2188 for task names PiperOrigin-RevId: 735739491 Change-Id: I0b0fbe296bed6a24a693a41e319a439f9e0ac358
1 parent aef7514 commit ca202de

File tree

1 file changed

+49
-120
lines changed

1 file changed

+49
-120
lines changed

.bazelci/presubmit.yml

Lines changed: 49 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ build_targets_integration: &build_targets_integration
2222
test_targets: &test_targets
2323
- "//test/..."
2424
- "//java/test/..."
25+
# linux-only tests
26+
- "-//test:check_remote_jdk_configs_test"
2527
# TODO: re-enable docs after moving them out of https://bazel.build/reference/be/java
2628
- "-//test:docs_up_to_date_test"
2729

@@ -38,146 +40,73 @@ flags_workspace_integration: &flags_workspace_integration
3840

3941
buildifier: latest
4042

43+
matrix:
44+
all_platforms: ["ubuntu2004", "macos", "windows"]
45+
integration_platforms: ["ubuntu2004", "macos"] # TODO: add windows batch setup script
46+
bazel: ["7.4.0", "8.1.0", "last_green"] # Bazel 6 tested separately, needs different flags
47+
modern_bazel: ["8.1.0", "last_green"] # Fully supported Bazel versions
48+
4149
tasks:
4250
# Bazel 7.x
43-
ubuntu2004_bazel7:
44-
name: "Bazel 7.x"
45-
bazel: "7.4.0"
46-
platform: ubuntu2004
51+
build_and_test_bazel7:
52+
name: "Bazel 7.5.0"
53+
bazel: "7.5.0"
54+
platform: ${{ all_platforms }}
4755
build_targets: *build_targets
4856
test_targets: *test_targets
4957
test_flags:
5058
- "--test_tag_filters=-min_bazel_8"
51-
ubuntu2004_integration_bazel7:
52-
name: "Bazel 7.x Integration"
53-
bazel: "7.4.0"
54-
platform: ubuntu2004
55-
working_directory: "test/repo"
56-
shell_commands:
57-
- sh setup.sh
58-
build_targets: *build_targets_integration
59-
test_targets: *test_target_integration
60-
ubuntu2004_integration_workspace_bazel7:
61-
name: "Bazel 7.x Integration (WORKSPACE)"
62-
bazel: "7.4.0"
63-
platform: ubuntu2004
64-
working_directory: "test/repo"
65-
shell_commands:
66-
- sh setup.sh
67-
build_targets: *build_targets_integration
68-
build_flags: *flags_workspace_integration
69-
test_targets: *test_target_integration
70-
test_flags: *flags_workspace_integration
71-
macos_bazel7:
72-
name: "Bazel 7.x"
73-
bazel: "7.4.0"
74-
platform: macos
75-
build_targets: *build_targets
76-
windows_bazel7:
77-
name: "Bazel 7.x"
78-
bazel: "7.4.0"
79-
platform: windows
80-
build_targets: *build_targets
81-
# Bazel 8.x
82-
ubuntu2004_bazel8:
83-
name: "Bazel 8.x"
84-
bazel: "8.1.0"
85-
platform: ubuntu2004
59+
# Bazel 8+
60+
build_and_test:
61+
name: "Bazel {modern_bazel}"
62+
bazel: ${{ modern_bazel }}
63+
platform: ${{ all_platforms }}
8664
build_targets: *build_targets
8765
test_targets: *test_targets
88-
ubuntu2004_integration_bazel8:
89-
name: "Bazel 8.x Integration"
90-
bazel: "8.1.0"
91-
platform: ubuntu2004
92-
working_directory: "test/repo"
93-
shell_commands:
94-
- sh setup.sh
95-
build_targets: *build_targets_integration
96-
test_targets: *test_target_integration
97-
ubuntu2004_integration_workspace_bazel8:
98-
name: "Bazel 8.x Integration (WORKSPACE)"
99-
bazel: "8.1.0"
66+
# Bazel 6.x
67+
build_and_test_bazel6:
68+
name: "Bazel 6.5.0"
69+
bazel: 6.5.0
70+
platform: ${{ all_platforms }}
71+
build_targets: *build_targets_bazel6
72+
test_targets: *test_targets_bazel6
73+
test_flags:
74+
- "--test_tag_filters=-min_bazel_7,-min_bazel_8"
75+
ubuntu2004_integration_bazel6:
76+
name: "Integration w/ Bazel 6.5.0"
77+
bazel: 6.5.0
10078
platform: ubuntu2004
10179
working_directory: "test/repo"
10280
shell_commands:
103-
- sh setup.sh
81+
- sh setup.sh
10482
build_targets: *build_targets_integration
105-
build_flags: *flags_workspace_integration
10683
test_targets: *test_target_integration
107-
test_flags: *flags_workspace_integration
108-
macos_bazel8:
109-
name: "Bazel 8.x"
110-
bazel: "8.1.0"
111-
platform: macos
112-
build_targets: *build_targets
113-
windows_bazel8:
114-
name: "Bazel 8.x"
115-
bazel: "8.1.0"
116-
platform: windows
117-
build_targets: *build_targets
118-
# Bazel@HEAD
119-
ubuntu2004_head:
120-
name: "Bazel@HEAD"
121-
bazel: last_green
122-
platform: ubuntu2004
123-
build_targets: *build_targets
124-
test_targets: *test_targets
125-
ubuntu2004_integration_head:
126-
name: "Bazel@HEAD Integration"
127-
bazel: last_green
128-
platform: ubuntu2004
84+
85+
# Integration tests
86+
integration_build_and_test:
87+
name: "Integration w/ Bazel {bazel}"
88+
bazel: ${{ bazel }}
89+
platform: ${{ integration_platforms }}
12990
working_directory: "test/repo"
13091
shell_commands:
131-
- sh setup.sh
92+
- sh setup.sh
13293
build_targets: *build_targets_integration
13394
test_targets: *test_target_integration
134-
ubuntu2004_integration_head_workspace:
135-
name: "Bazel@HEAD Integration (WORKSPACE)"
136-
bazel: "last_green"
137-
platform: ubuntu2004
95+
integration_build_and_test_workspace:
96+
name: "Integration (WORKSPACE) w/ Bazel {bazel}"
97+
bazel: ${{ bazel }}
98+
platform: ${{ integration_platforms }}
13899
working_directory: "test/repo"
139100
shell_commands:
140-
- sh setup.sh
101+
- sh setup.sh
141102
build_targets: *build_targets_integration
142103
build_flags: *flags_workspace_integration
143104
test_targets: *test_target_integration
144105
test_flags: *flags_workspace_integration
145-
macos_head:
146-
name: "Bazel@HEAD"
147-
bazel: last_green
148-
platform: macos
149-
build_targets: *build_targets
150-
windows_head:
151-
name: "Bazel@HEAD"
152-
bazel: last_green
153-
platform: windows
154-
build_targets: *build_targets
155-
156-
# Bazel 6.x
157-
ubuntu2004_bazel6:
158-
name: "Bazel 6.x"
159-
bazel: 6.4.0
160-
platform: ubuntu2004
161-
build_targets: *build_targets_bazel6
162-
test_targets: *test_targets_bazel6
163-
test_flags:
164-
- "--test_tag_filters=-min_bazel_7,-min_bazel_8"
165-
ubuntu2004_integration_bazel6:
166-
name: "Bazel 6.x Integration"
167-
bazel: 6.4.0
168-
platform: ubuntu2004
169-
working_directory: "test/repo"
170-
shell_commands:
171-
- sh setup.sh
172-
build_targets: *build_targets_integration
173-
test_targets: *test_target_integration
174-
macos_bazel6:
175-
name: "Bazel 6.x"
176-
bazel: 6.4.0
177-
platform: macos
178-
build_targets: *build_targets_bazel6
179-
windows_bazel6:
180-
name: "Bazel 6.x"
181-
bazel: 6.4.0
182-
platform: windows
183-
build_targets: *build_targets_bazel6
106+
# Linux-only tests
107+
linux_only_tests:
108+
name: "Extra tests w/ Bazel {bazel}"
109+
bazel: ${{ bazel }}
110+
platform: "ubuntu2004"
111+
test_targets:
112+
- "//test:check_remote_jdk_configs_test"

0 commit comments

Comments
 (0)