name: Mac OS Build on: push: workflow_dispatch: jobs: build: name: Mac OS Build permissions: write-all runs-on: macos-13 steps: - name: Pulling the new commit uses: actions/checkout@v2 - name: Setting up Haxe uses: krdlab/setup-haxe@v1 with: haxe-version: 4.2.5 - name: Restore existing build cache for faster compilation uses: actions/cache@v3 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/ restore-keys: | cache-build-mac - name: Installing/Updating libraries run: | haxe -cp commandline -D analyzer-optimize --run Main setup -s - name: Building the game run: | haxelib run lime build mac - 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 - 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@v3 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/ restore-keys: | cache-build-mac