Skip to content

Commit fcbeefe

Browse files
rmuirdweiss
andauthored
ci: use ubuntu-arm on every PR/push, use macos at night (#15314)
Gives us a 10 minute CI system Expand test coverage to "arm on linux", which is a real use-case Replaces slowest runner (20 minutes) with fastest runner (5 minutes) Still tests with macos-arm at night Policeman Jenkins still tests macos many times a day (and more reliably) * Add build option and gradle diagnostics. #15313 --------- Co-authored-by: Dawid Weiss <[email protected]>
1 parent 8f68736 commit fcbeefe

File tree

4 files changed

+47
-6
lines changed

4 files changed

+47
-6
lines changed

.github/workflows/run-checks-all.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ on:
1212
- 'main'
1313
- 'branch_10x'
1414

15+
schedule:
16+
- cron: '44 1 * * *'
17+
1518
permissions: {}
1619

1720
env:
@@ -69,8 +72,15 @@ jobs:
6972
strategy:
7073
matrix:
7174
# Operating systems to run on.
72-
os: [ ubuntu-latest, windows-latest, macos-latest ]
75+
os: [ ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-latest ]
7376
java: [ '25' ]
77+
trigger:
78+
- ${{ github.event_name }}
79+
exclude:
80+
- os: macos-latest
81+
trigger: push
82+
- os: macos-latest
83+
trigger: pull_request
7484

7585
runs-on: ${{ matrix.os }}
7686

@@ -96,7 +106,7 @@ jobs:
96106
echo "tests.workDir=/tmp/tmpfs/lucene" >> build-options.local.properties
97107
98108
- name: Run gradle tests
99-
run: ./gradlew test "-Ptask.times=true" "-Pvalidation.errorprone=false"
109+
run: ./gradlew displayGradleDiagnostics allOptions test "-Ptask.times=true" "-Pvalidation.errorprone=false"
100110
env:
101111
# Set to the defaults to override the "CI"-based logic that would enable C2
102112
# we can't afford C2 on github runners.

build-tools/build-infra/src/main/java/org/apache/lucene/gradle/plugins/java/ErrorPronePlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,7 @@ private void configureErrorProne(Project project) {
895895
.withType(JavaCompile.class)
896896
.configureEach(
897897
t -> {
898-
t.dependsOn(":" + CheckEnvironmentPlugin.CHECK_JDK_INTERNALS_EXPOSED_TO_GRADLE_TASK);
898+
t.dependsOn(":" + CheckEnvironmentPlugin.TASK_CHECK_JDK_INTERNALS_EXPOSED_TO_GRADLE);
899899

900900
var epOptions =
901901
((ExtensionAware) t.getOptions())

build-tools/build-infra/src/main/java/org/apache/lucene/gradle/plugins/misc/CheckEnvironmentPlugin.java

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818

1919
import java.util.Locale;
2020
import java.util.Set;
21+
import java.util.stream.Collectors;
22+
import java.util.stream.Stream;
2123
import org.apache.lucene.gradle.plugins.LuceneGradlePlugin;
24+
import org.gradle.StartParameter;
2225
import org.gradle.api.GradleException;
2326
import org.gradle.api.JavaVersion;
2427
import org.gradle.api.Project;
@@ -31,9 +34,11 @@
3134
* JVM is supported, etc.
3235
*/
3336
public class CheckEnvironmentPlugin extends LuceneGradlePlugin {
34-
public static final String CHECK_JDK_INTERNALS_EXPOSED_TO_GRADLE_TASK =
37+
public static final String TASK_CHECK_JDK_INTERNALS_EXPOSED_TO_GRADLE =
3538
"checkJdkInternalsExportedToGradle";
3639

40+
public static final String TASK_DISPLAY_GRADLE_DIAGNOSTICS = "displayGradleDiagnostics";
41+
3742
@Override
3843
public void apply(Project rootProject) {
3944
applicableToRootProjectOnly(rootProject);
@@ -106,7 +111,7 @@ public void apply(Project rootProject) {
106111
rootProject
107112
.getTasks()
108113
.register(
109-
CHECK_JDK_INTERNALS_EXPOSED_TO_GRADLE_TASK,
114+
TASK_CHECK_JDK_INTERNALS_EXPOSED_TO_GRADLE,
110115
task -> {
111116
task.doFirst(
112117
_ -> {
@@ -131,5 +136,31 @@ public void apply(Project rootProject) {
131136
}
132137
});
133138
});
139+
140+
rootProject
141+
.getTasks()
142+
.register(
143+
TASK_DISPLAY_GRADLE_DIAGNOSTICS,
144+
task -> {
145+
task.doFirst(
146+
t -> {
147+
StartParameter startParameter = t.getProject().getGradle().getStartParameter();
148+
149+
var logger = t.getLogger();
150+
logger.lifecycle(
151+
Stream.of(
152+
"max workers: " + startParameter.getMaxWorkerCount(),
153+
"tests.jvms: "
154+
+ getBuildOptions(t.getProject().project(":lucene:core"))
155+
.getOption("tests.jvms")
156+
.asStringProvider()
157+
.get(),
158+
"cache dir: " + startParameter.getProjectCacheDir(),
159+
"current dir: " + startParameter.getCurrentDir(),
160+
"user home dir: " + startParameter.getGradleUserHomeDir())
161+
.map(v -> " - " + v)
162+
.collect(Collectors.joining("\n")));
163+
});
164+
});
134165
}
135166
}

build-tools/build-infra/src/main/java/org/apache/lucene/gradle/plugins/spotless/GoogleJavaFormatPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void apply(Project project) {
7171
t.configure(
7272
task -> {
7373
task.getBatchSize().set(batchSizeOption);
74-
task.dependsOn(":" + CheckEnvironmentPlugin.CHECK_JDK_INTERNALS_EXPOSED_TO_GRADLE_TASK);
74+
task.dependsOn(":" + CheckEnvironmentPlugin.TASK_CHECK_JDK_INTERNALS_EXPOSED_TO_GRADLE);
7575
});
7676
}
7777

0 commit comments

Comments
 (0)