Skip to content

Commit ef128c9

Browse files
committed
Update workflows
* use arm macos on CI * update versions of actions * minor cleanup * split jvm runs
1 parent 5f29d02 commit ef128c9

File tree

5 files changed

+83
-168
lines changed

5 files changed

+83
-168
lines changed
Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,38 @@
1-
name: "Setup Gradle"
2-
description: "Setup konan relocation and gradle caching specific to kotlin MPP"
1+
name: 'Setup Gradle'
2+
description: 'Setup JDK and Gradle'
33
inputs:
4-
os:
5-
required: true
6-
description: "OS"
7-
default: ${{ matrix.os }}
84
cache-disabled:
9-
description: When 'true', all caching is disabled. No entries will be written to or read from the cache.
10-
required: false
11-
default: false
5+
description: 'gradle.cache-disabled'
6+
default: 'false'
127
cache-read-only:
13-
description: |
14-
When 'true', existing entries will be read from the cache but no entries will be written.
15-
By default this value is 'false' for workflows on the GitHub default branch and 'true' for workflows on other branches.
16-
required: false
17-
default: ${{ github.event.repository != null && github.ref_name != github.event.repository.default_branch }}
8+
description: 'gradle.cache-read-only'
9+
default: 'true'
1810
runs:
19-
# noinspection YAMLSchemaValidation
20-
using: "composite"
11+
using: 'composite'
2112
steps:
22-
- if: inputs.os != 'windows-latest'
23-
run: echo "KONAN_DATA_DIR=${HOME}/.gradle/konan" >> $GITHUB_ENV
24-
shell: bash
25-
- if: inputs.os == 'windows-latest'
26-
run: echo "KONAN_DATA_DIR=${USERPROFILE}\.gradle\konan" >> $GITHUB_ENV
27-
shell: bash
28-
- uses: actions/setup-java@v3
13+
# On Windows/Linux runners temurin JDK 8, 11, 17, 21 are cached
14+
# On macOS arm64 runners temurin JDK 11, 17, 21 are cached; temurin JDK 8 is not available to download
15+
- uses: actions/setup-java@v4
16+
with:
17+
distribution: ${{ (runner.os == 'macOS' && runner.arch == 'ARM64') && 'zulu' || 'temurin' }}
18+
java-version: 8
19+
- uses: actions/setup-java@v4
2920
with:
3021
distribution: 'temurin'
22+
# the latest listed version will be used for executions of Gradle
3123
java-version: |
32-
8
3324
11
3425
17
3526
21
36-
- name: Setup gradle
37-
uses: gradle/gradle-build-action@v2
27+
- uses: gradle/actions/setup-gradle@v3
3828
with:
29+
build-scan-publish: true
30+
build-scan-terms-of-use-url: "https://gradle.com/terms-of-service"
31+
build-scan-terms-of-use-agree: "yes"
32+
33+
validate-wrappers: true
34+
3935
cache-disabled: ${{ inputs.cache-disabled }}
4036
cache-read-only: ${{ inputs.cache-read-only }}
41-
gradle-home-cache-includes: |
42-
caches
43-
notifications
44-
konan
45-
nodejs
46-
yarn
37+
38+
gradle-home-cache-cleanup: true

.github/workflows/ci-samples.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,12 @@ jobs:
1414
strategy:
1515
fail-fast: false
1616
matrix:
17-
os: [ ubuntu-latest, windows-latest, macos-latest ]
17+
os: [ ubuntu-latest, windows-latest, macos-14 ]
1818
sample: [ chat ]
1919
steps:
20-
- uses: actions/checkout@v3
20+
- uses: actions/checkout@v4
2121
- uses: ./.github/actions/setup-gradle
2222
with:
2323
cache-read-only: true
24-
- uses: gradle/gradle-build-action@v2
25-
with:
26-
arguments: build --continue
27-
build-root-directory: samples/${{ matrix.sample }}
24+
- run: ./gradlew build --continue
25+
working-directory: samples/${{ matrix.sample }}

.github/workflows/publish-release.yml

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,32 @@ name: Publish RELEASE to Maven Central
22
on:
33
workflow_call:
44

5+
concurrency:
6+
group: publish-release
7+
cancel-in-progress: false
8+
59
jobs:
610
publish:
711
if: github.repository == 'rsocket/rsocket-kotlin'
8-
runs-on: macos-latest
9-
concurrency:
10-
group: publish-release
11-
cancel-in-progress: false
12+
runs-on: macos-14
1213
steps:
13-
- uses: actions/checkout@v3
14+
- uses: actions/checkout@v4
1415
- uses: ./.github/actions/setup-gradle
1516
with:
1617
cache-disabled: true
1718

