Skip to content

SB Engine workflow

SB Engine workflow #1

Workflow file for this run

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