343 lines
11 KiB
YAML
343 lines
11 KiB
YAML
# This is a basic workflow to help you get started with Actions
|
|
|
|
name: Build
|
|
|
|
|
|
# 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 ]
|
|
|
|
# For release builds
|
|
workflow_call:
|
|
inputs:
|
|
buildFlags:
|
|
required: false
|
|
type: string
|
|
|
|
# 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"
|
|
buildLinux:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
- uses: actions/checkout@main
|
|
|
|
- uses: krdlab/setup-haxe@master
|
|
with:
|
|
haxe-version: 4.3.6
|
|
- name: Restore Previous Cache
|
|
id: cache-build-linux-restore
|
|
uses: actions/cache/restore@main
|
|
with:
|
|
path: |
|
|
.haxelib/
|
|
export/release/linux/haxe/
|
|
export/release/linux/obj/
|
|
key: cache-linux-build
|
|
# Runs a set of commands using the runners shell
|
|
- name: Install Haxelib
|
|
run: |
|
|
sudo apt-get install libvlc-dev
|
|
sudo apt-get install libvlccore-dev
|
|
haxelib setup ~/haxelib
|
|
haxelib install hxcpp > /dev/null --quiet
|
|
chmod +x ./setup/unix.sh
|
|
sh ./setup/unix.sh
|
|
- name: Compile hxcpp
|
|
run: |
|
|
cd ~/haxelib/hxcpp/git/tools/run
|
|
haxe compile.hxml
|
|
cd ..
|
|
cd ./hxcpp
|
|
haxe compile.hxml
|
|
cd ../..
|
|
- name: Compile
|
|
run: |
|
|
rm -f assets/preload/gameRenders/renderlol.bat
|
|
haxelib run lime build linux -D ${{ inputs.buildFlags || 'commit' }}
|
|
- 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-build-linux-save
|
|
uses: actions/cache/save@main
|
|
with:
|
|
path: |
|
|
.haxelib/
|
|
export/release/linux/haxe/
|
|
export/release/linux/obj/
|
|
key: cache-linux-build
|
|
- name: Publish Artifact
|
|
uses: actions/upload-artifact@main
|
|
with:
|
|
name: linuxBuild
|
|
path: export/release/linux/bin
|
|
|
|
buildWindows:
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
- uses: actions/checkout@main
|
|
|
|
- uses: krdlab/setup-haxe@master
|
|
with:
|
|
haxe-version: 4.3.6
|
|
- name: Restore Previous Cache
|
|
id: cache-build-windows-restore
|
|
uses: actions/cache/restore@main
|
|
with:
|
|
path: |
|
|
.haxelib/
|
|
export/release/windows/haxe/
|
|
export/release/windows/obj/
|
|
key: cache-windows-build
|
|
# Runs a set of commands using the runners shell
|
|
- name: Install Haxelib
|
|
run: |
|
|
haxelib setup C:/haxelib
|
|
haxelib install hxcpp > /dev/null --quiet
|
|
.\"setup/windows.bat"
|
|
shell: cmd
|
|
- name: Compile hxcpp
|
|
run: |
|
|
cd C:/haxelib/hxcpp/git/tools/run
|
|
haxe compile.hxml
|
|
cd ..
|
|
cd ./hxcpp
|
|
haxe compile.hxml
|
|
cd ../..
|
|
- name: Compile
|
|
run: |
|
|
Remove-Item -Force assets/preload/gameRenders/renderlinux.sh
|
|
haxelib run lime build windows -D ${{ inputs.buildFlags || 'commit' }}
|
|
- 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-build-windows-save
|
|
uses: actions/cache/save@main
|
|
with:
|
|
path: |
|
|
.haxelib/
|
|
export/release/windows/haxe/
|
|
export/release/windows/obj/
|
|
key: cache-windows-build
|
|
- name: Publish Artifact
|
|
uses: actions/upload-artifact@main
|
|
with:
|
|
name: windowsBuild
|
|
path: export/release/windows/bin
|
|
buildMacIntel:
|
|
runs-on: macos-15
|
|
|
|
steps:
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
- uses: actions/checkout@main
|
|
|
|
- uses: krdlab/setup-haxe@master
|
|
with:
|
|
haxe-version: 4.3.4
|
|
- name: Restore Previous Cache
|
|
id: cache-build-macosintel-restore
|
|
uses: actions/cache/restore@main
|
|
with:
|
|
path: |
|
|
.haxelib/
|
|
export/release/macos/haxe/
|
|
export/release/macos/obj/
|
|
key: cache-macos-build
|
|
# Runs a set of commands using the runners shell
|
|
- name: Install Haxelib
|
|
run: |
|
|
haxelib setup ~/haxelib
|
|
haxelib install hxcpp > /dev/null --quiet
|
|
chmod +x ./setup/unix.sh
|
|
sh ./setup/unix.sh
|
|
- name: Compile hxcpp
|
|
run: |
|
|
cd ~/haxelib/hxcpp/git/tools/run
|
|
haxe compile.hxml
|
|
cd ..
|
|
cd ./hxcpp
|
|
haxe compile.hxml
|
|
cd ../..
|
|
- name: Compile
|
|
run: |
|
|
rm -f assets/preload/gameRenders/renderlol.bat
|
|
haxelib run lime build mac -64 -D ${{ inputs.buildFlags || 'commit' }} -D HXCPP_M64
|
|
- 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-macosintel-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-build-macosintel-save
|
|
uses: actions/cache/save@main
|
|
with:
|
|
path: |
|
|
.haxelib/
|
|
export/release/macos/haxe/
|
|
export/release/macos/obj/
|
|
key: cache-macosintel-build
|
|
- name: Publish Artifact
|
|
uses: actions/upload-artifact@main
|
|
with:
|
|
name: macBuild-intel
|
|
path: export/release/macos/bin
|
|
|
|
buildMacArm:
|
|
runs-on: macos-15
|
|
|
|
steps:
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
- uses: actions/checkout@main
|
|
|
|
- uses: krdlab/setup-haxe@master
|
|
with:
|
|
haxe-version: 4.3.4
|
|
- name: Restore Previous Cache
|
|
id: cache-build-macosarm-restore
|
|
uses: actions/cache/restore@main
|
|
with:
|
|
path: |
|
|
.haxelib/
|
|
export/release/macos/haxe/
|
|
export/release/macos/obj/
|
|
key: cache-macos-build
|
|
# Runs a set of commands using the runners shell
|
|
- name: Install Haxelib
|
|
run: |
|
|
haxelib setup ~/haxelib
|
|
haxelib install hxcpp > /dev/null --quiet
|
|
chmod +x ./setup/unix.sh
|
|
sh ./setup/unix.sh
|
|
- name: Compile hxcpp
|
|
run: |
|
|
cd ~/haxelib/hxcpp/git/tools/run
|
|
haxe compile.hxml
|
|
cd ..
|
|
cd ./hxcpp
|
|
haxe compile.hxml
|
|
cd ../..
|
|
- name: Compile
|
|
run: |
|
|
rm -f assets/preload/gameRenders/renderlol.bat
|
|
haxelib run lime build mac -arm64 -D ${{ inputs.buildFlags || 'commit' }} -D HXCPP_ARM64
|
|
- 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-macosarm-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-build-macosarm-save
|
|
uses: actions/cache/save@main
|
|
with:
|
|
path: |
|
|
.haxelib/
|
|
export/release/macos/haxe/
|
|
export/release/macos/obj/
|
|
key: cache-macosarm-build
|
|
- name: Publish Artifact
|
|
uses: actions/upload-artifact@main
|
|
with:
|
|
name: macBuild-arm
|
|
path: export/release/macos/bin
|