builds godot
Diffstat (limited to '.github/workflows/reusable-build.yml')
| -rw-r--r-- | .github/workflows/reusable-build.yml | 145 |
1 files changed, 84 insertions, 61 deletions
diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index 2c0a0db..b8b09f2 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -4,31 +4,35 @@ on: workflow_call: inputs: ref: - required: true type: string + required: true flags: type: string - default: disable_3d=yes + default: "" required: false modules-path: type: string - default: ./.github/2d-build-modules.py - required: false + required: true name: type: string - default: godot-2d - required: false + required: true build-name: type: string - default: 2d - required: false + required: true + make-release: + type: string + default: "yes" + required: true + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.ref }} + cancel-in-progress: true env: BUILD_NAME: ${{ inputs.build-name }} ref: ${{ inputs.ref }} flags: ${{ inputs.flags }} modules: ${{ inputs.modules-path }} - tools: no jobs: linux: @@ -44,7 +48,7 @@ jobs: with: target: ${{ matrix.target }} flags: bits=${{ matrix.bits }} ${{ env.flags }} - platform: x11 + platform: linuxbsd - name: Upload artifact uses: bend-n/godot-builds/.github/actions/upload-artifact@main @@ -78,10 +82,11 @@ jobs: matrix: target: [release, release_debug] steps: - - name: Set up Java 11 - uses: actions/setup-java@v1 + - name: Set up Java 17 + uses: actions/setup-java@v3 with: - java-version: 11 + java-version: 17 + distribution: temurin - name: Compilation (armv7) uses: bend-n/godot-builds/.github/actions/build-godot@main @@ -112,9 +117,12 @@ jobs: matrix: target: [release, release_debug] - name: MacOS temps + name: macOS temps runs-on: macos-latest steps: + - name: Install MoltenVK + run: curl https://raw.githubusercontent.com/godotengine/godot/master/misc/scripts/install_vulkan_sdk_macos.sh -s | sh + - name: Compilation(x86_64) uses: bend-n/godot-builds/.github/actions/build-godot@main with: @@ -131,7 +139,7 @@ jobs: - name: Create universal run: | - [[ "${{ matrix.target }}" == *"debug"* ]] && target='.debug' + [[ "${{ matrix.target }}" == *"release_debug"* ]] && target='.debug' cd godot intel=bin/godot.osx.*.x86_64 arm=bin/godot.osx.*.arm64 @@ -143,113 +151,127 @@ jobs: with: path: godot/bin/*.universal - javascript: + web: strategy: matrix: - target: [release, release_debug] + target: [release] flags: [gdnative_enabled=yes, threads_enabled=yes, ""] name: JS temps runs-on: ubuntu-20.04 steps: - - name: Set up Emscripten 3.1.10 - uses: mymindstorm/setup-emsdk@v10 + - name: Set up Emscripten 3.1.18 + uses: mymindstorm/setup-emsdk@v12 with: - version: 3.1.10 + version: 3.1.18 - name: Verify Emscripten setup - run: | - emcc -v + run: emcc -v - name: Compilation uses: bend-n/godot-builds/.github/actions/build-godot@main with: target: ${{ matrix.target }} flags: ${{ env.flags }} ${{ matrix.flags }} - platform: javascript + platform: web - name: Upload artifact uses: bend-n/godot-builds/.github/actions/upload-artifact@main with: path: godot/bin/*.zip + name: ${{ inputs.name }}-${{ matrix.target }}-${{ matrix.flags }} templates: - needs: [javascript, macos, windows, linux, android] + needs: [web, macos, windows, linux, android] name: Bundle all templates - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 env: tmps: "templates" steps: - name: Download all artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 + + - name: List all downloaded files + run: ls -R + + - name: flatten + run: find . -mindepth 2 -type f -exec mv -t . -i '{}' + + + - name: Getdot + uses: actions/checkout@v3 + with: + repository: godotengine/godot + ref: ${{ inputs.ref }} + path: godot-repo - name: Prepare files run: | - mkdir -vp ${tmps} - git clone --depth 1 'https://github.com/godotengine/godot' -b 3.x godot-repo + rel="template_release" + bug="template_debug" + mkdir -vp "$tmps" echo "Preparing linux" - mv linux/godot.x11.opt.64 ${tmps}/linux_x11_64_release - mv linux/godot.x11.opt.debug.64 ${tmps}/linux_x11_64_debug + linux="godot.x11.opt" + mv "$linux.64" "$tmps/linux_x11_debug.x86_64" + mv "$linux.debug.64" "$tmps/linux_x11_release.x86_64" echo "Preparing windows" - mv windows/godot.windows.opt.64.exe ${tmps}/windows_64_release.exe - mv windows/godot.windows.opt.debug.64.exe ${tmps}/windows_64_debug.exe + windows="godot.windows.opt" + # mv "windows/$windows.debug.64.exe" "$tmps/windows_debug_x86_64.exe" + mv "$windows.64.exe" "$tmps/windows_release_x86_64.exe" echo "Preparing android" - mv android/android_debug.apk ${tmps}/android_debug.apk - mv android/android_release.apk ${tmps}/android_release.apk + # mv "android/android_debug.apk" "$tmps/android_debug.apk" + mv "android_release.apk" "$tmps/android_release.apk" echo "Preparing macos" - cp -r godot-repo/misc/dist/osx_template.app . - mkdir -p osx_template.app/Contents/MacOS - cp macos/godot.osx.opt.universal osx_template.app/Contents/MacOS/godot_osx_release.64 - cp macos/godot.osx.opt.debug.universal osx_template.app/Contents/MacOS/godot_osx_debug.64 - chmod +x osx_template.app/Contents/MacOS/godot_osx_*.64 - zip -q -9 -r ${tmps}/osx.zip osx_template.app + mac="godot.osx.opt" + cp -r "godot-repo/misc/dist/osx_template.app" "." + mkdir -p "osx_template.app/Contents/MacOS" + cp "$mac.universal" "osx_template.app/Contents/MacOS/godot_osx_release.64" + # cp "macos/$mac.debug.universal" "osx_template.app/Contents/MacOS/godot_osx_debug.64" + chmod +x osx_template.app/Contents/MacOS/*.64 + zip -q -9 -r "$tmps/osz.zip" "osx_template.app" echo "Preparing web" - mv javascript/godot.javascript.opt.zip ${tmps}/webassembly_release.zip - mv javascript/godot.javascript.opt.debug.zip ${tmps}/webassembly_debug.zip - mv javascript/godot.javascript.opt.threads.zip ${tmps}/webassembly_threads_release.zip - mv javascript/godot.javascript.opt.debug.threads.zip ${tmps}/webassembly_threads_debug.zip - mv javascript/godot.javascript.opt.gdnative.zip ${tmps}/webassembly_gdnative_release.zip - mv javascript/godot.javascript.opt.debug.gdnative.zip ${tmps}/webassembly_gdnative_debug.zip + web="godot.javascript.opt" + mv "$web.zip" "$tmps/webassembly_release.zip" + mv "$web.gdnative.zip" "$tmps/webassembly_gdnative_release.zip" - name: Prepare bundle - run: "cd ${tmps} && zip -q -9 -r templates.tpz ./*" + run: cd "${tmps}" && zip -qr9 templates.tpz ./* - name: Upload artifact uses: bend-n/godot-builds/.github/actions/upload-artifact@main with: path: ${{ env.tmps }}/templates.tpz + name: templates - tools: + editor: strategy: matrix: - platform: [server, x11] - - name: Build linux tools - runs-on: ubuntu-18.04 + platform: [server, linuxbsd] + name: Linux editor + runs-on: ubuntu-20.04 steps: - - name: Build editor + - name: Compilation uses: bend-n/godot-builds/.github/actions/build-godot@main with: platform: ${{ matrix.platform }} target: release_debug - env: - tools: yes - flags: "" # override flags + tools: "yes" - name: Upload artifact uses: bend-n/godot-builds/.github/actions/upload-artifact@main with: - name: ${{ matrix.platform }}-tools-release + name: ${{ matrix.platform }}-editor-release path: godot/bin/*.64 - build-image: - name: Build docker image + image: + if: inputs.make-release == 'yes' + permissions: write-all + name: Docker image runs-on: ubuntu-latest - needs: [tools, templates] + needs: [editor, templates] steps: - uses: bend-n/godot-builds/.github/actions/build-upload-image@main with: @@ -257,9 +279,10 @@ jobs: name: ${{ inputs.name }} release: + if: inputs.make-release == 'yes' name: Create/update a release runs-on: ubuntu-latest - needs: [tools, templates] + needs: [editor, templates] steps: - uses: bend-n/godot-builds/.github/actions/release@main with: |