Update workflow generation to allow Java version customization
See gh-218
This commit is contained in:
5
.github/workflows/smoke-test-jvm.yml
vendored
5
.github/workflows/smoke-test-jvm.yml
vendored
@@ -18,6 +18,10 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
java_version:
|
||||
required: false
|
||||
type: string
|
||||
default: '17'
|
||||
jobs:
|
||||
jvm_smoke_test:
|
||||
name: ${{ inputs.task }}
|
||||
@@ -30,3 +34,4 @@ jobs:
|
||||
checkout_repository: ${{ inputs.checkout_repository }}
|
||||
checkout_ref: ${{ inputs.checkout_ref }}
|
||||
expected_to_fail: ${{ inputs.expected_to_fail }}
|
||||
java_version: ${{ inputs.java_version }}
|
||||
|
||||
5
.github/workflows/smoke-test-native.yml
vendored
5
.github/workflows/smoke-test-native.yml
vendored
@@ -18,6 +18,10 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
java_version:
|
||||
required: false
|
||||
type: string
|
||||
default: '17'
|
||||
jobs:
|
||||
native_smoke_test:
|
||||
name: ${{ inputs.task }}
|
||||
@@ -30,3 +34,4 @@ jobs:
|
||||
checkout_repository: ${{ inputs.checkout_repository }}
|
||||
checkout_ref: ${{ inputs.checkout_ref }}
|
||||
expected_to_fail: ${{ inputs.expected_to_fail }}
|
||||
graal_version: ${{ inputs.java_version }}
|
||||
|
||||
19
.github/workflows/smoke-test.yml
vendored
19
.github/workflows/smoke-test.yml
vendored
@@ -21,6 +21,14 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
graal_version:
|
||||
required: false
|
||||
type: string
|
||||
default: '17'
|
||||
java_version:
|
||||
required: false
|
||||
type: string
|
||||
default: '17'
|
||||
jobs:
|
||||
smoke_test:
|
||||
name: ${{ inputs.task }}
|
||||
@@ -31,15 +39,14 @@ jobs:
|
||||
with:
|
||||
repository: ${{ inputs.checkout_repository }}
|
||||
ref: ${{ inputs.checkout_ref }}
|
||||
- name: Set up Java
|
||||
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
|
||||
if: ${{ inputs.type == 'jvm' }}
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'liberica'
|
||||
- name: Set up GraalVM
|
||||
uses: graalvm/setup-graalvm@2f25c0caae5b220866f732832d5e3e29ff493338 # v1.2.1
|
||||
if: ${{ inputs.type == 'native' }}
|
||||
with:
|
||||
java-version: ${{ inputs.graal-java-version }}
|
||||
distribution: 'liberica'
|
||||
- name: Set up Java
|
||||
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'liberica'
|
||||
|
||||
@@ -95,6 +95,9 @@ public abstract class GenerateGitHubActionsWorkflows extends DefaultTask {
|
||||
if (test.expectedToFail()) {
|
||||
writer.println(" expected_to_fail: true");
|
||||
}
|
||||
if (test.javaVersion() != null) {
|
||||
writer.println(" java_version: " + test.javaVersion());
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (IOException ex) {
|
||||
|
||||
@@ -48,19 +48,31 @@ public record SmokeTest(String name, String group, String path, List<SmokeTest.T
|
||||
}
|
||||
|
||||
private static void testFrom(Properties properties, String name, Consumer<SmokeTest.Test> consumer) {
|
||||
if (properties.containsKey("tests.%s.expectedToFail".formatted(name))) {
|
||||
consumer.accept(new SmokeTest.Test(name,
|
||||
Boolean.valueOf(properties.getProperty("tests.%s.expectedToFail".formatted(name)))));
|
||||
if (configuresTest(properties, name)) {
|
||||
boolean expectedToFail = Boolean.valueOf(properties.getProperty("tests.%s.expectedToFail".formatted(name)));
|
||||
String javaVersion = properties.getProperty("tests.%s.javaVersion".formatted(name));
|
||||
consumer.accept(new SmokeTest.Test(name, expectedToFail, javaVersion));
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean configuresTest(Properties properties, String name) {
|
||||
for (Object key : properties.keySet()) {
|
||||
if (key instanceof String string && string.startsWith("tests." + name + ".")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* An individual test within a smoke test.
|
||||
*
|
||||
* @param taskName the name of the task that runs the test
|
||||
* @param expectedToFail whether to task is expected to fail
|
||||
* @param javaVersion the required Java version for the test. May be {@code null} to
|
||||
* use the default version
|
||||
*/
|
||||
public record Test(String taskName, boolean expectedToFail) implements Serializable {
|
||||
public record Test(String taskName, boolean expectedToFail, String javaVersion) implements Serializable {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,10 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
java_version:
|
||||
required: false
|
||||
type: string
|
||||
default: '17'
|
||||
jobs:
|
||||
jvm_smoke_test:
|
||||
name: ${{ inputs.task }}
|
||||
@@ -30,3 +34,4 @@ jobs:
|
||||
checkout_repository: ${{ inputs.checkout_repository }}
|
||||
checkout_ref: ${{ inputs.checkout_ref }}
|
||||
expected_to_fail: ${{ inputs.expected_to_fail }}
|
||||
java_version: ${{ inputs.java_version }}
|
||||
|
||||
@@ -18,6 +18,10 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
java_version:
|
||||
required: false
|
||||
type: string
|
||||
default: '17'
|
||||
jobs:
|
||||
native_smoke_test:
|
||||
name: ${{ inputs.task }}
|
||||
@@ -30,3 +34,4 @@ jobs:
|
||||
checkout_repository: ${{ inputs.checkout_repository }}
|
||||
checkout_ref: ${{ inputs.checkout_ref }}
|
||||
expected_to_fail: ${{ inputs.expected_to_fail }}
|
||||
graal_version: ${{ inputs.java_version }}
|
||||
|
||||
@@ -21,6 +21,14 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
graal_version:
|
||||
required: false
|
||||
type: string
|
||||
default: '17'
|
||||
java_version:
|
||||
required: false
|
||||
type: string
|
||||
default: '17'
|
||||
jobs:
|
||||
smoke_test:
|
||||
name: ${{ inputs.task }}
|
||||
@@ -31,15 +39,14 @@ jobs:
|
||||
with:
|
||||
repository: ${{ inputs.checkout_repository }}
|
||||
ref: ${{ inputs.checkout_ref }}
|
||||
- name: Set up Java
|
||||
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
|
||||
if: ${{ inputs.type == 'jvm' }}
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'liberica'
|
||||
- name: Set up GraalVM
|
||||
uses: graalvm/setup-graalvm@2f25c0caae5b220866f732832d5e3e29ff493338 # v1.2.1
|
||||
if: ${{ inputs.type == 'native' }}
|
||||
with:
|
||||
java-version: ${{ inputs.graal-java-version }}
|
||||
distribution: 'liberica'
|
||||
- name: Set up Java
|
||||
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'liberica'
|
||||
|
||||
Reference in New Issue
Block a user