Project Engine Android Build #1
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: Project Engine Android Build | |
on: | |
# Triggers the workflow on push or pull request events but only for the master branch | |
push: | |
branches: [ Fraze-glow-camera ] | |
pull_request: | |
branches: [ Fraze-glow-camera ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
AndroidBuild: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
storage-type: [EXTERNAL] | |
permissions: write-all | |
steps: | |
- name: Checkout | |
uses: actions/checkout@main | |
- name: Setup Java JDK | |
uses: actions/setup-java@main | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup Haxe | |
uses: krdlab/setup-haxe@master | |
with: | |
haxe-version: latest | |
- name: Restore Previous Cache | |
id: cache-debug-build-android-restore | |
uses: actions/cache/restore@main | |
with: | |
path: | | |
.haxelib/ | |
export/release/android/haxe/ | |
export/release/android/obj/ | |
key: cache-android-build | |
- name: Install Libraries | |
run: | | |
haxelib setup ~/haxelib | |
haxelib install hmm --quiet | |
haxelib run hmm install --quiet | |
- name: Configure Android | |
run: | | |
haxelib run lime config ANDROID_SDK $ANDROID_HOME | |
haxelib run lime config ANDROID_NDK_ROOT $ANDROID_NDK_HOME | |
haxelib run lime config JAVA_HOME $JAVA_HOME | |
haxelib run lime config ANDROID_SETUP true | |
haxelib set SScript 8.1.6 | |
- name: Compile | |
run: haxelib run lime build android -D ${{ matrix.storage-type }} -arm64 -final | |
env: | |
cert_pass: nullfunni | |
cert_alias_pass: nullfunni | |
- name: Clear Previous Cache | |
uses: actions/github-script@main | |
with: | |
script: | | |
try { | |
const caches = await github.rest.actions.getActionsCacheList({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
}) | |
if (typeof caches.data.actions_caches != null && caches.data.actions_caches.length > 0) { | |
for (const cache of caches.data.actions_caches) { | |
if (cache.key == "cache-android-build") { | |
console.log('Clearing ' + cache.key + '...') | |
await github.rest.actions.deleteActionsCacheById({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
cache_id: cache.id, | |
}) | |
console.log("Previous Cache Cleared!") | |
} | |
} | |
} | |
} catch (error) { | |
console.log(error.message); | |
} | |
- name: Save Current Cache | |
id: cache-release-build-android-save | |
uses: actions/cache/save@main | |
with: | |
path: | | |
.haxelib/ | |
export/release/android/haxe/ | |
export/release/android/obj/ | |
key: cache-android-build | |
- name: Upload Artifact | |
if: ${{ success() }} | |
uses: actions/upload-artifact@main | |
with: | |
name: androidBuild-${{ matrix.storage-type }} | |
path: export/release/android/bin/app/build/outputs/apk/release/*.apk | |
if-no-files-found: error |