name: Linux Build on: push: jobs: build: name: Linux Build permissions: write-all runs-on: ubuntu-latest steps: - name: Pulling the source 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-linux path: | .haxelib/ export/release/linux/haxe/ export/release/linux/obj/ restore-keys: | cache-build-linux - 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 - name: Building the game run: | haxelib run lime build linux - name: Uploading artifact (entire build) uses: actions/upload-artifact@v2 with: name: Codename Engine path: export/release/linux/bin - name: Uploading artifact (executable) uses: actions/upload-artifact@v2 with: name: Update-Linux path: export/release/linux/bin/CodenameEngine - 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@v3 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/ restore-keys: | cache-build-linux