diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index b9bcd698a2..90a119bed3 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -15,22 +15,30 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Pulling the new commit - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Setting up Haxe uses: krdlab/setup-haxe@v2 with: haxe-version: ${{ env.HAXE_VERSION }} - - 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/haxe/ - export/release/linux/obj/ + # - 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/ + - name: Installing Packages for Building Lime (TEMPORARY) + run: | + sudo apt-get update + sudo apt-get install -qq \ + libegl1-mesa-dev libgl1-mesa-dev libibus-1.0-dev libdbus-1-dev libdecor-0-dev libudev-dev libgbm-dev libdrm-dev \ + libpng-dev libturbojpeg-dev libvorbis-dev libopenal-dev libsdl2-dev libglu1-mesa-dev libmbedtls-dev libuv1-dev libsqlite3-dev \ + libx11-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbcommon-dev libxcursor-dev libxrandr-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxxf86vm-dev \ + libpulse-dev libasound2-dev libpipewire-0.3-dev \ + zlib1g-dev - name: Installing LibVLC run: | sudo apt-get install libvlc-dev libvlccore-dev @@ -39,47 +47,50 @@ jobs: haxe -cp commandline -D analyzer-optimize --run Main setup -si - name: Building the game run: | + haxelib run lime setup -alias -y -nocffi + haxelib run lime rebuild hxcpp + haxelib run lime rebuild tools + haxelib run lime rebuild linux -nocolor -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@v4 + 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@v4 + 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/haxe/ - export/release/linux/obj/ + # - 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: @@ -89,20 +100,28 @@ jobs: 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 + uses: actions/checkout@v6 - name: Setting up Haxe uses: krdlab/setup-haxe@v2 with: haxe-version: ${{ env.HAXE_VERSION }} - - 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/haxe/ - export/debug/linux/obj/ + # - 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/ + - name: Installing Packages for Building Lime (TEMPORARY) + run: | + sudo apt-get update + sudo apt-get install -qq \ + libegl1-mesa-dev libgl1-mesa-dev libibus-1.0-dev libdbus-1-dev libdecor-0-dev libudev-dev libgbm-dev libdrm-dev \ + libpng-dev libturbojpeg-dev libvorbis-dev libopenal-dev libsdl2-dev libglu1-mesa-dev libmbedtls-dev libuv1-dev libsqlite3-dev \ + libx11-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbcommon-dev libxcursor-dev libxrandr-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxxf86vm-dev \ + libpulse-dev libasound2-dev libpipewire-0.3-dev \ + zlib1g-dev - name: Installing LibVLC run: | sudo apt-get install libvlc-dev libvlccore-dev @@ -111,39 +130,42 @@ jobs: haxe -cp commandline -D analyzer-optimize --run Main setup -si - name: Building the game run: | - haxelib run lime build linux -debug + haxelib run lime setup -alias -y -nocffi + haxelib run lime rebuild hxcpp + haxelib run lime rebuild tools + haxelib run lime rebuild linux -nocolor -release + 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@v4 + 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/haxe/ - export/debug/linux/obj/ + # - 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/ diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index ecac5f1aba..ba2bfcb48b 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -9,135 +9,363 @@ env: HXCPP_COMPILE_CACHE: ${{ github.workspace }}/.hxcpp_cache jobs: - build: - name: Mac OS Build + intel_build: + name: Mac OS x64 Build permissions: write-all - runs-on: macos-15 + runs-on: macos-26 steps: - name: Pulling the new commit - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Setting up Haxe uses: krdlab/setup-haxe@v2 with: haxe-version: ${{ env.HAXE_VERSION }} - - 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/ + # - 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/obj/ - name: Installing/Updating libraries run: | + brew trust aws/tap + arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" + arch -x86_64 /usr/local/bin/brew install zlib haxe -cp commandline -D analyzer-optimize --run Main setup -si - name: Building the game run: | + haxelib run lime setup -alias -y -nocffi + haxelib run lime rebuild hxcpp + haxelib run lime rebuild tools + haxelib run lime rebuild mac -64 -nocolor -release 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 + - name: Uploading artifact (entire build) + uses: actions/upload-artifact@v7 with: - name: Codename Engine (Executable Only) - path: export/release/macos/bin/CodenameEngine.app/Contents/MacOS/CodenameEngine + name: Codename Engine-x64 + 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/obj/ + + arm_build: + name: Mac OS ARM64 Build + permissions: write-all + runs-on: macos-26 + 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: ${{ env.HAXE_VERSION }} + # - 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/obj/ + - name: Installing/Updating libraries + run: | + brew trust aws/tap + brew install zlib + haxe -cp commandline -D analyzer-optimize --run Main setup -si + - name: Building the game + run: | + haxelib run lime setup -alias -y -nocffi + haxelib run lime rebuild hxcpp + haxelib run lime rebuild tools + haxelib run lime rebuild mac -nocolor -release + haxelib run lime build mac -DCOMPILE_EXPERIMENTAL + - name: Tar files + run: tar -zcvf CodenameEngine.tar.gz -C export/release/macos/bin . - name: Uploading artifact (entire build) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: - name: Codename Engine + name: Codename Engine-ARM64 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/ + # - 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/obj/ + + universal_build: + name: Mac OS Universal Build + permissions: write-all + runs-on: macos-26 + needs: + - intel_build + - arm_build + steps: + - name: Download Mac OS x64 Full Build + uses: actions/download-artifact@v8 + with: + name: Codename Engine-x64 + path: intel + - name: Download Mac OS ARM64 Full Build + uses: actions/download-artifact@v8 + with: + name: Codename Engine-ARM64 + path: arm + - name: Tar files (x64) + run: tar -xvf intel/CodenameEngine.tar.gz -C intel + - name: Tar files (ARM64) + run: tar -xvf arm/CodenameEngine.tar.gz -C arm + - name: Removing ARM64 and x64 artifacts + uses: geekyeggo/delete-artifact@v6 + with: + name: Codename Engine-* + - name: Creating Universal App Bundle + shell: bash + run: | + BIN="CodenameEngine.app/Contents/MacOS" + INTEL="intel/CodenameEngine.app/Contents/MacOS" + ARM="arm/CodenameEngine.app/Contents/MacOS" + cp -R intel/CodenameEngine.app CodenameEngine.app + lipo -create "$INTEL/CodenameEngine" "$ARM/CodenameEngine" -output "$BIN/CodenameEngine" + lipo -create "$INTEL/lime.ndll" "$ARM/lime.ndll" -output "$BIN/lime.ndll" + - name: Uploading Universal Mac OS bundle (executable) + uses: actions/upload-artifact@v7 + with: + name: Codename Engine (Executable Only) + path: CodenameEngine.app/Contents/MacOS/CodenameEngine + - name: Uploading Universal Mac OS bundle + uses: actions/upload-artifact@v7 + with: + name: Codename Engine + path: CodenameEngine.app # 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 + intel_debug_build: + name: Mac OS x64 Debug Build permissions: write-all - runs-on: macos-15 - needs: build # since its low priority, it'll run after, so actions will concentrate first on normal builds + runs-on: macos-26 + needs: universal_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 + uses: actions/checkout@v6 - name: Setting up Haxe uses: krdlab/setup-haxe@v2 with: haxe-version: ${{ env.HAXE_VERSION }} - - 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/ + # - 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/obj/ - name: Installing/Updating libraries run: | + brew trust aws/tap + arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" + arch -x86_64 /usr/local/bin/brew install zlib haxe -cp commandline -D analyzer-optimize --run Main setup -si - name: Building the game run: | - arch -x86_64 haxelib run lime build mac -debug + haxelib run lime setup -alias -y -nocffi + haxelib run lime rebuild hxcpp + haxelib run lime rebuild tools + haxelib run lime rebuild mac -64 -nocolor -release + arch -x86_64 haxelib run lime build mac -debug -DCOMPILE_EXPERIMENTAL - name: Tar files run: tar -zcvf CodenameEngine.tar.gz -C export/debug/macos/bin . - name: Uploading artifact (entire build) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: - name: Codename Engine Debug + name: Codename Engine-x64 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/obj/ + + arm_debug_build: + name: Mac OS ARM64 Debug Build + permissions: write-all + runs-on: macos-26 + needs: universal_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: ${{ env.HAXE_VERSION }} + # - 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/obj/ + - name: Installing/Updating libraries + run: | + brew trust aws/tap + brew install zlib + haxe -cp commandline -D analyzer-optimize --run Main setup -si + - name: Building the game + run: | + haxelib run lime setup -alias -y -nocffi + haxelib run lime rebuild hxcpp + haxelib run lime rebuild tools + haxelib run lime rebuild mac -nocolor -release + haxelib run lime build mac -debug -DCOMPILE_EXPERIMENTAL + - name: Tar files + run: tar -zcvf CodenameEngine.tar.gz -C export/debug/macos/bin . + - name: Uploading artifact (entire build) + uses: actions/upload-artifact@v7 + with: + name: Codename Engine-ARM64 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/ + # - 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/obj/ + + universal_debug_build: + name: Mac OS Universal Debug Build + permissions: write-all + runs-on: macos-26 + needs: + - intel_debug_build + - arm_debug_build + steps: + - name: Download Mac OS x64 Full Build + uses: actions/download-artifact@v8 + with: + name: Codename Engine-x64 Debug + path: intel + - name: Download Mac OS ARM64 Full Build + uses: actions/download-artifact@v8 + with: + name: Codename Engine-ARM64 Debug + path: arm + - name: Tar files (x64) + run: tar -xvf intel/CodenameEngine.tar.gz -C intel + - name: Tar files (ARM64) + run: tar -xvf arm/CodenameEngine.tar.gz -C arm + - name: Removing ARM64 and x64 artifacts + uses: geekyeggo/delete-artifact@v6 + with: + name: Codename Engine-* + - name: Creating Universal App Bundle + shell: bash + run: | + BIN="CodenameEngine.app/Contents/MacOS" + INTEL="intel/CodenameEngine.app/Contents/MacOS" + ARM="arm/CodenameEngine.app/Contents/MacOS" + cp -R intel/CodenameEngine.app CodenameEngine.app + lipo -create "$INTEL/CodenameEngine" "$ARM/CodenameEngine" -output "$BIN/CodenameEngine" + lipo -create "$INTEL/lime.ndll" "$ARM/lime.ndll" -output "$BIN/lime.ndll" + - name: Uploading Universal Mac OS bundle + uses: actions/upload-artifact@v7 + with: + name: Codename Engine Debug + path: CodenameEngine.app + diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1d44b18914..3e78c83f20 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,12 +21,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Download Windows Full Build - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v8 with: workflow: windows.yml name: Codename Engine @@ -34,7 +34,7 @@ jobs: allow_forks: false - name: Download Windows Executable - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v8 with: workflow: windows.yml name: Codename Engine (Executable Only) @@ -42,7 +42,7 @@ jobs: allow_forks: false - name: Download Mac OS Full Build - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v8 with: workflow: macos.yml name: Codename Engine @@ -50,7 +50,7 @@ jobs: allow_forks: false - name: Download Mac OS Executable - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v8 with: workflow: macos.yml name: Codename Engine (Executable Only) @@ -58,7 +58,7 @@ jobs: allow_forks: false - name: Download Linux Full Build - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v8 with: workflow: linux.yml name: Codename Engine @@ -66,7 +66,7 @@ jobs: allow_forks: false - name: Download Linux Executable - uses: dawidd6/action-download-artifact@v6 + uses: dawidd6/action-download-artifact@v8 with: workflow: linux.yml name: Codename Engine (Executable Only) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 2f1584327d..ffaf51af8c 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -15,66 +15,70 @@ jobs: runs-on: windows-latest steps: - name: Pulling the new commit - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Setting up Haxe uses: krdlab/setup-haxe@v2 with: haxe-version: ${{ env.HAXE_VERSION }} - - 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-windows - path: | - .haxelib/ - export/release/windows/haxe/ - export/release/windows/obj/ + # - 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-windows + # path: | + # .haxelib/ + # export/release/windows/obj/ - name: Installing/Updating libraries run: | haxe -cp commandline -D analyzer-optimize --run Main setup -si --no-vscheck - name: Building the game run: | + haxelib run lime setup -alias -y -nocffi + haxelib run lime rebuild hxcpp + haxelib run lime rebuild tools + haxelib run lime rebuild windows -nocolor -release haxelib run lime build windows -DCOMPILE_EXPERIMENTAL - name: Uploading artifact (executable) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: Codename Engine (Executable Only) - path: export/release/windows/bin/CodenameEngine.exe + path: | + export/release/windows/bin/CodenameEngine.exe + export/release/windows/bin/lime.ndll - name: Uploading artifact (entire build) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: Codename Engine path: export/release/windows/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-windows") { - 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-windows - path: | - .haxelib/ - export/release/windows/haxe/ - export/release/windows/obj/ + # - 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-windows") { + # 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-windows + # path: | + # .haxelib/ + # export/release/windows/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: @@ -84,56 +88,59 @@ jobs: 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 + uses: actions/checkout@v6 - name: Setting up Haxe uses: krdlab/setup-haxe@v2 with: haxe-version: ${{ env.HAXE_VERSION }} - - 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-windows-debug - path: | - .haxelib/ - export/debug/windows/haxe/ - export/debug/windows/obj/ + # - 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-windows-debug + # path: | + # .haxelib/ + # export/debug/windows/haxe/ + # export/debug/windows/obj/ - name: Installing/Updating libraries run: | haxe -cp commandline -D analyzer-optimize --run Main setup -si --no-vscheck - name: Building the game run: | + haxelib run lime setup -alias -y -nocffi + haxelib run lime rebuild hxcpp + haxelib run lime rebuild tools + haxelib run lime rebuild windows -nocolor -release haxelib run lime build windows -debug - name: Uploading artifact (entire build) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: Codename Engine Debug path: export/debug/windows/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-windows-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-windows-debug - path: | - .haxelib/ - export/debug/windows/haxe/ - export/debug/windows/obj/ + # - 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-windows-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-windows-debug + # path: | + # .haxelib/ + # export/debug/windows/obj/ diff --git a/README.md b/README.md index 02f9929bac..c9ffb7bfcd 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ The engine uses [HaxeFlixel](https://haxeflixel.com/) and it mainly features: --- > [!NOTE] -> Codename Engine as for now supports **Windows x64**, **Mac OS x64** and **Linux x64**.
+> Codename Engine as for now supports **Windows x64**, **Mac OS Universal** and **Linux x64**.
> More platforms will soon come, stay tuned!
> - [ ] **Web (HTML5) Support** > - [ ] **Mobile Support** diff --git a/assets/data/editors/layouts/stage/spriteEditScreen.xml b/assets/data/editors/layouts/stage/spriteEditScreen.xml index 12d768ad85..df16a26723 100644 --- a/assets/data/editors/layouts/stage/spriteEditScreen.xml +++ b/assets/data/editors/layouts/stage/spriteEditScreen.xml @@ -32,14 +32,29 @@ - - + + + + + + + + + + + + + + + + +