@@ -2,54 +2,49 @@ name: Publish Release
22on :
33 push :
44 tags :
5- - v**
5+ - ' v4**'
6+
7+ concurrency :
8+ cancel-in-progress : true
9+ group : publish-release-${{ github.ref_name }}
610
711env :
812 JAVA_VERSION : 21
913 JAVA_DISTRIBUTION : zulu
14+ GRADLE_VERSION : 8.10.2
1015 IS_CI : true
11- GPG_KEY_ID : ${{ secrets.GPG_KEY_ID }}
12- GPG_SECRET_KEY : ${{ secrets.GPG_SECRET_KEY }}
13- GPG_PASSWORD : ${{ secrets.GPG_PASSWORD }}
14- OSSRH_USER : ${{ secrets.SONATYPE_USERNAME }}
15- OSSRH_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
16- SONATYPE_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
17- SONATYPE_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
16+ SIGNING_KEY_ID : ${{ secrets.GPG_KEY_ID }}
17+ GPG_KEY_CONTENTS : ${{ secrets.GPG_SECRET_KEY }}
18+ SIGNING_PASSWORD : ${{ secrets.GPG_PASSWORD }}
19+ MAVEN_CENTRAL_USERNAME : ${{ secrets.CENTRAL_PORTAL_USERNAME }}
20+ MAVEN_CENTRAL_PASSWORD : ${{ secrets.CENTRAL_PORTAL_PASSWORD }}
1821 GRADLE_OPTS : " -Xmx8g -Xms2g -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8"
19- GRADLE_VERSION : 8.5
2022
2123jobs :
2224 run-test :
23- name : Run all tests
25+ name : Run all tests for publish
2426 strategy :
2527 matrix :
26- os : [ macos-latest, ubuntu -latest, windows -latest ]
28+ os : [ macos-latest, windows -latest, ubuntu -latest ]
2729 runs-on : ${{ matrix.os }}
2830 steps :
29- # 检出仓库代码
3031 - uses : actions/checkout@v4
31- # setup Java
32- - name : Setup Java
33- uses : actions/setup-java@v4
32+ - uses : actions/setup-java@v4
3433 with :
3534 distribution : ${{ env.JAVA_DISTRIBUTION }}
3635 java-version : ${{ env.JAVA_VERSION }}
3736 cache : ' gradle'
37+
3838 # setup Gradle
39- # https://github.com/gradle/actions/blob/main/docs/setup-gradle.md
4039 - name : Setup Gradle
41- uses : gradle/actions/setup-gradle@v3
40+ uses : gradle/actions/setup-gradle@v4
4241 with :
4342 gradle-version : ${{ env.GRADLE_VERSION }}
44- arguments : |
45- assemble
46- allTests
47- --stacktrace
48- --warning-mode all
49- -Pkotlin.native.enableKlibsCrossCompilation=false
5043
51- # - name: Run all tests
52- # run: gradle assemble allTests --stacktrace --warning-mode all -Pkotlin.native.enableKlibsCrossCompilation=false
44+ - name : Gradle Run Test
45+ run : gradle assemble allTests -s --warning-mode all
46+ env :
47+ ORG_GRADLE_PROJECT_kotlin.native.enableKlibsCrossCompilation : false
5348
5449 publish-releases :
5550 name : Publish releases
@@ -58,31 +53,28 @@ jobs:
5853 # see https://kotlinlang.org/docs/multiplatform-publish-lib.html#host-requirements
5954 runs-on : ubuntu-latest
6055 steps :
61- # 检出仓库代码
6256 - uses : actions/checkout@v4
63- # setup Java
6457 - uses : actions/setup-java@v4
6558 with :
6659 distribution : ${{ env.JAVA_DISTRIBUTION }}
6760 java-version : ${{ env.JAVA_VERSION }}
6861 cache : ' gradle'
69-
70- # setup Gradle
71- - name : Publish releases
72- uses : gradle/actions/setup-gradle@v3
62+ - name : Setup Gradle
63+ uses : gradle/actions/setup-gradle@v4
7364 with :
7465 gradle-version : ${{ env.GRADLE_VERSION }}
75- arguments : |
76- publishToSonatype
77- closeAndReleaseStagingRepositories
78- --info
79- --warning-mode all
80- -x test
81- --build-cache
82- -Porg.gradle.jvmargs="-Xmx8g -Xms2g -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8"
66+
67+ - name : Publish releases
68+ run : gradle publishAndReleaseToMavenCentral -i --warning-mode all --no-configuration-cache -x test
8369 env :
8470 SIMBOT_IS_SNAPSHOT : false
8571 SIMBOT_RELEASES_ONLY : true
72+ ORG_GRADLE_PROJECT_org.gradle.jvmargs : " -Xmx8g -Xms2g -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8"
73+ ORG_GRADLE_PROJECT_mavenCentralUsername : ${{ env.MAVEN_CENTRAL_USERNAME }}
74+ ORG_GRADLE_PROJECT_mavenCentralPassword : ${{ env.MAVEN_CENTRAL_PASSWORD }}
75+ ORG_GRADLE_PROJECT_signingInMemoryKeyId : ${{ env.SIGNING_KEY_ID }}
76+ ORG_GRADLE_PROJECT_signingInMemoryKeyPassword : ${{ env.SIGNING_PASSWORD }}
77+ ORG_GRADLE_PROJECT_signingInMemoryKey : ${{ env.GPG_KEY_CONTENTS }}
8678
8779 create-release :
8880 name : Create release
@@ -92,58 +84,56 @@ jobs:
9284 contents : write
9385 steps :
9486 # 检出仓库代码
95- - uses : actions/checkout@v4
96- # setup Java
97- - uses : actions/setup-java@v4
98- with :
99- distribution : ${{ env.JAVA_DISTRIBUTION }}
100- java-version : ${{ env.JAVA_VERSION }}
101- cache : ' gradle'
87+ - name : Check Out Repo
88+ uses : actions/checkout@v4
10289
103- # setup Gradle
104- - name : Publish releases
105- uses : gradle/actions/setup-gradle@v3
90+ - name : Setup Gradle
91+ uses : gradle/actions/setup-gradle@v4
10692 with :
10793 gradle-version : ${{ env.GRADLE_VERSION }}
108- arguments : createChangelog
94+
95+ - name : Create changelog file
96+ run : gradle createChangelog -i
10997
11098 # Create gitHub release
11199 - name : Create Github Release
112100 uses : softprops/action-gh-release@v2
113101 with :
114102 token : ${{ secrets.PUSH_TOKEN }}
115- body : ' ${{ github.ref_name }}'
116103 body_path : .changelog/${{ github.ref_name }}.md
104+ body : ' '
117105 generate_release_notes : true
118- prerelease : ${{ contains(github.ref_name, 'preview') || contains(github.ref_name, 'alpha') }}
106+ prerelease : ${{ contains(github.ref_name, 'preview') || contains(github.ref_name, 'alpha') || contains(github.ref_name, 'dev') }}
119107
120108 deploy-doc :
121- name : Deploy KDoc
109+ name : Deploy-doc
122110 runs-on : ubuntu-latest
123111 needs : publish-releases
124112 steps :
125113 # 检出仓库代码
126- - uses : actions/checkout@v4
114+ - name : Check out repo
115+ uses : actions/checkout@v4
127116 with :
128117 persist-credentials : false
129118 fetch-depth : 0
130119 # setup Java
131- - uses : actions/setup-java@v4
120+ - name : Setup java
121+ uses : actions/setup-java@v4
132122 with :
133123 distribution : ${{ env.JAVA_DISTRIBUTION }}
134124 java-version : ${{ env.JAVA_VERSION }}
135125
136- - name : Generate documentation
137- uses : gradle/actions/setup-gradle@v3
126+ # setup Gradle
127+ - name : Setup Gradle
128+ uses : gradle/actions/setup-gradle@v4
138129 with :
139130 gradle-version : ${{ env.GRADLE_VERSION }}
140- arguments : |
141- dokkaGenerate
142- --info
143- --warning-mode all
144- -x test
145- --build-cache
146- -Porg.gradle.jvmargs="-Xmx8g -Xms2g -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8"
131+
132+ - name : Gradle generate documentation
133+ run : gradle dokkaGenerate -i --warning-mode all -x test --build-cache
134+ env :
135+ ORG_GRADLE_PROJECT_org.gradle.daemon : false
136+ ORG_GRADLE_PROJECT_org.gradle.jvmargs : " -Xmx4g -Xms4g -XX:MaxMetaspaceSize=2g -Dfile.encoding=UTF-8"
147137
148138 - name : Push to doc repository
149139 uses : peaceiris/actions-gh-pages@v3
0 commit comments