Skip to content

Really fix compilation errors this time #22

Really fix compilation errors this time

Really fix compilation errors this time #22

Workflow file for this run

name: Build Artifacts for Publishing
on:
workflow_dispatch:
push:
branches:
- master
tags:
- 'v*'
env:
# GPG signature credentials
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_KEY }}
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
# Solo Studios maven repo credentials
ORG_GRADLE_PROJECT_SoloStudiosUsername: ${{ secrets.SOLO_STUDIOS_USERNAME }}
ORG_GRADLE_PROJECT_SoloStudiosPassword: ${{ secrets.SOLO_STUDIOS_PASSWORD }}
# Sonatype maven repo credentials
ORG_GRADLE_PROJECT_SonatypeUsername: ${{ secrets.SONATYPE_USERNAME }}
ORG_GRADLE_PROJECT_SonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
JAVA_VERSION: 17
JAVA_DISTRIBUTION: temurin
jobs:
create-staging-repo:
name: Create Sonatype Staging Repository
runs-on: ubuntu-latest
outputs:
repository-id: ${{ steps.create.outputs.repository_id }}
steps:
- name: Create Staging Repository
id: create
uses: nexus-actions/create-nexus-staging-repo@3e5e7209801629febdcf75541a4898710d28df9a
if: startsWith(github.ref, 'refs/tags') # Only publish to sonatype if tagged
with:
base_url: https://s01.oss.sonatype.org/service/local/
username: ${{ secrets.SONATYPE_USERNAME }}
password: ${{ secrets.SONATYPE_PASSWORD }}
staging_profile_id: ${{ secrets.SONATYPE_PROFILE_ID }}
description: ${{ github.repository }}/${{ github.workflow }}#${{ github.run_number }}
publish-windows:
name: Publish Windows Artifacts
runs-on: windows-latest
needs: [ create-staging-repo ]
env:
ORG_GRADLE_PROJECT_repositoryId: ${{ needs.create-staging-repo.outputs.repository-id }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-tags: true
- name: Setup Java
uses: actions/setup-java@v3
with:
java-version: "${{ env.JAVA_VERSION }}"
distribution: "${{ env.JAVA_DISTRIBUTION }}"
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Publish MinGW artifacts to solo studios
run: |
./gradlew publishMingwX64PublicationToSoloStudiosRepository
- name: Publish MinGW artifacts to Sonatype
if: startsWith(github.ref, 'refs/tags') # Only publish to sonatype if tagged
run: |
./gradlew publishMingwX64PublicationToSonatypeRepository
publish-mac:
name: Publish macOS artifacts
runs-on: macos-latest
needs: [ create-staging-repo ]
env:
ORG_GRADLE_PROJECT_repositoryId: ${{ needs.create-staging-repo.outputs.repository-id }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-tags: true
- name: Setup Java
uses: actions/setup-java@v3
with:
java-version: "${{ env.JAVA_VERSION }}"
distribution: "${{ env.JAVA_DISTRIBUTION }}"
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Publish MacOS/iOS/TvOS/WatchOS artifacts to solo studios
run: |
./gradlew \
publishMacosX64PublicationToSoloStudiosRepository \
publishMacosArm64PublicationToSoloStudiosRepository \
publishIosArm64PublicationToSoloStudiosRepository \
publishIosX64PublicationToSoloStudiosRepository \
publishIosSimulatorArm64PublicationToSoloStudiosRepository \
publishTvosX64PublicationToSoloStudiosRepository \
publishTvosArm64PublicationToSoloStudiosRepository \
publishTvosSimulatorArm64PublicationToSoloStudiosRepository \
publishWatchosX64PublicationToSoloStudiosRepository \
publishWatchosArm64PublicationToSoloStudiosRepository \
publishWatchosSimulatorArm64PublicationToSoloStudiosRepository
- name: Publish MacOS/iOS/TvOS/WatchOS artifacts to Sonatype
if: startsWith(github.ref, 'refs/tags') # Only publish to sonatype if tagged
run: |
./gradlew \
publishMacosX64PublicationToSonatypeRepository \
publishMacosArm64PublicationToSonatypeRepository \
publishIosArm64PublicationToSonatypeRepository \
publishIosX64PublicationToSonatypeRepository \
publishIosSimulatorArm64PublicationToSonatypeRepository \
publishTvosX64PublicationToSonatypeRepository \
publishTvosArm64PublicationToSonatypeRepository
publishTvosSimulatorArm64PublicationToSonatypeRepository \
publishWatchosX64PublicationToSonatypeRepository \
publishWatchosArm64PublicationToSonatypeRepository \
publishWatchosSimulatorArm64PublicationToSonatypeRepository
publish-linux:
name: Publish Linux Artifacts
runs-on: ubuntu-latest
needs: [ create-staging-repo ]
env:
ORG_GRADLE_PROJECT_repositoryId: ${{ needs.create-staging-repo.outputs.repository-id }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-tags: true
- name: Setup Java
uses: actions/setup-java@v3
with:
java-version: "${{ env.JAVA_VERSION }}"
distribution: "${{ env.JAVA_DISTRIBUTION }}"
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Publish Linux/Multiplatform/JVM/JS artifacts to solo studios
run: |
./gradlew \
publishLinuxX64PublicationToSoloStudiosRepository \
publishLinuxArm64PublicationToSoloStudiosRepository \
publishKotlinMultiplatformPublicationToSoloStudiosRepository \
publishJvmPublicationToSoloStudiosRepository \
publishJsPublicationToSoloStudiosRepository
- name: Publish Linux/Multiplatform/JVM/JS artifacts to Sonatype
if: startsWith(github.ref, 'refs/tags') # Only publish to sonatype if tagged
run: |
./gradlew \
publishLinuxX64PublicationToSonatypeRepository \
publishLinuxArm64PublicationToSonatypeRepository \
publishKotlinMultiplatformPublicationToSonatypeRepository \
publishJvmPublicationToSonatypeRepository \
publishJsPublicationToSonatypeRepository
# finalize:
# runs-on: ubuntu-latest
# needs: [ create-staging-repo, publish-windows, publish-mac, publish-linux ]
# if: ${{ always() && needs.create-staging-repo.result == 'success' }}
# steps:
# - name: Discard
# if: ${{ needs.publish-windows.result != 'success' || needs.publish-mac.result != 'success' || needs.publish-linux.result != 'success' }}
# uses: nexus-actions/drop-nexus-staging-repo@59443053a1b36f5f71ede68776d73294bf4bfb5e
# with:
# username: ${{ secrets.SONATYPE_USERNAME }}
# password: ${{ secrets.SONATYPE_PASSWORD }}
# staging_repository_id: ${{ needs.create-staging-repo.outputs.repository-id }}
# - name: Release
# if: ${{ needs.publish-windows.result == 'success' && needs.publish-mac.result == 'success' && needs.publish-linux.result == 'success' }}
# uses: nexus-actions/release-nexus-staging-repo@f2b4c7f64ecec2cb0d24349182c1bbeda5c4c056
# with:
# username: ${{ secrets.SONATYPE_USERNAME }}
# password: ${{ secrets.SONATYPE_PASSWORD }}
# staging_repository_id: ${{ needs.create-staging-repo.outputs.repository-id }}