opa #820
This file contains hidden or 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: Linux Builds | |
| on: | |
| push: | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| name: Linux Build | |
| permissions: write-all | |
| runs-on: ubuntu-24.04 | |
| 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/[email protected] | |
| with: | |
| # not caching the bin folder to prevent asset duplication and stuff like that | |
| key: cache-build-linux | |
| path: | | |
| .haxelib/ | |
| export/release/linux/haxe/ | |
| export/release/linux/obj/ | |
| - run: | | |
| echo "HXCPP_COMPILE_CACHE=~/.hxcpp" >> $GITHUB_ENV | |
| - name: Installing LibVLC | |
| run: | | |
| sudo apt-get install libvlc-dev libvlccore-dev | |
| - name: Installing/Updating libraries | |
| run: | | |
| haxe -cp commandline -D analyzer-optimize --run Main setup -s | |
| - name: Building the game | |
| run: | | |
| haxelib run lime build linux | |
| # - name: Tar files | |
| # run: tar -zcvf CodenameEngine.tar.gz -C export/release/linux/bin . | |
| - name: Uploading artifact (executable) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Codename Engine (Executable Only) | |
| path: export/release/linux/bin/CodenameEngine | |
| - name: Uploading artifact (entire build) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Codename Engine | |
| path: export/release/linux/bin/ | |
| - 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-linux") { | |
| 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/[email protected] | |
| with: | |
| # caching again since for some reason it doesnt work with the first post cache shit | |
| key: cache-build-linux | |
| path: | | |
| .haxelib/ | |
| export/release/linux/haxe/ | |
| export/release/linux/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: Linux Debug Build | |
| permissions: write-all | |
| runs-on: ubuntu-24.04 | |
| 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/[email protected] | |
| with: | |
| # not caching the bin folder to prevent asset duplication and stuff like that | |
| key: cache-build-linux-debug | |
| path: | | |
| .haxelib/ | |
| export/debug/linux/haxe/ | |
| export/debug/linux/obj/ | |
| - run: | | |
| echo "HXCPP_COMPILE_CACHE=~/.hxcpp" >> $GITHUB_ENV | |
| - name: Installing LibVLC | |
| run: | | |
| sudo apt-get install libvlc-dev libvlccore-dev | |
| - name: Installing/Updating libraries | |
| run: | | |
| haxe -cp commandline -D analyzer-optimize --run Main setup -s | |
| - name: Building the game | |
| run: | | |
| haxelib run lime build linux | |
| # - name: Tar files | |
| # run: tar -zcvf CodenameEngine.tar.gz -C export/debug/linux/bin . | |
| - name: Uploading artifact (entire build) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Codename Engine Debug | |
| path: export/debug/linux/bin/ | |
| - 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-linux-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/[email protected] | |
| with: | |
| # caching again since for some reason it doesnt work with the first post cache shit | |
| key: cache-build-linux-debug | |
| path: | | |
| .haxelib/ | |
| export/debug/linux/haxe/ | |
| export/debug/linux/obj/ |