1819
- name: Publish to Maven Local (prepare packages)
19-
uses: gradle/gradle-build-action@v2
20+
run: ./gradlew publishToMavenLocal -Pversion=${{ github.ref_name }} --no-configuration-cache
2021
env:
2122
ORG_GRADLE_PROJECT_signingKey: ${{secrets.signingKey}}
2223
ORG_GRADLE_PROJECT_signingPassword: ${{secrets.signingPassword}}
2324
ORG_GRADLE_PROJECT_sonatypeUsername: ${{secrets.sonatypeUsername}}
2425
ORG_GRADLE_PROJECT_sonatypePassword: ${{secrets.sonatypePassword}}
25-
with:
26-
arguments: |
27-
publishToMavenLocal
28-
--scan
29-
--info
30-
-Pversion=${{ github.ref_name }}
3126

3227
- name: Publish release to Maven Central (version ${{ github.ref_name }})
33-
uses: gradle/gradle-build-action@v2
28+
run: ./gradlew publishAllPublicationsToMavenCentralRepository -Pversion=${{ github.ref_name }} --no-configuration-cache
3429
env:
3530
ORG_GRADLE_PROJECT_signingKey: ${{secrets.signingKey}}
3631
ORG_GRADLE_PROJECT_signingPassword: ${{secrets.signingPassword}}
3732
ORG_GRADLE_PROJECT_sonatypeUsername: ${{secrets.sonatypeUsername}}
3833
ORG_GRADLE_PROJECT_sonatypePassword: ${{secrets.sonatypePassword}}
39-
with:
40-
arguments: |
41-
publishAllPublicationsToSonatypeRepository
42-
--scan
43-
--info
44-
-Pversion=${{ github.ref_name }}

.github/workflows/publish-snapshot.yml

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,20 @@ on:
66
type: boolean
77
required: true
88

9+
concurrency:
10+
group: publish-snapshot-${{ github.ref_name }}
11+
cancel-in-progress: false
12+
913
jobs:
1014
publish:
1115
if: github.repository == 'rsocket/rsocket-kotlin'
12-
runs-on: macos-latest
13-
concurrency:
14-
group: publish-snapshot-${{ github.ref_name }}
15-
cancel-in-progress: false
16+
runs-on: macos-14
1617
steps:
17-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@v4
1819
- uses: ./.github/actions/setup-gradle
1920
with:
2021
cache-read-only: true
22+
2123
- if: inputs.add-branch-suffix
2224
id: set-version
2325
run: |
@@ -26,23 +28,7 @@ jobs:
2628
echo "::set-output name=version-suffix::$branch_name"
2729
2830
- name: Publish to Maven Local (prepare packages)
29-
uses: gradle/gradle-build-action@v2
30-
with:
31-
arguments: |
32-
publishToMavenLocal
33-
--scan
34-
--info
35-
-PversionSuffix=${{ steps.set-version.outputs.version-suffix }}
36-
-PgithubUsername=${{ github.actor }}
37-
-PgithubPassword=${{ github.token }}
31+
run: ./gradlew publishToMavenLocal -PversionSuffix=${{ steps.set-version.outputs.version-suffix }} -PgithubUsername=${{ github.actor }} -PgithubPassword=${{ github.token }} --no-configuration-cache
3832

3933
- name: Publish snapshot to Github Packages (version x.y.z-${{ steps.set-version.outputs.version-suffix }}-SNAPSHOT)
40-
uses: gradle/gradle-build-action@v2
41-
with:
42-
arguments: |
43-
publishAllPublicationsToGithubRepository
44-
--scan
45-
--info
46-
-PversionSuffix=${{ steps.set-version.outputs.version-suffix }}
47-
-PgithubUsername=${{ github.actor }}
48-
-PgithubPassword=${{ github.token }}
34+
run: ./gradlew publishAllPublicationsToGithubRepository -PversionSuffix=${{ steps.set-version.outputs.version-suffix }} -PgithubUsername=${{ github.actor }} -PgithubPassword=${{ github.token }} --no-configuration-cache

.github/workflows/run-tests.yml

Lines changed: 38 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,73 @@
11
name: Run tests on all platforms
22
on: [ workflow_call, workflow_dispatch ]
33

