Deploy to central #29
Workflow file for this run
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: Deploy to central | |
on: | |
release: | |
types: | |
- published | |
concurrency: | |
group: release | |
cancel-in-progress: true | |
permissions: | |
contents: write | |
jobs: | |
deploy-android-sdk: | |
name: Deploy Android SDK | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/actions/wrapper-validation@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.konan | |
key: ${{ runner.os }}-${{ hashFiles('**/.lock') }} | |
- name: Import GPG key | |
uses: crazy-max/ghaction-import-gpg@v6 | |
with: | |
gpg_private_key: ${{ secrets.OSSRH_GPG_SECRET_KEY }} | |
passphrase: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 17 | |
- name: Write release version | |
run: | | |
TAG=${{ github.event.release.tag_name }} | |
echo Version: TAG | |
echo "SDK_VERSION=${TAG#v}" >> $GITHUB_ENV | |
- name: Build & Deploy | |
run: chmod +x gradlew && ./gradlew :shared:publishAllPublicationsToMavenCentralRepository :komoju-android-sdk:publishAllPublicationsToMavenCentralRepository --no-configuration-cache --no-daemon | |
env: | |
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.OSSRH_USERNAME }} | |
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.OSSRH_PASSWORD }} | |
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.MEMORY_KEY }} | |
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} | |
SDK_VERSION: ${{ env.SDK_VERSION }} | |
deploy-android-app: | |
name: Deploy Android App | |
needs: deploy-android-sdk | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/actions/wrapper-validation@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.konan | |
key: ${{ runner.os }}-${{ hashFiles('**/.lock') }} | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 17 | |
- name: Write release version | |
run: | | |
TAG=${{ github.event.release.tag_name }} | |
echo Version: TAG | |
echo "SDK_VERSION=${TAG#v}" >> $GITHUB_ENV | |
- name: Setup local.properties | |
run: | | |
touch local.properties | |
echo "TEST_SERVER_URL=${{ secrets.TEST_SERVER_URL }}" >> local.properties | |
cat local.properties | |
- name: Build SoundBud! | |
run: ./gradlew :example-android:assembleDevRelease | |
- name: Publish SoundBud! | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: example-android/build/outputs/apk/dev/release/example-android-dev-release.apk | |
asset_name: soundBud-release.apk | |
make_latest: false | |
env: | |
SDK_VERSION: ${{ env.SDK_VERSION }} | |
deploy-ios-sdk: | |
name: Deploy iOS SDK | |
runs-on: macos-latest-xlarge | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/actions/wrapper-validation@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.konan | |
key: ${{ runner.os }}-${{ hashFiles('**/.lock') }} | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '16.0.0' | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 17 | |
- name: Write release version | |
run: | | |
TAG=${{ github.event.release.tag_name }} | |
echo Version: TAG | |
echo "SDK_VERSION=${TAG#v}" >> $GITHUB_ENV | |
- name: Build Shared SDK framework | |
run: | | |
chmod +x gradlew && ./gradlew :shared:linkReleaseFrameworkIosArm64 :shared:linkReleaseFrameworkIosSimulatorArm64 --no-configuration-cache --no-daemon | |
rm -rf ./build/outputs/xcframework/KomojuSharedSDK.xcframework | |
xcodebuild -create-xcframework \ | |
-framework ./shared/build/bin/iosArm64/releaseFramework/komojuShared.framework \ | |
-framework ./shared/build/bin/iosSimulatorArm64/releaseFramework/komojuShared.framework \ | |
-output ./build/outputs/xcframework/KomojuSharedSDK.xcframework | |
zip -r KomojuSharedSDK.zip ./build/outputs/xcframework/KomojuSharedSDK.xcframework | |
- name: Build Shared SDK Swift Wrapper | |
working-directory: ./komoju-ios-sdk | |
run: | | |
# Build & Archive for iOS | |
xcodebuild archive \ | |
-scheme KomojuSDK \ | |
-configuration Release \ | |
-destination "generic/platform=iOS" \ | |
-archivePath "./build/xcframework/komoju_ios.xcarchive" \ | |
-sdk iphoneos \ | |
ONLY_ACTIVE_ARCH=NO \ | |
SKIP_INSTALL=NO \ | |
BUILD_LIBRARY_FOR_DISTRIBUTION=YES | |
# Build & Archive for iOS Simulator | |
xcodebuild archive \ | |
-scheme KomojuSDK \ | |
-configuration Release \ | |
-destination "generic/platform=iOS Simulator" \ | |
-archivePath "./build/xcframework/komoju_ios_simulators.xcarchive" \ | |
-sdk iphonesimulator \ | |
ONLY_ACTIVE_ARCH=NO \ | |
SKIP_INSTALL=NO \ | |
BUILD_LIBRARY_FOR_DISTRIBUTION=YES | |
rm -rf ./build/outputs/xcframework/KomojuIosSDK.xcframework | |
xcodebuild -create-xcframework \ | |
-framework ./build/xcframework/komoju_ios.xcarchive/Products/Library/Frameworks/KomojuSDK.framework \ | |
-framework ./build/xcframework/komoju_ios_simulators.xcarchive/Products/Library/Frameworks/KomojuSDK.framework \ | |
-output ./build/outputs/xcframework/KomojuIosSDK.xcframework | |
zip -r KomojuIosSDK.zip ./build/outputs/xcframework/KomojuIosSDK.xcframework | |
- name: Publish Shared SDK Framework! | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: KomojuSharedSDK.zip | |
make_latest: false | |
- name: Publish iOS SDK Framework! | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: komoju-ios-sdk/KomojuIosSDK.zip | |
make_latest: false |