* Update checkout action to fetch full history * Update linux.yml * Update macos.yml * Update release.yml * Update windows.yml
144 lines
5.1 KiB
YAML
144 lines
5.1 KiB
YAML
name: Mac OS Builds
|
|
|
|
on:
|
|
push:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
name: Mac OS Build
|
|
permissions: write-all
|
|
runs-on: macos-14
|
|
steps:
|
|
- name: Pulling the new commit
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Setting up Haxe
|
|
uses: krdlab/setup-haxe@v2
|
|
with:
|
|
haxe-version: 4.3.7
|
|
- name: Restore existing build cache for faster compilation
|
|
uses: actions/cache@v4.2.3
|
|
with:
|
|
# not caching the bin folder to prevent asset duplication and stuff like that
|
|
key: cache-build-mac
|
|
path: |
|
|
.haxelib/
|
|
export/release/macos/haxe/
|
|
export/release/macos/obj/
|
|
- run: |
|
|
echo "HXCPP_COMPILE_CACHE=~/.hxcpp" >> $GITHUB_ENV
|
|
- name: Installing/Updating libraries
|
|
run: |
|
|
haxe -cp commandline -D analyzer-optimize --run Main setup -s
|
|
- name: Building the game
|
|
run: |
|
|
arch -x86_64 haxelib run lime build mac -DCOMPILE_EXPERIMENTAL
|
|
- name: Tar files
|
|
run: tar -zcvf CodenameEngine.tar.gz -C export/release/macos/bin .
|
|
- name: Uploading artifact (executable)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: Codename Engine (Executable Only)
|
|
path: export/release/macos/bin/CodenameEngine.app/Contents/MacOS/CodenameEngine
|
|
- name: Uploading artifact (entire build)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: Codename Engine
|
|
path: CodenameEngine.tar.gz
|
|
- name: Clearing already existing cache
|
|
uses: actions/github-script@v6
|
|
with:
|
|
script: |
|
|
const caches = await github.rest.actions.getActionsCacheList({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
})
|
|
for (const cache of caches.data.actions_caches) {
|
|
if (cache.key == "cache-build-mac") {
|
|
console.log('Clearing ' + cache.key + '...')
|
|
await github.rest.actions.deleteActionsCacheById({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
cache_id: cache.id,
|
|
})
|
|
console.log("Cache cleared.")
|
|
}
|
|
}
|
|
- name: Uploading new cache
|
|
uses: actions/cache@v4.2.3
|
|
with:
|
|
# caching again since for some reason it doesnt work with the first post cache shit
|
|
key: cache-build-mac
|
|
path: |
|
|
.haxelib/
|
|
export/release/macos/haxe/
|
|
export/release/macos/obj/
|
|
|
|
# didnt compile debug in the same job or github would have said that job wasn't completed until debug was done too (debug uploads are not essential)
|
|
debug_build:
|
|
name: Mac OS Debug Build
|
|
permissions: write-all
|
|
runs-on: macos-14
|
|
needs: build # since its low priority, it'll run after, so actions will concentrate first on normal builds
|
|
steps:
|
|
- name: Pulling the new commit
|
|
uses: actions/checkout@v4
|
|
- name: Setting up Haxe
|
|
uses: krdlab/setup-haxe@v2
|
|
with:
|
|
haxe-version: 4.3.7
|
|
- name: Restore existing build cache for faster compilation
|
|
uses: actions/cache@v4.2.3
|
|
with:
|
|
# not caching the bin folder to prevent asset duplication and stuff like that
|
|
key: cache-build-mac-debug
|
|
path: |
|
|
.haxelib/
|
|
export/debug/macos/haxe/
|
|
export/debug/macos/obj/
|
|
- run: |
|
|
echo "HXCPP_COMPILE_CACHE=~/.hxcpp" >> $GITHUB_ENV
|
|
- name: Installing/Updating libraries
|
|
run: |
|
|
haxe -cp commandline -D analyzer-optimize --run Main setup -s
|
|
- name: Building the game
|
|
run: |
|
|
arch -x86_64 haxelib run lime build mac -debug
|
|
- name: Tar files
|
|
run: tar -zcvf CodenameEngine.tar.gz -C export/debug/macos/bin .
|
|
- name: Uploading artifact (entire build)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: Codename Engine Debug
|
|
path: CodenameEngine.tar.gz
|
|
- name: Clearing already existing cache
|
|
uses: actions/github-script@v6
|
|
with:
|
|
script: |
|
|
const caches = await github.rest.actions.getActionsCacheList({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
})
|
|
for (const cache of caches.data.actions_caches) {
|
|
if (cache.key == "cache-build-mac-debug") {
|
|
console.log('Clearing ' + cache.key + '...')
|
|
await github.rest.actions.deleteActionsCacheById({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
cache_id: cache.id,
|
|
})
|
|
console.log("Cache cleared.")
|
|
}
|
|
}
|
|
- name: Uploading new cache
|
|
uses: actions/cache@v4.2.3
|
|
with:
|
|
# caching again since for some reason it doesnt work with the first post cache shit
|
|
key: cache-build-mac-debug
|
|
path: |
|
|
.haxelib/
|
|
export/debug/macos/haxe/
|
|
export/debug/macos/obj/
|