4+
defaults:
5+
run:
6+
shell: bash
7+
48
jobs:
5-
jvm-test:
6-
name: Run JVM tests
7-
runs-on: ubuntu-latest
9+
build-project:
10+
name: Build project on ${{ matrix.os }}
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
os: [ 'ubuntu-latest', 'macos-14', 'windows-latest' ]
816
steps:
9-
- uses: actions/checkout@v3
17+
- uses: actions/checkout@v4
1018
- uses: ./.github/actions/setup-gradle
11-
- name: Run tests
12-
timeout-minutes: 15
13-
uses: gradle/gradle-build-action@v2
1419
with:
15-
arguments: |
16-
jvmTest
17-
jvm11Test
18-
jvm17Test
19-
jvm21Test
20-
--scan
21-
--info
22-
--continue
23-
- if: always()
24-
uses: actions/upload-artifact@v3
25-
with:
26-
name: test-reports
27-
path: "**/build/test-results/*Test/TEST-*.xml"
28-
retention-days: 1
20+
cache-read-only: ${{ github.ref_name != 'main' }}
2921

30-
js-test:
31-
name: Run JS tests
32-
runs-on: ubuntu-latest
33-
steps:
34-
- uses: actions/checkout@v3
35-
- uses: ./.github/actions/setup-gradle
36-
- name: Run tests
37-
timeout-minutes: 15
38-
uses: gradle/gradle-build-action@v2
39-
with:
40-
arguments: |
41-
jsNodeTest
42-
jsBrowserTest
43-
--scan
44-
--info
45-
--continue
46-
- if: always()
47-
uses: actions/upload-artifact@v3
48-
with:
49-
name: test-reports
50-
path: "**/build/test-results/*Test/TEST-*.xml"
51-
retention-days: 1
22+
- run: ./gradlew build publishToMavenLocal --continue -Prsocketbuild.skipTests=true
5223

53-
native-test:
54-
name: Run Native(${{ matrix.target }}) tests
24+
run-tests:
5525
runs-on: ${{ matrix.os }}
5626
strategy:
5727
fail-fast: false
5828
matrix:
59-
os: [ macos-latest ]
60-
target: [ macosX64, iosX64, tvosX64, watchosX64 ]
29+
os: [ 'ubuntu-latest' ]
30+
target: [ 'jvm', 'jvm11', 'jvm17', 'jvm21', 'js', 'native' ]
6131
include:
62-
- os: ubuntu-latest
63-
target: linuxX64
64-
- os: windows-latest
65-
target: mingwX64
32+
- os: 'macos-14'
33+
target: 'macos'
34+
- os: 'macos-14'
35+
target: 'ios'
36+
- os: 'macos-14'
37+
target: 'watchos'
38+
- os: 'macos-14'
39+
target: 'tvos'
40+
- os: 'windows-latest'
41+
target: 'native'
6642
steps:
67-
- uses: actions/checkout@v3
43+
- uses: actions/checkout@v4
6844
- uses: ./.github/actions/setup-gradle
69-
- name: Run tests
45+
46+
- run: ./gradlew ${{ matrix.target }}Test --continue
7047
timeout-minutes: 30
71-
uses: gradle/gradle-build-action@v2
72-
with:
73-
arguments: |
74-
${{ matrix.target }}Test
75-
${{ matrix.target }}ReleaseTest
76-
--scan
77-
--info
78-
--continue
79-
- if: always()
80-
uses: actions/upload-artifact@v3
48+
49+
- if: always() && !cancelled()
50+
uses: actions/upload-artifact@v4
8151
with:
82-
name: test-reports
52+
name: test-reports-${{ matrix.os }}-${{ matrix.target }}
8353
path: "**/build/test-results/*Test/TEST-*.xml"
8454
retention-days: 1
8555

8656
publish-test-results:
87-
needs: [ jvm-test, js-test, native-test ]
57+
needs: [ run-tests ]
8858
if: always()
8959
name: Publish test report
9060
runs-on: ubuntu-latest
9161
permissions:
9262
checks: write
9363
pull-requests: write
9464
steps:
95-
- uses: actions/download-artifact@v3
65+
- uses: actions/download-artifact@v4
9666
with:
97-
name: test-reports
67+
pattern: test-reports-*
9868
path: test-reports
69+
merge-multiple: 'true'
9970
- name: Publish Test Report
10071
uses: EnricoMi/publish-unit-test-result-action@v2
10172
with:
10273
files: test-reports/**/TEST-*.xml
103-
104-
build-project:
105-
name: Build project on ${{ matrix.os }}
106-
runs-on: ${{ matrix.os }}
107-
strategy:
108-
fail-fast: false
109-
matrix:
110-
os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
111-
steps:
112-
- uses: actions/checkout@v3
113-
- uses: ./.github/actions/setup-gradle
114-
- name: Build project without running tests
115-
uses: gradle/gradle-build-action@v2
116-
with:
117-
arguments: |
118-
build
119-
publishToMavenLocal
120-
--scan
121-
--info
122-
--continue
123-
-Prsocketbuild.skipTests=true

0 commit comments

Comments
 (0)