SB Engine workflow #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: SB Engine workflow | |
# Controls when the action will run. | |
on: | |
# Triggers the workflow on push or pull request events but only for the master branch | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
# This workflow contains a single job called "build" | |
Linux: | |
# The type of runner that the job will run on | |
runs-on: ubuntu-20.04 | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/[email protected] | |
- uses: krdlab/setup-haxe@master | |
with: | |
haxe-version: 4.3.6 | |
# Runs a set of commands using the runners shell | |
- name: Install Haxelib | |
run: | | |
DEBIAN_FRONTEND=noninteractive sudo apt-get -qq install -o Dpkg::Progress-Fancy="0" -o APT::Color="0" -o Dpkg::Use-Pty="0" libvlc-dev libvlccore-dev < /dev/null > /dev/null | |
haxelib git hxcpp https://github.com/mcagabe19-stuff/hxcpp --quiet | |
haxelib install lime 8.0.2 --quiet | |
haxelib install openfl --quiet | |
haxelib install flixel --quiet | |
haxelib install flixel-addons --quiet | |
haxelib install flixel-tools --quiet | |
haxelib install hscript-iris 1.1.0 -quiet | |
haxelib install tjson --quiet | |
haxelib git flxanimate https://github.com/Dot-Stuff/flxanimate 768740a56b26aa0c072720e0d1236b94afe68e3e --quiet | |
haxelib git linc_luajit https://github.com/superpowers04/linc_luajit 1906c4a96f6bb6df66562b3f24c62f4c5bba14a7 --quiet | |
haxelib git hxdiscord_rpc https://github.com/MAJigsaw77/hxdiscord_rpc e2e60371cc9e705417533a9421feacb91fa25113 --quiet --skip-dependencies | |
haxelib git hxvlc https://github.com/MAJigsaw77/hxvlc 70e7f5f3e76d526ac6fb8f0e6665efe7dfda589d --quiet --skip-dependencies | |
haxelib git funkin.vis https://github.com/FunkinCrew/funkVis d5361037efa3a02c4ab20b5bd14ca11e7d00f519 --quiet --skip-dependencies | |
haxelib git grig.audio https://gitlab.com/haxe-grig/grig.audio.git cbf91e2180fd2e374924fe74844086aab7891666 --quiet | |
- name: Create Version Tag | |
run: echo "${{github.run_id}}" > VERSION | |
- name: Configure Linux | |
run: | | |
haxelib run lime setup -alias -y | |
haxelib set lime 8.0.2 | |
haxelib set hscript-Iris 1.1.0 | |
haxelib list | |
- name: Building | |
run: | |
haxelib run lime build linux -D officialBuild | |
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-linux-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-linux-save | |
uses: actions/cache/save@main | |
with: | |
path: | | |
~/haxelib | |
~/.gradle | |
export/release/linux/haxe | |
export/release/linux/obj | |
key: cache-linux-build | |
- name: Publish Artifact | |
uses: actions/[email protected] | |
with: | |
name: sbEngineLinuxBuild | |
path: 'export/release/linux/bin' | |
Windows: | |
runs-on: windows-latest | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/[email protected] | |
- uses: krdlab/setup-haxe@master | |
with: | |
haxe-version: 4.3.6 | |
# Runs a set of commands using the runners shell | |
- name: Install Haxelib | |
run: | | |
haxelib git hxcpp https://github.com/mcagabe19-stuff/hxcpp --quiet | |
haxelib install lime 8.0.2 --quiet | |
haxelib install openfl --quiet | |
haxelib install flixel --quiet | |
haxelib install flixel-addons --quiet | |
haxelib install flixel-tools --quiet | |
haxelib install hscript-iris 1.1.0 -quiet | |
haxelib install tjson --quiet | |
haxelib git flxanimate https://github.com/Dot-Stuff/flxanimate 768740a56b26aa0c072720e0d1236b94afe68e3e --quiet | |
haxelib git linc_luajit https://github.com/superpowers04/linc_luajit 1906c4a96f6bb6df66562b3f24c62f4c5bba14a7 --quiet | |
haxelib git hxdiscord_rpc https://github.com/MAJigsaw77/hxdiscord_rpc e2e60371cc9e705417533a9421feacb91fa25113 --quiet --skip-dependencies | |
haxelib git hxvlc https://github.com/MAJigsaw77/hxvlc 70e7f5f3e76d526ac6fb8f0e6665efe7dfda589d --quiet --skip-dependencies | |
haxelib git funkin.vis https://github.com/FunkinCrew/funkVis d5361037efa3a02c4ab20b5bd14ca11e7d00f519 --quiet --skip-dependencies | |
haxelib git grig.audio https://gitlab.com/haxe-grig/grig.audio.git cbf91e2180fd2e374924fe74844086aab7891666 --quiet | |
shell: cmd | |
- name: Create Version Tag | |
run: echo "${{github.run_id}}" > VERSION | |
- name: Configure Windows | |
run: | | |
haxelib run lime setup -alias -y | |
haxelib set lime 8.0.2 | |
haxelib set hscript-Iris 1.1.0 | |
haxelib list | |
- name: Building | |
run: | |
haxelib run lime build windows -D officialBuild | |
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-windows-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-windows-save | |
uses: actions/cache/save@main | |
with: | |
path: | | |
~/haxelib | |
~/.gradle | |
export/release/windows/haxe | |
export/release/windows/obj | |
key: cache-windows-build | |
- name: Publish Artifact | |
uses: actions/[email protected] | |
with: | |
name: sbEngineWindowsBuild | |
path: export/release/windows/bin | |
Mac: | |
runs-on: macos-${{matrix.version}} | |
strategy: | |
matrix: | |
version: [12] | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/[email protected] | |
- uses: krdlab/setup-haxe@master | |
with: | |
haxe-version: 4.3.6 | |
# Runs a set of commands using the runners shell | |
- name: Install Haxelib | |
run: | | |
haxelib git hxcpp https://github.com/mcagabe19-stuff/hxcpp --quiet | |
haxelib install lime 8.0.2 --quiet | |
haxelib install openfl --quiet | |
haxelib install flixel --quiet | |
haxelib install flixel-addons --quiet | |
haxelib install flixel-tools --quiet | |
haxelib install hscript-iris 1.1.0 -quiet | |
haxelib install tjson --quiet | |
haxelib git flxanimate https://github.com/Dot-Stuff/flxanimate 768740a56b26aa0c072720e0d1236b94afe68e3e --quiet | |
haxelib git linc_luajit https://github.com/superpowers04/linc_luajit 1906c4a96f6bb6df66562b3f24c62f4c5bba14a7 --quiet | |
haxelib git hxdiscord_rpc https://github.com/MAJigsaw77/hxdiscord_rpc e2e60371cc9e705417533a9421feacb91fa25113 --quiet --skip-dependencies | |
haxelib git hxvlc https://github.com/MAJigsaw77/hxvlc 70e7f5f3e76d526ac6fb8f0e6665efe7dfda589d --quiet --skip-dependencies | |
haxelib git funkin.vis https://github.com/FunkinCrew/funkVis d5361037efa3a02c4ab20b5bd14ca11e7d00f519 --quiet --skip-dependencies | |
haxelib git grig.audio https://gitlab.com/haxe-grig/grig.audio.git cbf91e2180fd2e374924fe74844086aab7891666 --quiet | |
- name: Configure Mac | |
run: | | |
haxelib run lime setup -alias -y | |
haxelib set lime 8.0.2 | |
haxelib set hscript-Iris 1.1.0 | |
haxelib list | |
- name: Create Version Tag | |
run: echo "${{github.run_id}}" > VERSION | |
- name: Compile | |
run: haxelib run lime build mac -D officialBuild | |
- 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-macos-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-macos-save | |
uses: actions/cache/save@main | |
with: | |
path: | | |
~/haxelib | |
~/.gradle | |
export/release/macos/haxe | |
export/release/macos/obj | |
key: cache-macos-build | |
- name: Publish Artifact | |
uses: actions/[email protected] | |
with: | |
name: sbEngineMacOSBuild | |
path: export/release/macos/bin | |
Android: | |
name: Android | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@main | |
- name: Setup Android NDK | |
uses: nttld/setup-ndk@main | |
id: setup-ndk | |
with: | |
ndk-version: r21e | |
- name: Setup Java JDK | |
uses: actions/setup-java@main | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: Setup Haxe | |
uses: krdlab/setup-haxe@master | |
with: | |
haxe-version: 4.3.6 | |
# https://github.com/actions/runner-images/issues/10814 | |
- name: Workaround build-tools issue | |
if: inputs.name == 'Android' | |
run: | | |
curl https://dl.google.com/android/repository/build-tools_r35_macosx.zip > $ANDROID_HOME/build-tools_r35_macosx.zip | |
cd $ANDROID_HOME | |
mkdir build-tools | |
unzip build-tools_r35_macosx.zip | |
mv android-15 build-tools/35.0.0 | |
- name: Restore Previous Cache | |
id: cache-debug-build-android-restore | |
uses: actions/cache/restore@main | |
with: | |
path: | | |
~/haxelib | |
~/.gradle | |
export/release/android/haxe | |
export/release/android/obj | |
key: cache-android-build | |
- name: Install Haxelib | |
run: | | |
haxelib git hxcpp https://github.com/mcagabe19-stuff/hxcpp --quiet | |
haxelib install lime 8.0.2 | |
haxelib install openfl --quiet | |
haxelib install flixel --quiet | |
haxelib install flixel-addons --quiet | |
haxelib install flixel-tools --quiet | |
haxelib install hscript-iris 1.1.0 | |
haxelib install tjson 1.4.0 --quiet | |
haxelib git flxanimate https://github.com/Dot-Stuff/flxanimate 768740a56b26aa0c072720e0d1236b94afe68e3e --quiet | |
haxelib git linc_luajit https://github.com/mcagabe19-stuff/linc_luajit-rewriten --quiet | |
haxelib install hxvlc 1.9.2 --quiet --skip-dependencies | |
haxelib git funkin.vis https://github.com/FunkinCrew/funkVis 22b1ce089dd924f15cdc4632397ef3504d464e90 --quiet --skip-dependencies | |
haxelib git grig.audio https://gitlab.com/haxe-grig/grig.audio.git cbf91e2180fd2e374924fe74844086aab7891666 --quiet | |
haxelib git extension-androidtools https://github.com/MAJigsaw77/extension-androidtools --quiet --skip-dependencies | |
- name: Create Version Tag | |
run: echo "${{github.run_id}}" > VERSION | |
- name: Configure Android | |
run: | | |
haxelib run lime config ANDROID_SDK $ANDROID_HOME | |
haxelib run lime config ANDROID_NDK_ROOT $ANDROID_NDK_LATEST_HOME | |
haxelib run lime config JAVA_HOME="${JAVA_HOME_17_X64:-$JAVA_HOME_17_arm64}" | |
haxelib run lime config ANDROID_SETUP true | |
haxelib set lime 8.0.2 | |
haxelib set hscript-Iris 1.1.0 | |
haxelib set tjson 1.4.0 | |
haxelib list | |
env: | |
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} | |
- name: Building | |
run: | |
haxelib run lime build android -ONLY_ARMV7 | |
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 | |
~/.gradle | |
export/release/android/haxe | |
export/release/android/obj | |
key: cache-android-build | |
- name: Upload Artifact (Android) | |
if: ${{ success() }} | |
uses: actions/upload-artifact@main | |
with: | |
name: sbEngineAndroidBuild | |
path: export/release/android/bin/app/build/outputs/apk/release/*.apk | |
if-no-files-found: error | |
iOS: | |
name: iOS | |
runs-on: macos-14 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@main | |
- name: Setup Haxe | |
uses: krdlab/setup-haxe@master | |
with: | |
haxe-version: 4.3.6 | |
- name: Install Haxelib | |
run: | | |
haxelib setup ~/haxelib | |
haxelib git hxcpp https://github.com/mcagabe19-stuff/hxcpp --quiet | |
haxelib git lime https://github.com/mcagabe19-stuff/lime --quiet | |
haxelib install openfl --quiet | |
haxelib install flixel --quiet | |
haxelib install flixel-addons --quiet | |
haxelib install flixel-tools --quiet | |
haxelib install hscript-iris 1.1.0 | |
haxelib install tjson 1.4.0 --quiet | |
haxelib git flxanimate https://github.com/Dot-Stuff/flxanimate 768740a56b26aa0c072720e0d1236b94afe68e3e --quiet | |
haxelib git linc_luajit https://github.com/superpowers04/linc_luajit 1906c4a96f6bb6df66562b3f24c62f4c5bba14a7 --quiet | |
haxelib git hxvlc https://github.com/MAJigsaw77/hxvlc 70e7f5f3e76d526ac6fb8f0e6665efe7dfda589d --quiet --skip-dependencies | |
haxelib git funkin.vis https://github.com/FunkinCrew/funkVis d5361037efa3a02c4ab20b5bd14ca11e7d00f519 --quiet --skip-dependencies | |
haxelib git grig.audio https://gitlab.com/haxe-grig/grig.audio.git cbf91e2180fd2e374924fe74844086aab7891666 --quiet | |
haxelib git extension-androidtools https://github.com/MAJigsaw77/extension-androidtools 727693f0a76c6e396df675bb0ed95d7639a4db01 --quiet --skip-dependencies | |
- name: Create Version Tag | |
run: echo "${{github.run_id}}" > VERSION | |
- name: Configure iOS | |
run: | | |
haxelib set hscript-Iris 1.1.0 | |
haxelib set tjson 1.4.0 | |
haxelib list | |
- name: Building iOS | |
run: | |
haxelib run lime build ios -nosign -D officialBuild | |
env: | |
cert_pass: nullfunni | |
cert_alias_pass: nullfunni | |
- name: Make Ipa | |
run: | | |
cd export/release/ios/build/*-iphoneos | |
mkdir Payload | |
mv *.app Payload | |
zip -r StefanBeta.ipa Payload | |
- name: Upload Artifact (iOS) | |
uses: actions/upload-artifact@main | |
with: | |
name: sbEngineiOSBuild | |
path: export/release/ios/build/Release-iphoneos/*.ipa | |
if-no-files-found: error |