diff --git a/.github/workflows/apk.yml b/.github/workflows/apk.yml index b6c32398..7750f9c2 100644 --- a/.github/workflows/apk.yml +++ b/.github/workflows/apk.yml @@ -76,12 +76,25 @@ jobs: ${{ runner.os }}-apk-${{ github.job }}-ccache- - name: Install ccache + timeout-minutes: 15 run: | sudo apt-get update sudo apt-get install -y ccache ccache --version - name: Setup Android SDK + id: netsetup84 + continue-on-error: true + timeout-minutes: 15 + uses: android-actions/setup-android@v4 + with: + accept-android-sdk-licenses: false + packages: platform-tools + cmdline-tools-version: 13114758 + + - name: Setup Android SDK (retry) + timeout-minutes: 15 + if: ${{ steps.netsetup84.outcome == 'failure' }} uses: android-actions/setup-android@v4 with: accept-android-sdk-licenses: false @@ -92,8 +105,13 @@ jobs: run: yes | sdkmanager --licenses >/dev/null - name: Install Android NDK + timeout-minutes: 30 run: | - sdkmanager "ndk;27.3.13750724" + for attempt in 1 2 3; do + sdkmanager "ndk;27.3.13750724" && break + [ "$attempt" = 3 ] && exit 1 + echo "sdkmanager attempt $attempt failed; retrying"; sleep 20 + done echo "ndk.dir=$ANDROID_HOME/ndk/27.3.13750724" >> android-plugin/local.properties - name: Update glslang external sources @@ -334,6 +352,18 @@ jobs: uses: actions/checkout@v6 - name: Setup Android SDK + id: netsetup336 + continue-on-error: true + timeout-minutes: 15 + uses: android-actions/setup-android@v4 + with: + accept-android-sdk-licenses: false + packages: platform-tools + cmdline-tools-version: 13114758 + + - name: Setup Android SDK (retry) + timeout-minutes: 15 + if: ${{ steps.netsetup336.outcome == 'failure' }} uses: android-actions/setup-android@v4 with: accept-android-sdk-licenses: false @@ -413,6 +443,18 @@ jobs: echo "EMULATOR_PID_FILE=${RUNNER_TEMP}/mobilegl-emulator.pid" >> "$GITHUB_ENV" - name: Setup Android SDK + id: netsetup415 + continue-on-error: true + timeout-minutes: 15 + uses: android-actions/setup-android@v4 + with: + accept-android-sdk-licenses: false + packages: platform-tools + cmdline-tools-version: 13114758 + + - name: Setup Android SDK (retry) + timeout-minutes: 15 + if: ${{ steps.netsetup415.outcome == 'failure' }} uses: android-actions/setup-android@v4 with: accept-android-sdk-licenses: false diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7106e74e..35fddc54 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -62,6 +62,7 @@ jobs: uses: ./.github/actions/setup-test-runner - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 @@ -75,6 +76,9 @@ jobs: ${{ runner.os }}-ubuntu24-cpu-test-${{ github.job }}-ccache- - name: Prepare Vulkan SDK + id: netsetup77 + continue-on-error: true + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' uses: humbletim/setup-vulkan-sdk@v1.2.1 with: @@ -82,11 +86,21 @@ jobs: vulkan-components: Vulkan-Headers, Vulkan-Loader vulkan-use-cache: true + - name: Prepare Vulkan SDK (retry) + timeout-minutes: 15 + if: ${{ (env.MOBILEGL_CI_NATIVE_GPU != '1') && steps.netsetup77.outcome == 'failure' }} + uses: humbletim/setup-vulkan-sdk@v1.2.1 + with: + vulkan-query-version: 1.4.304.1 + vulkan-components: Vulkan-Headers, Vulkan-Loader + vulkan-use-cache: true + - name: Update glslang external sources working-directory: 3rdparty/glslang run: python3 update_glslang_sources.py - name: Install build dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -219,6 +233,7 @@ jobs: uses: ./.github/actions/setup-test-runner - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 @@ -228,16 +243,29 @@ jobs: path: .ccache key: ${{ runner.os }}-ubuntu24-cpu-test-build-linux-ccache-v1 - name: Prepare Vulkan SDK + id: netsetup230 + continue-on-error: true + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' uses: humbletim/setup-vulkan-sdk@v1.2.1 with: vulkan-query-version: 1.4.304.1 vulkan-components: Vulkan-Headers, Vulkan-Loader vulkan-use-cache: true + + - name: Prepare Vulkan SDK (retry) + timeout-minutes: 15 + if: ${{ (env.MOBILEGL_CI_NATIVE_GPU != '1') && steps.netsetup230.outcome == 'failure' }} + uses: humbletim/setup-vulkan-sdk@v1.2.1 + with: + vulkan-query-version: 1.4.304.1 + vulkan-components: Vulkan-Headers, Vulkan-Loader + vulkan-use-cache: true - name: Update glslang external sources working-directory: 3rdparty/glslang run: python3 update_glslang_sources.py - name: Install build dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -289,11 +317,13 @@ jobs: uses: ./.github/actions/setup-test-runner - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 - name: Install runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -366,11 +396,13 @@ jobs: gpu: "true" - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 - name: Install runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' # Same set as the benchmark job, for the same reason: the scenarios bring # up real headless EGL (llvmpipe) and Vulkan (lavapipe) contexts, and @@ -515,6 +547,7 @@ jobs: uses: ./.github/actions/setup-test-runner - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 @@ -528,6 +561,9 @@ jobs: ${{ runner.os }}-ubuntu24-cpu-test-${{ github.job }}-ccache- - name: Prepare Vulkan SDK + id: netsetup530 + continue-on-error: true + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' uses: humbletim/setup-vulkan-sdk@v1.2.1 with: @@ -535,11 +571,21 @@ jobs: vulkan-components: Vulkan-Headers, Vulkan-Loader vulkan-use-cache: true + - name: Prepare Vulkan SDK (retry) + timeout-minutes: 15 + if: ${{ (env.MOBILEGL_CI_NATIVE_GPU != '1') && steps.netsetup530.outcome == 'failure' }} + uses: humbletim/setup-vulkan-sdk@v1.2.1 + with: + vulkan-query-version: 1.4.304.1 + vulkan-components: Vulkan-Headers, Vulkan-Loader + vulkan-use-cache: true + - name: Update glslang external sources working-directory: 3rdparty/glslang run: python3 update_glslang_sources.py - name: Install build dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -680,11 +726,13 @@ jobs: gpu: "true" - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 - name: Install runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -983,10 +1031,12 @@ jobs: with: gpu: "true" - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 - name: Install runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -1259,6 +1309,7 @@ jobs: uses: ./.github/actions/setup-test-runner - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 @@ -1272,6 +1323,9 @@ jobs: ${{ runner.os }}-ubuntu24-cpu-test-${{ github.job }}-ccache- - name: Prepare Vulkan SDK + id: netsetup1274 + continue-on-error: true + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' uses: humbletim/setup-vulkan-sdk@v1.2.1 with: @@ -1279,11 +1333,21 @@ jobs: vulkan-components: Vulkan-Headers, Vulkan-Loader vulkan-use-cache: true + - name: Prepare Vulkan SDK (retry) + timeout-minutes: 15 + if: ${{ (env.MOBILEGL_CI_NATIVE_GPU != '1') && steps.netsetup1274.outcome == 'failure' }} + uses: humbletim/setup-vulkan-sdk@v1.2.1 + with: + vulkan-query-version: 1.4.304.1 + vulkan-components: Vulkan-Headers, Vulkan-Loader + vulkan-use-cache: true + - name: Update glslang external sources working-directory: 3rdparty/glslang run: python3 update_glslang_sources.py - name: Install build dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -1454,11 +1518,13 @@ jobs: gpu: "true" - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 - name: Install runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -1726,11 +1792,13 @@ jobs: gpu: "true" - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 - name: Install runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -2332,6 +2400,7 @@ jobs: uses: ./.github/actions/setup-test-runner - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 @@ -2381,6 +2450,7 @@ jobs: run: git submodule update --init include/ska 3rdparty/xxHash 3rdparty/Vulkan-Headers - name: Install clang and X11 headers + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' # Includes.h defines VK_USE_PLATFORM_XLIB_KHR before , which then # includes ; without libx11-dev every clang-mode probe dies in the @@ -2410,11 +2480,13 @@ jobs: gpu: "true" - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 - name: Install runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' # libegl-mesa0 is the EGL vendor library itself: DriverBench brings up a # real GL context, and libegl1 is only glvnd's dispatch. It normally @@ -2485,6 +2557,7 @@ jobs: uses: ./.github/actions/setup-test-runner - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 @@ -2498,6 +2571,9 @@ jobs: ${{ runner.os }}-ubuntu24-cpu-test-${{ github.job }}-ccache- - name: Prepare Vulkan SDK + id: netsetup2500 + continue-on-error: true + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' uses: humbletim/setup-vulkan-sdk@v1.2.1 with: @@ -2505,11 +2581,21 @@ jobs: vulkan-components: Vulkan-Headers, Vulkan-Loader vulkan-use-cache: true + - name: Prepare Vulkan SDK (retry) + timeout-minutes: 15 + if: ${{ (env.MOBILEGL_CI_NATIVE_GPU != '1') && steps.netsetup2500.outcome == 'failure' }} + uses: humbletim/setup-vulkan-sdk@v1.2.1 + with: + vulkan-query-version: 1.4.304.1 + vulkan-components: Vulkan-Headers, Vulkan-Loader + vulkan-use-cache: true + - name: Update glslang external sources working-directory: 3rdparty/glslang run: python3 update_glslang_sources.py - name: Install dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -2778,11 +2864,13 @@ jobs: find trace-fixture-download -type f -exec cp {} tools/trace_replay/fixtures/ \; - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 - name: Install runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -2982,11 +3070,13 @@ jobs: find trace-fixture-download -type f -exec cp {} tools/trace_replay/fixtures/ \; - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 - name: Install runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -3181,11 +3271,13 @@ jobs: find trace-fixture-download -type f -exec cp {} tools/trace_replay/fixtures/ \; - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 - name: Install runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update @@ -3534,6 +3626,7 @@ jobs: uses: ./.github/actions/setup-test-runner - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 @@ -3711,6 +3804,7 @@ jobs: uses: ./.github/actions/setup-test-runner - name: Get CMake + timeout-minutes: 15 uses: lukka/get-cmake@v4.3.3 with: cmakeVersion: 3.31.10 @@ -3724,6 +3818,9 @@ jobs: ${{ runner.os }}-ubuntu24-cpu-test-${{ github.job }}-ccache- - name: Prepare Vulkan SDK + id: netsetup3726 + continue-on-error: true + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' uses: humbletim/setup-vulkan-sdk@v1.2.1 with: @@ -3731,11 +3828,21 @@ jobs: vulkan-components: Vulkan-Headers, Vulkan-Loader vulkan-use-cache: true + - name: Prepare Vulkan SDK (retry) + timeout-minutes: 15 + if: ${{ (env.MOBILEGL_CI_NATIVE_GPU != '1') && steps.netsetup3726.outcome == 'failure' }} + uses: humbletim/setup-vulkan-sdk@v1.2.1 + with: + vulkan-query-version: 1.4.304.1 + vulkan-components: Vulkan-Headers, Vulkan-Loader + vulkan-use-cache: true + - name: Update glslang external sources working-directory: 3rdparty/glslang run: python3 update_glslang_sources.py - name: Install build and runtime dependencies + timeout-minutes: 15 if: env.MOBILEGL_CI_NATIVE_GPU != '1' run: | sudo apt-get update