Skip to content

Android Testing CI Workflow #19

Android Testing CI Workflow

Android Testing CI Workflow #19

name: Android Testing CI Workflow
on:
#push:
# branches:
# - master
# - develop
# paths-ignore:
# - '.github/**'
workflow_dispatch:
inputs:
build_animeworld:
description: 'Build AnimeWorld?'
required: false
default: 'true'
build_animeworldtv:
description: 'Build AnimeWorldTV?'
required: false
default: 'true'
build_mangaworld:
description: 'Build MangaWorld?'
required: false
default: 'true'
build_novelworld:
description: 'Build NovelWorld?'
required: false
default: 'true'
jobs:
mangaworld:
name: Generate MangaWorld APK
runs-on: ubuntu-latest
if: github.event.inputs.build_mangaworld == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- run: echo $MANGA_GOOGLE_SERVICES_JSON > mangaworld/google-services.json
env:
MANGA_GOOGLE_SERVICES_JSON: ${{ secrets.MANGA_SERVICES }}
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17
- name: Setup gradle
id: buildMangaApks
uses: gradle/[email protected]
with:
wrapper-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true
- name: Build MangaWorld artifacts
run: ./gradlew mangaworld:assembleRelease
- uses: kevin-david/[email protected]
name: Sign app APK
id: manga_sign
with:
releaseDirectory: mangaworld/build/outputs/apk/full/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- uses: kevin-david/[email protected]
name: Sign app APK
id: manga_sign_no_firebase
with:
releaseDirectory: mangaworld/build/outputs/apk/noFirebase/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Clean up MangaWorld artifacts
run: |
cp ${{ steps.manga_sign.outputs.signedReleaseFile }} mangaworld-release.apk
cp ${{ steps.manga_sign_no_firebase.outputs.signedReleaseFile }} mangaworld-no-firebase-release.apk
- uses: actions/upload-artifact@v4
with:
name: Signed Manga App
path: mangaworld-release.apk
- uses: actions/upload-artifact@v4
with:
name: Signed Manga No Firebase App
path: mangaworld-no-firebase-release.apk
animeworld:
name: Generate AnimeWorld APK
runs-on: ubuntu-latest
if: github.event.inputs.build_animeworld == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- run: echo $ANIME_GOOGLE_SERVICES_JSON > animeworld/google-services.json
env:
ANIME_GOOGLE_SERVICES_JSON: ${{ secrets.ANIME_SERVICES }}
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17
- name: Build AnimeWorld artifacts
id: buildAnimeApks
uses: gradle/[email protected]
with:
wrapper-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true
arguments: animeworld:assembleRelease
- uses: kevin-david/[email protected]
name: Sign app APK
id: anime_sign
with:
releaseDirectory: animeworld/build/outputs/apk/full/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- uses: kevin-david/[email protected]
name: Sign app APK
id: anime_sign_no_firebase
with:
releaseDirectory: animeworld/build/outputs/apk/noFirebase/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Clean up AnimeWorld artifacts
run: |
cp ${{ steps.anime_sign.outputs.signedReleaseFile }} animeworld-release.apk
cp ${{ steps.anime_sign_no_firebase.outputs.signedReleaseFile }} animeworld-no-firebase-release.apk
- uses: actions/upload-artifact@v4
with:
name: Signed Anime App
path: animeworld-release.apk
- uses: actions/upload-artifact@v4
with:
name: Signed Anime No Firebase App
path: animeworld-no-firebase-release.apk
animeworldtv:
name: Generate AnimeWorldTv APK
runs-on: ubuntu-latest
if: github.event.inputs.build_animeworldtv == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- run: echo $ANIME_TV_GOOGLE_SERVICES_JSON > animeworldtv/google-services.json
env:
ANIME_TV_GOOGLE_SERVICES_JSON: ${{ secrets.ANIME_TV_SERVICES }}
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17
- name: Build AnimeWorldTV artifacts
id: buildAnimeTvApks
uses: gradle/[email protected]
with:
wrapper-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true
arguments: animeworldtv:assembleRelease
- uses: kevin-david/[email protected]
name: Sign app APK
id: animetv_sign
with:
releaseDirectory: animeworldtv/build/outputs/apk/full/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- uses: kevin-david/[email protected]
name: Sign app APK
id: animetv_sign_no_firebase
with:
releaseDirectory: animeworldtv/build/outputs/apk/noFirebase/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Clean up AnimeWorldTV artifacts
run: |
cp ${{ steps.animetv_sign.outputs.signedReleaseFile }} animeworldtv-release.apk
cp ${{ steps.animetv_sign_no_firebase.outputs.signedReleaseFile }} animeworldtv-no-firebase-release.apk
- uses: actions/upload-artifact@v4
with:
name: Signed AnimeTV App
path: animeworldtv-release.apk
- uses: actions/upload-artifact@v4
with:
name: Signed AnimeTV No Firebase App
path: animeworldtv-no-firebase-release.apk
novelworld:
name: Generate NovelWorld APK
runs-on: ubuntu-latest
if: github.event.inputs.build_novelworld == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- run: echo $NOVEL_GOOGLE_SERVICES_JSON > novelworld/google-services.json
env:
NOVEL_GOOGLE_SERVICES_JSON: ${{ secrets.NOVEL_SERVICES }}
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17
- name: Build NovelWorld artifacts
id: buildNovelApks
uses: gradle/[email protected]
with:
wrapper-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true
arguments: novelworld:assembleRelease
- uses: kevin-david/[email protected]
name: Sign app APK
id: novel_sign
with:
releaseDirectory: novelworld/build/outputs/apk/full/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- uses: kevin-david/[email protected]
name: Sign app APK
id: novel_sign_no_firebase
with:
releaseDirectory: novelworld/build/outputs/apk/noFirebase/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Clean up NovelWorld artifacts
run: |
cp ${{ steps.novel_sign.outputs.signedReleaseFile }} novelworld-release.apk
cp ${{ steps.novel_sign_no_firebase.outputs.signedReleaseFile }} novelworld-no-firebase-release.apk
- uses: actions/upload-artifact@v4
with:
name: Signed Novel App
path: novelworld-release.apk
- uses: actions/upload-artifact@v4
with:
name: Signed Novel No Firebase App
path: novelworld-no-firebase-release.apk