Skip to content

Commit 960d15f

Browse files
committed
Add check-samples-gradle.yml for checking samples w/ Gradle.
See #300 Signed-off-by: onobc <[email protected]>
1 parent 9273d69 commit 960d15f

File tree

15 files changed

+171
-45
lines changed

15 files changed

+171
-45
lines changed

.github/workflows/check-samples-gradle.yml

Lines changed: 48 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,58 @@ jobs:
1010
strategy:
1111
matrix:
1212
include:
13+
- javaVersion: 25
14+
distribution: 'liberica'
1315
- javaVersion: 17
14-
springBootVersion: "4.0.0"
15-
- javaVersion: 17
16-
springBootVersion: "4.0.1-SNAPSHOT"
16+
distribution: 'temurin'
1717
runs-on: ubuntu-latest
1818
steps:
1919
- uses: actions/checkout@v4
20-
- uses: spring-io/spring-gradle-build-action@v2
21-
- name: Check samples project
22-
env:
23-
BOOT_VERSION: ${{ matrix.springBootVersion }}
24-
JAVA_VERSION: ${{ matrix.javaVersion }}
20+
- name: Set up Java ${{ matrix.javaVersion }} ${{ matrix.distribution }}
21+
uses: actions/setup-java@v4
22+
with:
23+
java-version: ${{ matrix.javaVersion }}
24+
distribution: ${{ matrix.distribution }}
25+
cache: gradle
26+
27+
- name: Build and run samples w/ Java 25 $ {{ matrix.distribution }} (non-kotlin)
28+
if: ${{ matrix.javaVersion == 25 }}
2529
run: |
26-
cd samples
27-
./gradlew \
28-
--init-script ./sample-apps-check-ci.gradle \
29-
-PspringBootVersion="$BOOT_VERSION" \
30-
-PtestToolchain="$JAVA_VERSION" \
30+
pushd samples > dev/null
31+
./gradlew clean build \
32+
-x :grpc-server-kotlin:build \
33+
-PtestToolchain=25 \
3134
--rerun-tasks --no-build-cache \
3235
build
36+
popd > dev/null
37+
38+
- name: Setup Java 24 for grpc-server-kotlin w/ Java 24
39+
if: ${{ matrix.javaVersion == 25 }}
40+
uses: actions/setup-java@v4
41+
with:
42+
java-version: 24
43+
distribution: ${{ matrix.distribution }}
44+
cache: gradle
45+
- name: Build and run samples w/ Java grpc-server-kotlin w/ Java 24
46+
if: ${{ matrix.javaVersion == 25 }}
47+
run: |
48+
pushd samples > dev/null
49+
./gradlew :grpc-server-kotlin:build \
50+
-PtestToolchain=24 \
51+
--rerun-tasks --no-build-cache
52+
53+
- name: Build and run samples w/ Java ${{ matrix.javaVersion }} ${{ matrix.distribution }}
54+
if: ${{ matrix.javaVersion != 25 }}
55+
run: |
56+
cd samples
57+
./gradlew clean build \
58+
-PtestToolchain="${{ matrix.javaVersion }}" \
59+
--rerun-tasks --no-build-cache
60+
61+
- name: Upload Build Reports (Java ${{ matrix.javaVersion }} ${{ matrix.distribution }})
62+
if: failure()
63+
uses: actions/upload-artifact@v4
64+
with:
65+
name: test-results
66+
path: '*/target/surefire-reports/*.*'
67+
retention-days: 3
181 Bytes
Binary file not shown.

samples/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

samples/gradlew

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ done
8686
# shellcheck disable=SC2034
8787
APP_BASE_NAME=${0##*/}
8888
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
89-
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
90-
' "$PWD" ) || exit
89+
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
9190

9291
# Use the maximum available, or set MAX_FD != -1 to use that value.
9392
MAX_FD=maximum
@@ -115,7 +114,7 @@ case "$( uname )" in #(
115114
NONSTOP* ) nonstop=true ;;
116115
esac
117116

118-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
117+
CLASSPATH="\\\"\\\""
119118

120119

121120
# Determine the Java command to use to start the JVM.
@@ -206,15 +205,15 @@ fi
206205
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
207206

208207
# Collect all arguments for the java command:
209-
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
208+
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
210209
# and any embedded shellness will be escaped.
211210
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
212211
# treated as '${Hostname}' itself on the command line.
213212

214213
set -- \
215214
"-Dorg.gradle.appname=$APP_BASE_NAME" \
216215
-classpath "$CLASSPATH" \
217-
org.gradle.wrapper.GradleWrapperMain \
216+
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
218217
"$@"
219218

220219
# Stop when "xargs" is not available.

samples/gradlew.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,11 @@ goto fail
7070
:execute
7171
@rem Setup the command line
7272

73-
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73+
set CLASSPATH=
7474

7575

7676
@rem Execute Gradle
77-
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
77+
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
7878

7979
:end
8080
@rem End local scope for the variables with windows NT shell

