Skip to content

add deploy web action #38

add deploy web action

add deploy web action #38

Workflow file for this run

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