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