samples/grpc-client/build.gradle

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,17 @@ plugins {
88
group = 'com.example'
99
version = '1.0.0-SNAPSHOT'
1010

11+
def toolchainVersion() {
12+
if (project.hasProperty('testToolchain')) {
13+
return project.property('testToolchain').toString().toInteger()
14+
}
15+
return 17
16+
}
17+
1118
java {
12-
toolchain {
13-
languageVersion = JavaLanguageVersion.of(17)
14-
}
19+
toolchain {
20+
languageVersion = JavaLanguageVersion.of(toolchainVersion())
21+
}
1522
}
1623

1724
repositories {
@@ -21,9 +28,11 @@ repositories {
2128
maven { url 'https://repo.spring.io/snapshot' }
2229
}
2330

31+
def springGrpcVersion = project.properties['springGrpcVersion'] ?: '1.0.0-SNAPSHOT'
32+
2433
dependencyManagement {
2534
imports {
26-
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:1.0.0-SNAPSHOT'
35+
mavenBom "org.springframework.grpc:spring-grpc-dependencies:${springGrpcVersion}"
2736
}
2837
}
2938

samples/grpc-oauth2/build.gradle

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,16 @@ plugins {
99
group = 'com.example'
1010
version = '1.0.0-SNAPSHOT'
1111

12+
def toolchainVersion() {
13+
if (project.hasProperty('testToolchain')) {
14+
return project.property('testToolchain').toString().toInteger()
15+
}
16+
return 17
17+
}
18+
1219
java {
1320
toolchain {
14-
languageVersion = JavaLanguageVersion.of(17)
21+
languageVersion = JavaLanguageVersion.of(toolchainVersion())
1522
}
1623
}
1724

@@ -26,10 +33,12 @@ repositories {
2633
maven { url 'https://repo.spring.io/snapshot' }
2734
}
2835

36+
def springGrpcVersion = project.properties['springGrpcVersion'] ?: '1.0.0-SNAPSHOT'
37+
2938
dependencyManagement {
30-
imports {
31-
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:1.0.0-SNAPSHOT'
32-
}
39+
imports {
40+
mavenBom "org.springframework.grpc:spring-grpc-dependencies:${springGrpcVersion}"
41+
}
3342
}
3443

3544
dependencies {

samples/grpc-reactive/build.gradle

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,16 @@ plugins {
88
group = 'com.example'
99
version = '1.0.0-SNAPSHOT'
1010

11+
def toolchainVersion() {
12+
if (project.hasProperty('testToolchain')) {
13+
return project.property('testToolchain').toString().toInteger()
14+
}
15+
return 17
16+
}
17+
1118
java {
1219
toolchain {
13-
languageVersion = JavaLanguageVersion.of(17)
20+
languageVersion = JavaLanguageVersion.of(toolchainVersion())
1421
}
1522
}
1623

@@ -21,9 +28,11 @@ repositories {
2128
maven { url 'https://repo.spring.io/snapshot' }
2229
}
2330

31+
def springGrpcVersion = project.properties['springGrpcVersion'] ?: '1.0.0-SNAPSHOT'
32+
2433
dependencyManagement {
2534
imports {
26-
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:1.0.0-SNAPSHOT'
35+
mavenBom "org.springframework.grpc:spring-grpc-dependencies:${springGrpcVersion}"
2736
}
2837
}
2938

samples/grpc-server-kotlin/build.gradle

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,18 @@ plugins {
1010
group = 'com.example'
1111
version = '1.0.0-SNAPSHOT'
1212

13+
def toolchainVersion() {
14+
// Highest jvm supported is 24
15+
if (project.hasProperty('testToolchain')) {
16+
def jvmVersion = project.property('testToolchain').toString().toInteger()
17+
return jvmVersion == 25 ? 24 : jvmVersion
18+
}
19+
return 17
20+
}
21+
1322
java {
1423
toolchain {
15-
languageVersion = JavaLanguageVersion.of(17)
24+
languageVersion = JavaLanguageVersion.of(toolchainVersion())
1625
}
1726
}
1827

@@ -23,9 +32,11 @@ repositories {
2332
maven { url 'https://repo.spring.io/snapshot' }
2433
}
2534

35+
def springGrpcVersion = project.properties['springGrpcVersion'] ?: '1.0.0-SNAPSHOT'
36+
2637
dependencyManagement {
2738
imports {
28-
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:1.0.0-SNAPSHOT'
39+
mavenBom "org.springframework.grpc:spring-grpc-dependencies:${springGrpcVersion}"
2940
}
3041
}
3142

samples/grpc-server-netty-shaded/build.gradle

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,16 @@ plugins {
99
group = 'com.example'
1010
version = '1.0.0-SNAPSHOT'
1111

12+
def toolchainVersion() {
13+
if (project.hasProperty('testToolchain')) {
14+
return project.property('testToolchain').toString().toInteger()
15+
}
16+
return 17
17+
}
18+
1219
java {
1320
toolchain {
14-
languageVersion = JavaLanguageVersion.of(17)
21+
languageVersion = JavaLanguageVersion.of(toolchainVersion())
1522
}
1623
}
1724

@@ -22,9 +29,11 @@ repositories {
2229
maven { url 'https://repo.spring.io/snapshot' }
2330
}
2431

32+
def springGrpcVersion = project.properties['springGrpcVersion'] ?: '1.0.0-SNAPSHOT'
33+
2534
dependencyManagement {
2635
imports {
27-
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:1.0.0-SNAPSHOT'
36+
mavenBom "org.springframework.grpc:spring-grpc-dependencies:${springGrpcVersion}"
2837
}
2938
}
3039

0 commit comments

Comments
 (0)