add deploy web action #38
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: Release | |
on: | |
push: | |
tags: | |
- "v*.*.*" | |
jobs: | |
release: | |
name: Create release | |
runs-on: ubuntu-latest | |
outputs: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
steps: | |
- name: Extract version name | |
id: extract_name | |
run: echo "name=$(echo ${GITHUB_REF##*/})" >>$GITHUB_OUTPUT | |
shell: bash | |
- name: Create release | |
id: create_release | |
uses: ncipollo/release-action@v1 | |
with: | |
name: Release ${{ steps.extract_name.outputs.name }} | |
build-server: | |
name: Build server | |
runs-on: ubuntu-latest | |
needs: release | |
steps: | |
- name: Checkout to push branch | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.ref }} | |
fetch-depth: 0 | |
- name: Extract version from tag | |
uses: damienaicheh/[email protected] | |
- name: Set up JDK 19 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 19 | |
- name: Build distribution file | |
if: job.status == 'success' | |
run: | | |
chmod +x ./gradlew | |
./gradlew server:shadowJar | |
shell: bash | |
env: | |
VERSION: ${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }} | |
- name: Upload jar artifact file to release | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.release.outputs.upload_url }} | |
asset_path: ./server/build/libs/server-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}-all.jar | |
asset_name: MiniGames-Server-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.jar | |
asset_content_type: application/x-java-archive | |
- name: Upload jar artifact file to workflow run results | |
uses: actions/upload-artifact@v2 | |
with: | |
name: MiniGamesServer-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.jar | |
path: server/build/libs/server-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}-all.jar | |
build-desktop: | |
name: Build desktop release | |
strategy: | |
matrix: | |
platform: [ ubuntu-20.04, windows-2019, macos-12 ] | |
runs-on: ${{ matrix.platform }} | |
needs: release | |
steps: | |
- name: Checkout to push branch | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.ref }} | |
fetch-depth: 0 | |
- name: Extract version from tag | |
uses: damienaicheh/[email protected] | |
- name: Set up JDK 19 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 19 | |
- name: Build distribution file | |
if: job.status == 'success' | |
run: | | |
export GRADLE_USER_HOME=$(pwd)/.gradle | |
export DESKTOP_CLIENT_API_HOST=${{ secrets.API_HOST }} | |
export REST_CLIENT_API_SCHEME=https | |
export WEBSOCKET_CLIENT_API_SCHEME=wss | |
chmod +x ./gradlew | |
./gradlew desktop-app:packageDistributionForCurrentOS | |
shell: bash | |
env: | |
VERSION: ${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }} | |
- name: Upload deb artifact file to workflow run results | |
uses: actions/upload-artifact@v2 | |
if: runner.os == 'Linux' | |
with: | |
name: MiniGames-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.deb | |
path: desktop-app/build/compose/binaries/main/deb/minigames_${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}_amd64.deb | |
- name: Upload deb artifact file to release | |
uses: actions/upload-release-asset@v1 | |
if: runner.os == 'Linux' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.release.outputs.upload_url }} | |
asset_path: ./desktop-app/build/compose/binaries/main/deb/minigames_${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}_amd64.deb | |
asset_name: MiniGames-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.deb | |
asset_content_type: application/x-deb | |
- name: Upload msi installer file to workflow run results | |
uses: actions/upload-artifact@v2 | |
if: runner.os == 'Windows' | |
with: | |
name: MiniGames-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.msi | |
path: desktop-app/build/compose/binaries/main/msi/MiniGames-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.msi | |
- name: Upload msi installer file to release | |
uses: actions/upload-release-asset@v1 | |
if: runner.os == 'Windows' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.release.outputs.upload_url }} | |
asset_path: ./desktop-app/build/compose/binaries/main/msi/MiniGames-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.msi | |
asset_name: MiniGames-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.msi | |
asset_content_type: application/x-ms-dos-executable | |
- name: Upload dmg image file to workflow run results | |
uses: actions/upload-artifact@v2 | |
if: runner.os == 'macOS' | |
with: | |
name: MiniGames-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.dmg | |
path: desktop-app/build/compose/binaries/main/dmg/MiniGames-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.dmg | |
- name: Upload dmg image file to release | |
uses: actions/upload-release-asset@v1 | |
if: runner.os == 'macOS' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.release.outputs.upload_url }} | |
asset_path: ./desktop-app/build/compose/binaries/main/dmg/MiniGames-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.dmg | |
asset_name: MiniGames-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.dmg | |
asset_content_type: application/octet-stream | |
build-android: | |
name: Build android release | |
runs-on: ubuntu-latest | |
needs: release | |
steps: | |
- name: Checkout to push branch | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.ref }} | |
fetch-depth: 0 | |
- name: Extract version from tag | |
uses: damienaicheh/[email protected] | |
- name: Set up JDK 19 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 19 | |
- name: Decode Keystore | |
id: decode_keystore | |
uses: timheuer/[email protected] | |
with: | |
fileName: 'mini-games.jks' | |
encodedString: ${{ secrets.KEYSTORE }} | |
- name: Build APK file | |
if: job.status == 'success' | |
run: | | |
export GRADLE_USER_HOME=$(pwd)/.gradle | |
export ANDROID_CLIENT_API_HOST=${{ secrets.API_HOST }} | |
export REST_CLIENT_API_SCHEME=https | |
export WEBSOCKET_CLIENT_API_SCHEME=wss | |
chmod +x ./gradlew | |
./gradlew android-app:assembleDebug | |
./gradlew android-app:assembleRelease android-app:bundleRelease -Pandroid.injected.signing.store.file=$SIGNING_STORE_FILE -Pandroid.injected.signing.store.password=$SIGNING_STORE_PASSWORD -Pandroid.injected.signing.key.alias=$SIGNING_KEY_ALIAS -Pandroid.injected.signing.key.password=$SIGNING_KEY_PASSWORD | |
env: | |
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} | |
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} | |
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} | |
SIGNING_STORE_FILE: ${{ steps.decode_keystore.outputs.filePath }} | |
VERSION: ${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }} | |
BUMP_FILE_VERSION_CODE: true | |
- name: Upload debug artifact file to workflow run results | |
uses: actions/upload-artifact@v2 | |
with: | |
name: MiniGames-Debug-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.apk | |
path: android-app/build/outputs/apk/debug/android-app-debug.apk | |
- name: Upload release artifact file to workflow run results | |
uses: actions/upload-artifact@v2 | |
with: | |
name: MiniGames-Release-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.apk | |
path: android-app/build/outputs/apk/release/android-app-release.apk | |
- name: Upload release bundle file to workflow run results | |
uses: actions/upload-artifact@v2 | |
with: | |
name: MiniGames-Release-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.aab | |
path: android-app/build/outputs/bundle/release/android-app-release.aab | |
- name: Upload debug artifact file to release | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.release.outputs.upload_url }} | |
asset_path: ./android-app/build/outputs/apk/debug/android-app-debug.apk | |
asset_name: MiniGames-Debug-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.apk | |
asset_content_type: application/vnd.android.package-archive | |
- name: Upload release artifact file to release | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.release.outputs.upload_url }} | |
asset_path: ./android-app/build/outputs/apk/release/android-app-release.apk | |
asset_name: MiniGames-Release-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.apk | |
asset_content_type: application/vnd.android.package-archive | |
- name: Upload release bundle file to release | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.release.outputs.upload_url }} | |
asset_path: ./android-app/build/outputs/bundle/release/android-app-release.aab | |
asset_name: MiniGames-Release-${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}.aab | |
asset_content_type: application/x-authorware-bin | |
- name: Upload release bundle file to Google Play | |
uses: r0adkll/upload-google-play@v1 | |
with: | |
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }} | |
packageName: ml.dev.kotlin.minigames | |
releaseFiles: ./android-app/build/outputs/bundle/release/android-app-release.aab | |
track: production | |
releaseName: ${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }} | |
- name: Commit version code changes | |
run: | | |
git config --global user.name "${{ secrets.CI_COMMIT_AUTHOR }}" | |
git config --global user.email "${{ secrets.CI_COMMIT_EMAIL }}" | |
git commit version.properties -m "update version properties" | |
git push origin HEAD:master | |
build-web: | |
name: Build web release | |
runs-on: ubuntu-latest | |
needs: release | |
steps: | |
- name: Checkout to push branch | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.ref }} | |
fetch-depth: 0 | |
- name: Set up JDK 19 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 19 | |
- name: Build Wasm Distribution | |
if: job.status == 'success' | |
run: | | |
export GRADLE_USER_HOME=$(pwd)/.gradle | |
export WEB_CLIENT_API_HOST=${{ secrets.API_HOST }} | |
export REST_CLIENT_API_SCHEME=https | |
export WEBSOCKET_CLIENT_API_SCHEME=wss | |
chmod +x ./gradlew | |
./gradlew web-app:wasmJsBrowserDistribution | |
- name: Deploy | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./web-app/build/dist/wasmJs/productionExecutable | |
force_orphan: true |