Skip to content

Commit df5e923

Browse files
committed
Update workflows
* use arm macos on CI * update versions of actions * minor cleanup
1 parent cd050d5 commit df5e923

File tree

5 files changed

+82
-165
lines changed

5 files changed

+82
-165
lines changed
Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,37 @@
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/wrapper-validation-action@v2
28+
- uses: gradle/actions/setup-gradle@v3
3829
with:
30+
build-scan-publish: true
31+
build-scan-terms-of-service-url: "https://gradle.com/terms-of-service"
32+
build-scan-terms-of-service-agree: "yes"
33+
3934
cache-disabled: ${{ inputs.cache-disabled }}
4035
cache-read-only: ${{ inputs.cache-read-only }}
41-
gradle-home-cache-includes: |
42-
caches
43-
notifications
44-
konan
45-
nodejs
46-
yarn
36+
37+
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 & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,120 +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-
jvmAllTest
17-
--scan
18-
--info
19-
--continue
20-
- if: always()
21-
uses: actions/upload-artifact@v3
22-
with:
23-
name: test-reports
24-
path: "**/build/test-results/*Test/TEST-*.xml"
25-
retention-days: 1
20+
cache-read-only: ${{ github.ref_name != 'main' }}
2621

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

50-
native-test:
51-
name: Run Native(${{ matrix.target }}) tests
24+
run-tests:
5225
runs-on: ${{ matrix.os }}
5326
strategy:
5427
fail-fast: false
5528
matrix:
56-
os: [ macos-latest ]
57-
target: [ macosX64, iosX64, tvosX64, watchosX64 ]
29+
os: [ 'ubuntu-latest' ]
30+
target: [ 'jvmAll', 'js', 'native' ]
5831
include:
59-
- os: ubuntu-latest
60-
target: linuxX64
61-
- os: windows-latest
62-
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'
6342
steps:
64-
- uses: actions/checkout@v3
43+
- uses: actions/checkout@v4
6544
- uses: ./.github/actions/setup-gradle
66-
- name: Run tests
45+
46+
- run: ./gradlew ${{ matrix.target }}Test --continue
6747
timeout-minutes: 30
68-
uses: gradle/gradle-build-action@v2
69-
with:
70-
arguments: |
71-
${{ matrix.target }}Test
72-
${{ matrix.target }}ReleaseTest
73-
--scan
74-
--info
75-
--continue
76-
- if: always()
77-
uses: actions/upload-artifact@v3
48+
49+
- if: always() && !cancelled()
50+
uses: actions/upload-artifact@v4
7851
with:
79-
name: test-reports
52+
name: test-reports-${{ matrix.os }}-${{ matrix.target }}
8053
path: "**/build/test-results/*Test/TEST-*.xml"
8154
retention-days: 1
8255

8356
publish-test-results:
84-
needs: [ jvm-test, js-test, native-test ]
57+
needs: [ run-tests ]
8558
if: always()
8659
name: Publish test report
8760
runs-on: ubuntu-latest
8861
permissions:
8962
checks: write
9063
pull-requests: write
9164
steps:
92-
- uses: actions/download-artifact@v3
65+
- uses: actions/download-artifact@v4
9366
with:
94-
name: test-reports
67+
pattern: test-reports-*
9568
path: test-reports
69+
merge-multiple: 'true'
9670
- name: Publish Test Report
9771
uses: EnricoMi/publish-unit-test-result-action@v2
9872
with:
9973
files: test-reports/**/TEST-*.xml
100-
101-
build-project:
102-
name: Build project on ${{ matrix.os }}
103-
runs-on: ${{ matrix.os }}
104-
strategy:
105-
fail-fast: false
106-
matrix:
107-
os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
108-
steps:
109-
- uses: actions/checkout@v3
110-
- uses: ./.github/actions/setup-gradle
111-
- name: Build project without running tests
112-
uses: gradle/gradle-build-action@v2
113-
with:
114-
arguments: |
115-
build
116-
publishToMavenLocal
117-
--scan
118-
--info
119-
--continue
120-
-Prsocketbuild.skipTests=true

0 commit comments

Comments
 (0)