80 lines
3.0 KiB
YAML
80 lines
3.0 KiB
YAML
name: Publish release to Maven Central
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: 'Version to publish'
|
|
required: true
|
|
env:
|
|
PACKAGE_VERSION: ${{ github.event_name == 'release' && github.event.release.tag_name || github.event.inputs.version }}
|
|
jobs:
|
|
publish:
|
|
name: Run and publish release to Maven Central
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up JDK 17
|
|
uses: actions/setup-java@v3
|
|
with:
|
|
distribution: 'zulu'
|
|
java-version: '17'
|
|
|
|
- name: Cache gradle, wrapper and buildSrc
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-gradle-
|
|
|
|
- name: Cache konan
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.konan/cache
|
|
~/.konan/dependencies
|
|
~/.konan/kotlin-native-macos*
|
|
~/.konan/kotlin-native-mingw*
|
|
~/.konan/kotlin-native-windows*
|
|
~/.konan/kotlin-native-linux*
|
|
~/.konan/kotlin-native-prebuilt-macos*
|
|
~/.konan/kotlin-native-prebuilt-mingw*
|
|
~/.konan/kotlin-native-prebuilt-windows*
|
|
~/.konan/kotlin-native-prebuilt-linux*
|
|
key: ${{ runner.os }}-konan-${{ hashFiles('**/*.gradle*') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-konan-
|
|
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
|
|
- name: Publish
|
|
env:
|
|
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.JRELEASER_NEXUS2_USERNAME }}
|
|
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.JRELEASER_NEXUS2_PASSWORD }}
|
|
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_SIGNING_KEY }}
|
|
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.JRELEASER_GPG_PASSPHRASE }}
|
|
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
|
|
CI_FLOW: ${{ github.workflow }}
|
|
run: ./gradlew publish --stacktrace
|
|
|
|
- name: Finish Maven Central Release
|
|
env:
|
|
ORG_GRADLE_PROJECT_SONATYPE_NEXUS_USERNAME: ${{ secrets.JRELEASER_NEXUS2_USERNAME }}
|
|
ORG_GRADLE_PROJECT_SONATYPE_NEXUS_PASSWORD: ${{ secrets.JRELEASER_NEXUS2_PASSWORD }}
|
|
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.JRELEASER_NEXUS2_USERNAME }}
|
|
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.JRELEASER_NEXUS2_PASSWORD }}
|
|
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_SIGNING_KEY }}
|
|
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.JRELEASER_GPG_PASSPHRASE }}
|
|
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
|
|
CI_FLOW: ${{ github.workflow }}
|
|
run: ./gradlew releaseRepository --no-daemon --stacktrace
|