From 49e901fd4a6956b3738f51af8ebb9fe4dd3664ec Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Fri, 21 Jul 2023 15:32:51 +0200 Subject: [PATCH] [godot] Unify 4.x builds into a single workflow, with an orchestrating workflow in spine-godot-v4-all.yml --- .github/workflows/spine-godot-v4-all.yml | 25 ++ .github/workflows/spine-godot-v4.1.yml | 368 ----------------------- .github/workflows/spine-godot-v4.yml | 24 +- 3 files changed, 40 insertions(+), 377 deletions(-) create mode 100644 .github/workflows/spine-godot-v4-all.yml delete mode 100644 .github/workflows/spine-godot-v4.1.yml diff --git a/.github/workflows/spine-godot-v4-all.yml b/.github/workflows/spine-godot-v4-all.yml new file mode 100644 index 000000000..889c643b3 --- /dev/null +++ b/.github/workflows/spine-godot-v4-all.yml @@ -0,0 +1,25 @@ +name: Build all Godot 4.x versions + +on: + push: + paths: + - ".github/workflows/spine-godot.yml" + - 'spine-godot/**' + - 'spine-cpp/**' + workflow_dispatch: + +jobs: + build-versions: + strategy: + matrix: + version: + [ + {"tag": "4.0-stable", "version": "4.0.stable", "mono": false}, + {"tag": "4.1-stable", "version": "4.1.stable", "mono": false}, + ] + uses: ./.github/workflows/spine-godot-v4.yml + with: + godot_tag: ${{ matrix.version.tag }} + godot_version: ${{ matrix.version.version }} + godot_mono: ${{ matrix.version.mono }} + secrets: inherit \ No newline at end of file diff --git a/.github/workflows/spine-godot-v4.1.yml b/.github/workflows/spine-godot-v4.1.yml deleted file mode 100644 index df4f069a8..000000000 --- a/.github/workflows/spine-godot-v4.1.yml +++ /dev/null @@ -1,368 +0,0 @@ -name: Build and Publish Godot 4.1 editor and templates - -on: - push: - paths: - - ".github/workflows/spine-godot.yml" - - 'spine-godot/**' - - 'spine-cpp/**' - workflow_dispatch: - -env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_EC2_METADATA_DISABLED: true - EM_VERSION: 3.1.18 - GODOT_TAG: 4.1-stable - GODOT_VERSION: 4.1.stable - -jobs: - - godot-editor-windows: - runs-on: windows-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup python and scons - uses: ./.github/actions/setup-godot-deps - - - name: Build Godot artifact - shell: bash - run: | - ./spine-godot/build/setup.sh $GODOT_TAG false - ./spine-godot/build/build-v4.sh - - - name: Upload artifacts - uses: actions/upload-artifact@v3 - with: - name: godot-editor-windows.zip - path: spine-godot/godot/bin/godot.windows.editor.x86_64.exe - - godot-editor-linux: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup python and scons - uses: ./.github/actions/setup-godot-deps - - - name: Build Godot artifact - shell: bash - run: | - sudo apt-get update - sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev - ./spine-godot/build/setup.sh $GODOT_TAG false - ./spine-godot/build/build-v4.sh - - - name: Upload artifacts - uses: actions/upload-artifact@v3 - with: - name: godot-editor-linux.zip - path: spine-godot/godot/bin/godot.linuxbsd.editor.x86_64 - - godot-editor-macos: - runs-on: macos-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup python and scons - uses: ./.github/actions/setup-godot-deps - - - name: Build Godot artifact - shell: bash - run: | - ./spine-godot/build/install-macos-vulkan-sdk.sh - ./spine-godot/build/setup.sh $GODOT_TAG false - ./spine-godot/build/build-v4.sh - pushd spine-godot/godot/bin - zip -r godot-editor-macos.zip Godot.app - popd - - - name: Upload artifacts - uses: actions/upload-artifact@v3 - with: - name: godot-editor-macos.zip - path: spine-godot/godot/bin/godot-editor-macos.zip - - godot-template-ios: - runs-on: macos-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup python and scons - uses: ./.github/actions/setup-godot-deps - - - name: Build Godot artifact - run: | - ./spine-godot/build/install-macos-vulkan-sdk.sh - ./spine-godot/build/setup.sh $GODOT_TAG false - ./spine-godot/build/build-templates-v4.sh ios - - - name: Upload artifacts - uses: actions/upload-artifact@v3 - with: - name: godot-template-ios.zip - path: spine-godot/godot/bin/ios.zip - - godot-template-macos: - runs-on: macos-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup python and scons - uses: ./.github/actions/setup-godot-deps - - - name: Build Godot artifact - run: | - ./spine-godot/build/install-macos-vulkan-sdk.sh - ./spine-godot/build/setup.sh $GODOT_TAG false - ./spine-godot/build/build-templates-v4.sh macos - - - name: Upload artifacts - uses: actions/upload-artifact@v3 - with: - name: godot-template-macos.zip - path: spine-godot/godot/bin/macos.zip - - godot-template-linux: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup python and scons - uses: ./.github/actions/setup-godot-deps - - - name: Build Godot artifact - run: | - sudo apt-get update - sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev - ./spine-godot/build/setup.sh $GODOT_TAG false - ./spine-godot/build/build-templates-v4.sh linux - - - name: Upload artifacts debug - uses: actions/upload-artifact@v3 - with: - name: godot-template-linux-debug.zip - path: spine-godot/godot/bin/linux_x11_64_debug - - - name: Upload artifacts release - uses: actions/upload-artifact@v3 - with: - name: godot-template-linux-release.zip - path: spine-godot/godot/bin/linux_x11_64_release - - godot-template-windows: - runs-on: windows-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup python and scons - uses: ./.github/actions/setup-godot-deps - - - name: Build Godot artifact - shell: bash - run: | - ./spine-godot/build/setup.sh $GODOT_TAG false - ./spine-godot/build/build-templates-v4.sh windows - - - name: Upload artifacts debug - uses: actions/upload-artifact@v3 - with: - name: godot-template-windows-debug.zip - path: spine-godot/godot/bin/windows_debug_x86_64.exe - - - name: Upload artifacts release - uses: actions/upload-artifact@v3 - with: - name: godot-template-windows-release.zip - path: spine-godot/godot/bin/windows_release_x86_64.exe - - godot-template-android: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - # Azure repositories are not reliable, we need to prevent azure giving us packages. - - name: Make apt sources.list use the default Ubuntu repositories - run: | - sudo rm -f /etc/apt/sources.list.d/* - sudo cp -f spine-godot/build/sources.lst /etc/apt/sources.list - sudo apt-get update - - - name: Set up Java 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - - name: Setup python and scons - uses: ./.github/actions/setup-godot-deps - - - name: Build Godot artifact - shell: bash - run: | - ./spine-godot/build/setup.sh $GODOT_TAG false - ./spine-godot/build/build-templates-v4.sh android - - - name: Upload artifacts debug - uses: actions/upload-artifact@v3 - with: - name: godot-template-android-debug.zip - path: spine-godot/godot/bin/android_debug.apk - - - name: Upload artifacts release - uses: actions/upload-artifact@v3 - with: - name: godot-template-android-release.zip - path: spine-godot/godot/bin/android_release.apk - - - name: Upload artifacts source - uses: actions/upload-artifact@v3 - with: - name: godot-template-android-source.zip - path: spine-godot/godot/bin/android_source.zip - - godot-template-web: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Set up Emscripten latest - uses: mymindstorm/setup-emsdk@v11 - with: - version: ${{env.EM_VERSION}} - - - name: Verify Emscripten setup - run: | - emcc -v - - - name: Setup python and scons - uses: ./.github/actions/setup-godot-deps - - - name: Build Godot artifact - run: | - ./spine-godot/build/setup.sh $GODOT_TAG false - ./spine-godot/build/build-templates-v4.sh web - - - name: Upload artifacts debug - uses: actions/upload-artifact@v3 - with: - name: godot-template-web-debug.zip - path: spine-godot/godot/bin/web_debug.zip - - - name: Upload artifacts release - uses: actions/upload-artifact@v3 - with: - name: godot-template-web-release.zip - path: spine-godot/godot/bin/web_release.zip - - upload-to-s3: - needs: [godot-editor-windows, godot-editor-linux, godot-editor-macos, godot-template-ios, godot-template-macos, godot-template-windows, godot-template-linux, godot-template-android, godot-template-web] - runs-on: ubuntu-latest - steps: - - name: Download godot-editor-windows artifact - uses: actions/download-artifact@v2 - with: - name: godot-editor-windows.zip - - - name: Download godot-editor-linux artifact - uses: actions/download-artifact@v2 - with: - name: godot-editor-linux.zip - - - name: Download godot-editor-macos artifact - uses: actions/download-artifact@v2 - with: - name: godot-editor-macos.zip - - - name: Download godot-template-ios artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-ios.zip - - - name: Download godot-template-macos artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-macos.zip - - - name: Download godot-template-windows-release artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-windows-release.zip - - - name: Download godot-template-windows-debug artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-windows-debug.zip - - - name: Download godot-template-linux-release artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-linux-release.zip - - - name: Download godot-template-linux-debug artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-linux-debug.zip - - - name: Download godot-template-android-release artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-android-release.zip - - - name: Download godot-template-android-debug artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-android-debug.zip - - - name: Download godot-template-android-source artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-android-source.zip - - - name: Download godot-template-web-release artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-web-release.zip - - - name: Download godot-template-web-debug artifact - uses: actions/download-artifact@v2 - with: - name: godot-template-web-debug.zip - - - name: Upload artifacts to S3 - shell: bash - if: env.AWS_ACCESS_KEY_ID != null - run: | - BRANCH=${GITHUB_REF#refs/heads/} - echo "branch: $BRANCH" - mv godot.windows.editor.x86_64.exe godot-$BRANCH-$GODOT_TAG.exe - mv godot.linuxbsd.editor.x86_64 godot-$BRANCH-$GODOT_TAG - zip godot-editor-windows.zip godot-$BRANCH-$GODOT_TAG.exe - zip godot-editor-linux.zip godot-$BRANCH-$GODOT_TAG - aws s3 cp godot-editor-windows.zip s3://spine-godot/$BRANCH/$GODOT_TAG/ - aws s3 cp godot-editor-linux.zip s3://spine-godot/$BRANCH/$GODOT_TAG/ - aws s3 cp godot-editor-macos.zip s3://spine-godot/$BRANCH/$GODOT_TAG/ - echo "$GODOT_VERSION" > version.txt - ls -lah - zip spine-godot-templates-$BRANCH-$GODOT_TAG.zip ios.zip macos.zip windows_debug_x86_64.exe windows_release_x86_64.exe linux_x11_64_debug linux_x11_64_release web_debug.zip web_release.zip android_release.apk android_debug.apk android_source.zip version.txt - aws s3 cp spine-godot-templates-$BRANCH-$GODOT_TAG.zip s3://spine-godot/$BRANCH/$GODOT_TAG/spine-godot-templates-$BRANCH-$GODOT_TAG.tpz - - diff --git a/.github/workflows/spine-godot-v4.yml b/.github/workflows/spine-godot-v4.yml index 0abdae91a..cc87b43f7 100644 --- a/.github/workflows/spine-godot-v4.yml +++ b/.github/workflows/spine-godot-v4.yml @@ -1,20 +1,26 @@ -name: Build and Publish Godot 4.0 editor and templates +name: Build and publish Godot 4.x editor and templates on: - push: - paths: - - ".github/workflows/spine-godot.yml" - - 'spine-godot/**' - - 'spine-cpp/**' - workflow_dispatch: + workflow_call: + inputs: + godot_tag: + required: true + type: string + godot_version: + required: true + type: string + godot_mono: + required: true + type: boolean env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_EC2_METADATA_DISABLED: true EM_VERSION: 3.1.18 - GODOT_TAG: 4.0.3-stable - GODOT_VERSION: 4.0.3.stable + GODOT_TAG: ${{ inputs.godot_tag }} + GODOT_VERSION: ${{ inputs.godot_version }} + GODOT_MONO: ${{ inputs.godot_mono }} jobs: