Skip to content

Workflow file for this run

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: macos-14
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
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: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1.6.0
with:
xcode-version: 'latest-stable'
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Publish
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_TOKEN_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_TOKEN_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.MAVEN_TOKEN_USERNAME }}
ORG_GRADLE_PROJECT_SONATYPE_NEXUS_PASSWORD: ${{ secrets.MAVEN_TOKEN_PASSWORD }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_TOKEN_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_TOKEN_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