From 39c9d45ac2e95a4caff4bd04bfbb24e0119d193b Mon Sep 17 00:00:00 2001 From: MewPurPur Date: Tue, 4 Jun 2024 09:36:26 +0300 Subject: [PATCH] Oh this is SO pissing me off --- .github/workflows/export-optimized.yml | 100 ++++++++++++++++--------- 1 file changed, 65 insertions(+), 35 deletions(-) diff --git a/.github/workflows/export-optimized.yml b/.github/workflows/export-optimized.yml index 07eb73ab..bd739fa6 100644 --- a/.github/workflows/export-optimized.yml +++ b/.github/workflows/export-optimized.yml @@ -2,17 +2,24 @@ name: export-optimized on: workflow_dispatch: + push: env: - GODOT_REPO: https://github.com/godotengine/godot.git + GODOT_VERSION: 4.2.2 + PROJECT_NAME: GodSVG + GODOT_REPO: "https://github.com/godotengine/godot.git" GODOT_DIR: godot - BUILD_DIR: build GODOT_COMMIT_HASH: 15073af BUILD_OPTIONS: "target=template_release lto=full production=yes deprecated=no minizip=no brotli=no vulkan=no openxr=no use_volk=no disable_3d=yes modules_enabled_by_default=no module_freetype_enabled=yes module_gdscript_enabled=yes module_svg_enabled=yes module_jpg_enabled=yes module_text_server_adv_enabled=yes graphite=no module_webp_enabled=yes" jobs: build-linux: + name: Export GodSVG for Linux runs-on: ubuntu-latest + env: + PLATFORM: "Linux/X11" + EXTENSION: "exe" + BUILD_NAME: "linux-64bit" steps: - name: Checkout repository uses: actions/checkout@v3 @@ -33,27 +40,33 @@ jobs: run: | cd $GODOT_DIR scons p=linuxbsd arch=x86_64 optimize=speed $BUILD_OPTIONS - mkdir -p ../$BUILD_DIR - cp bin/godot.linuxbsd.*.x86_64 ../$BUILD_DIR/godot_template_linux + mkdir -p ~/build + cp bin/godot.linuxbsd.*x86_64 ~/build/godot_template_linux - - name: Lmofa - run: ls $BUILD_DIR - - - name: Upload Linux template - uses: actions/upload-artifact@v3 + - name: Upload artifact + uses: actions/upload-artifact@v4 with: name: godot_template_linux - path: $BUILD_DIR/godot_template_linux + path: ~/build/godot_template_linux + if-no-files-found: error retention-days: 1 build-windows: - runs-on: windows-latest + name: Export GodSVG for Windows + runs-on: ubuntu-latest + env: + PLATFORM: "Windows" + EXTENSION: "exe" + BUILD_NAME: "windows-64bit" steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install dependencies - run: choco install scons + run: | + sudo apt install -y scons python3 + sudo apt install mingw-w64 + sudo update-alternatives --config x86_64-w64-mingw32-g++ - name: Clone Godot repository run: git clone $GODOT_REPO $GODOT_DIR @@ -67,18 +80,25 @@ jobs: - name: Build Godot template for Windows run: | cd $GODOT_DIR - scons p=windows arch=x86_64 optimize=speed $BUILD_OPTIONS - cp bin/godot.windows.*.64 ../$BUILD_DIR/godot_template_windows + scons p=windows target=release_debug tools=no $BUILD_OPTIONS + mkdir -p ${{ runner.temp }}/build + cp bin/godot.windows.*.exe ${{ runner.temp }}/build/godot_template_windows.exe - - name: Upload Windows template - uses: actions/upload-artifact@v3 + - name: Upload artifact + uses: actions/upload-artifact@v4 with: name: godot_template_windows - path: $BUILD_DIR/godot_template_windows + path: ${{ runner.temp }}/build/godot_template_windows.exe + if-no-files-found: error retention-days: 1 build-web: + name: Export GodSVG for Web runs-on: ubuntu-latest + env: + PLATFORM: "Linux/X11" + EXTENSION: "exe" + BUILD_NAME: "linux-64bit" steps: - name: Checkout repository uses: actions/checkout@v3 @@ -104,22 +124,30 @@ jobs: git fetch git checkout $GODOT_COMMIT_HASH + - name: Checkout specific commit + run: | + cd $GODOT_DIR + git fetch + git checkout $GODOT_COMMIT_HASH + - name: Build Godot template for Web run: | cd $GODOT_DIR source ../emsdk/emsdk_env.sh scons p=web arch=wasm32 javascript_eval=no optimize=size $BUILD_OPTIONS - mkdir -p ../$BUILD_DIR/godot_template_web - cp bin/godot.javascript.opt.* ../$BUILD_DIR/godot_template_web + mkdir -p ~/build/godot_template_web + cp bin/godot.javascript.opt.* ~/build/godot_template_web - - name: Upload Web template - uses: actions/upload-artifact@v3 + - name: Upload artifact + uses: actions/upload-artifact@v4 with: - name: godot_template_web - path: $BUILD_DIR/godot_template_web + name: godot_template_linux + path: ~/build/godot_template_linux + if-no-files-found: error retention-days: 1 build-macos: + name: Export GodSVG for MacOS runs-on: macos-latest steps: - name: Checkout repository @@ -141,36 +169,38 @@ jobs: run: | cd $GODOT_DIR scons p=macos arch=arm64 optimize=speed $BUILD_OPTIONS - mkdir -p ../$BUILD_DIR - cp bin/godot.macos.template_release.arm64 ../$BUILD_DIR/godot_template_macos_release_arm64 + mkdir -p ~/build + cp bin/godot.macos.*arm64 ~/build/godot_template_macos_release_arm64 - name: Build Godot template for macOS (x86_64 release) run: | cd $GODOT_DIR scons p=macos arch=x86_64 optimize=speed $BUILD_OPTIONS - cp bin/godot.macos.template_release.x86_64 ../$BUILD_DIR/godot_template_macos_release_x86_64 + cp bin/godot.macos.*x86_64 ~/build/godot_template_macos_release_x86_64 - name: Combine binaries with lipo run: | - cd $BUILD_DIR - lipo -create godot.macos.template_release.arm64 godot.macos.template_release.x86_64 -output godot_template_macos_release_universal - chmod +x godot_template_macos_* + cd ~/build + lipo -create godot_template_macos_release_arm64 godot_template_macos_release_x86_64 -output godot_template_macos_release_universal + chmod +x godot_template_macos_release_universal - name: Prepare .app bundle run: | - cp -R ~/workspace/misc/dist/macos_template.app . - mkdir -p macos_template.app/Contents/MacOS - cp godot_template_macos_debug_universal macos_template.app/Contents/MacOS/godot_macos_debug.universal - cp godot_template_macos_release_universal macos_template.app/Contents/MacOS/godot_macos_release.universal - chmod +x macos_template.app/Contents/MacOS/godot_macos* + cp -R ~/workspace/misc/dist/macos_template.app ~/build + mkdir -p ~/build/macos_template.app/Contents/MacOS + cp godot_template_macos_release_universal ~/build/macos_template.app/Contents/MacOS/godot + chmod +x ~/build/macos_template.app/Contents/MacOS/godot - name: Zip the .app bundle - run: zip -q -9 -r macos.zip macos_template.app + run: | + cd ~/build + zip -q -9 -r macos.zip macos_template.app - name: Upload macOS template uses: actions/upload-artifact@v3 with: name: godot_template_macos path: macos.zip + if-no-files-found: error retention-days: 1