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@v6 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-linux # path: | # .haxelib/ # 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 rebuild linux -nocolor -nocffi -release haxelib run lime build linux -DCOMPILE_EXPERIMENTAL # - name: Tar files # run: tar -zcvf CodenameEngine.tar.gz -C export/release/linux/bin . - name: Uploading artifact (executable) uses: actions/upload-artifact@v7 with: name: Codename Engine (Executable Only) path: export/release/linux/bin/CodenameEngine - name: Uploading artifact (entire build) uses: actions/upload-artifact@v7 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/cache@v4.2.3 # 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/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@v6 - 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-linux-debug # path: | # .haxelib/ # 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 rebuild linux -nocolor -nocffi -debug haxelib run lime build linux -debug -DCOMPILE_EXPERIMENTAL # - name: Tar files # run: tar -zcvf CodenameEngine.tar.gz -C export/debug/linux/bin . - name: Uploading artifact (entire build) uses: actions/upload-artifact@v7 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/cache@v4.2.3 # 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/obj/