Merge pull request #970 from simple-robot/dependabot/gradle/v4-dev/co… #169
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish v4 Snapshot | |
on: # push | |
workflow_dispatch: | |
push: | |
branches: | |
- v4-dev | |
- v4-dev-snapshot** | |
- v4.*.** | |
paths: | |
- 'buildSrc' | |
- '**src/**/kotlin/**.kt' | |
- '**src/**/java/**.java' | |
- '**/src/**/kotlin/**.kt' | |
- '**/src/**/java/**.java' | |
- '**/build.gradle.kts' | |
- 'build.gradle.kts' | |
- 'settings.gradle.kts' | |
- 'gradle.properties' | |
env: | |
JAVA_VERSION: 21 | |
JAVA_DISTRIBUTION: zulu | |
GRADLE_VERSION: 8.5 | |
NODE_VERSION: 22 | |
IS_CI: true | |
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} | |
GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }} | |
GPG_PASSWORD: ${{ secrets.GPG_PASSWORD }} | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
SIMBOT_IS_SNAPSHOT: true | |
SIMBOT_SNAPSHOT_ONLY: true | |
GRADLE_OPTS: "-XX:MaxMetaspaceSize=2g -Dfile.encoding=UTF-8" | |
jobs: | |
run-tests: | |
name: Run all tests | |
strategy: | |
matrix: | |
os: [ macos-latest, windows-latest, ubuntu-latest ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
java-version: ${{ env.JAVA_VERSION }} | |
cache: 'gradle' | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
gradle-version: ${{ env.GRADLE_VERSION }} | |
- run: gradle assemble allTests -s | |
- name: Upload test reports | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: test-reports-${{ matrix.os }} | |
path: '**/build/reports/tests' | |
retention-days: 7 | |
publish-v4-snapshot: | |
name: Publish v4 snapshot | |
needs: run-tests | |
runs-on: macos-latest | |
steps: | |
# 检出仓库代码 | |
- uses: actions/checkout@v4 | |
# setup Java | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
java-version: ${{ env.JAVA_VERSION }} | |
cache: 'gradle' | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Publish snapshots | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
gradle-version: ${{ env.GRADLE_VERSION }} | |
arguments: | | |
publishToSonatype | |
closeAndReleaseStagingRepositories | |
--info | |
--warning-mode all | |
-x test | |
-Porg.gradle.jvmargs="-Xms4G -XX:MaxMetaspaceSize=1G -Dfile.encoding=UTF-8" | |
env: | |
SIMBOT_IS_SNAPSHOT: true | |
# parallel=true 容易出现 Metaspace 的异常? 去了试试 | |
deploy-doc: | |
name: Deploy snapshots API doc | |
needs: publish-v4-snapshot | |
runs-on: macos-latest # ubuntu-latest | |
steps: | |
# 检出仓库代码 | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
fetch-depth: 0 | |
# setup Java | |
- name: Setup java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
java-version: ${{ env.JAVA_VERSION }} | |
cache: 'gradle' | |
# setup Gradle | |
- name: Gradle generate documentation | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
gradle-version: ${{ env.GRADLE_VERSION }} | |
arguments: | | |
dokkaHtmlMultiModule | |
-s | |
--warning-mode all | |
-x test | |
-Porg.gradle.jvmargs="-Xms4G -XX:MaxMetaspaceSize=1G -Dfile.encoding=UTF-8" | |
# -Porg.gradle.parallel=false | |
# -Porg.gradle.daemon=false | |
env: | |
SIMBOT_IS_SNAPSHOT: true | |
# https://github.com/marketplace/actions/github-pages-action | |
- name: Push to doc repository | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
personal_token: ${{ secrets.PUSH_TOKEN }} | |
external_repository: simple-robot-library/simbot3-api-docs | |
publish_branch: kdoc-deploy/snapshots/main-v4 | |
publish_dir: ./build/dokka/html | |
destination_dir: snapshots/main-v4 |