diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5aa12f8..6e280fb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -67,11 +67,10 @@ jobs: working-directory: addons/godot_xterm/native run: UID_GID="$(id -u):$(id -g)" docker-compose run -e TARGET=${{ matrix.target }} -e ARCH=${{ matrix.arch }} -v ${{github.workspace}}/.scons-cache:/scons-cache libgodot-xterm-linux - name: Upload binaries - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: libgodot-xterm-${{ matrix.target }} - path: | - addons/godot_xterm/native/bin/*.so + name: libgodot-xterm-linux-${{ matrix.arch }}-${{ matrix.target }} + path: addons/godot_xterm/native/bin/*.so build-other-platforms: name: Build (${{ matrix.platform }}, ${{ matrix.arch }}, ${{ matrix.target}}) @@ -187,33 +186,52 @@ jobs: cd addons/godot_xterm/native scons platform=${{ matrix.platform }} target=template_${{ matrix.target }} arch=${{ matrix.arch }} -j2 - name: Upload binaries - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: libgodot-xterm-${{ matrix.target }} + name: libgodot-xterm-${{ matrix.platform }}-${{ matrix.arch }}-${{ matrix.target }} path: | + addons/godot_xterm/native/bin/*.so addons/godot_xterm/native/bin/*.wasm - addons/godot_xterm/native/bin/*.dylib + addons/godot_xterm/native/bin/*.framework + addons/godot_xterm/native/bin/*.xcframework addons/godot_xterm/native/bin/*.dll html5-export: - if: false # Temporarily disabled. name: "HTML5 Export" - needs: [build-linux] + needs: [check-archive, check-pre-commit] runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Setup Godot uses: lihop/setup-godot@v2 with: + version: "4.2.1-stable" export-templates: true - - name: Install binary build artifacts - uses: actions/download-artifact@v3 + - name: Wait for asset import + uses: fountainhead/action-wait-for-check@v1.1.0 with: - name: libgodot-xterm-release + token: ${{ secrets.GITHUB_TOKEN }} + checkName: Import Assets (linux) + ref: ${{ github.event.pull_request.head.sha || github.sha }} + - name: Download imports + uses: actions/download-artifact@v4 + with: + name: imports-linux + path: .godot + - name: Wait for build + uses: fountainhead/action-wait-for-check@v1.1.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} + checkName: Build (web, wasm32, release) + ref: ${{ github.event.pull_request.head.sha || github.sha }} + - name: Install binary build artifacts + uses: actions/download-artifact@v4 + with: + name: libgodot-xterm-web-wasm32-release path: addons/godot_xterm/native/bin - - name: Import assets - uses: ./.github/actions/import-assets + # Some remaining steps temporarily disabled. - name: Export HTML5 + if: false uses: nick-fields/retry@v3 with: command: godot --no-window --export HTML5 @@ -225,6 +243,7 @@ jobs: with: directory: test/html5 - name: Smoke test HTML5 export + if: false shell: bash working-directory: test/html5 run: | @@ -233,13 +252,15 @@ jobs: npx cypress run - name: Upload cypress artifacts (on failure) uses: actions/upload-artifact@v4 - if: ${{ failure() }} + if: false + #if: ${{ failure() }} with: name: cypress-artifacts path: |- test/html5/cypress/screenshots test/html5/cypress/videos - name: Upload export + if: false uses: actions/upload-artifact@v4 with: name: html5-demo @@ -301,9 +322,9 @@ jobs: checkName: Build (${{ matrix.platform }}, ${{ matrix.arch }}, debug) ref: ${{ github.event.pull_request.head.sha || github.sha }} - name: Install binary build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: - name: libgodot-xterm-debug + name: libgodot-xterm-${{ matrix.platform }}-${{ matrix.arch }}-debug path: addons/godot_xterm/native/bin - name: Test shell: bash @@ -314,10 +335,24 @@ jobs: just test-${{ matrix.test-type }} fi + merge-artifacts: + name: Merge Artifacts + runs-on: ubuntu-latest + needs: [test, html5-export] + strategy: + matrix: + target: [release, debug] + steps: + - uses: actions/upload-artifact/merge@v4 + with: + name: libgodot-xterm-${{ matrix.target }} + pattern: "*-${{ matrix.target }}" + delete-merged: true + delete-asset-imports: name: Delete Asset Imports runs-on: ubuntu-22.04 - needs: [import-assets, test] + needs: [test, html5-export] steps: - uses: geekyeggo/delete-artifact@v2 with: