diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3ca02be9d..ce560d4cf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,5 +1,5 @@ -# Copyright (c) 2021-2023 Valve Corporation -# Copyright (c) 2021-2023 LunarG, Inc. +# Copyright (c) 2021-2024 Valve Corporation +# Copyright (c) 2021-2024 LunarG, Inc. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -35,6 +35,7 @@ permissions: read-all jobs: linux: + needs: codegen runs-on: ${{matrix.os}} strategy: matrix: @@ -82,6 +83,7 @@ jobs: - run: scripts/generate_source.py --verify ext/Vulkan-Headers/registry/ linux-no-asm: + needs: codegen runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 @@ -101,6 +103,7 @@ jobs: - run: ctest --output-on-failure -E UnknownFunction --test-dir build/ linux-32: + needs: codegen runs-on: ubuntu-22.04 strategy: matrix: @@ -139,6 +142,7 @@ jobs: working-directory: build/ linux-32-no-asm: + needs: codegen runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 @@ -173,6 +177,8 @@ jobs: working-directory: build/ windows_vs: + # windows is 2x expensive to run on GitHub machines, so only run if we know something else simple passed as well + needs: linux-no-asm runs-on: windows-latest strategy: matrix: @@ -192,6 +198,8 @@ jobs: - run: ctest --output-on-failure -C ${{matrix.config}} --test-dir build/ windows_vs-no-asm: + # windows is 2x expensive to run on GitHub machines, so only run if we know something else simple passed as well + needs: linux-no-asm runs-on: windows-latest strategy: matrix: @@ -211,6 +219,8 @@ jobs: # Test both clang and clang-cl (Chromium project uses clang-cl) windows_clang: + # windows is 2x expensive to run on GitHub machines, so only run if we know something else simple passed as well + needs: linux-no-asm runs-on: windows-2022 strategy: matrix: @@ -233,6 +243,8 @@ jobs: - run: cmake --install build --prefix build/install mac: + # Mac is 10x expensive to run on GitHub machines, so only run if we know something else passed as well + needs: windows_clang runs-on: macos-13 strategy: matrix: @@ -261,6 +273,8 @@ jobs: - run: ctest --output-on-failure --test-dir build/ apple-cross-compile: + # Mac is 10x expensive to run on GitHub machines, so only run if we know something else passed as well + needs: windows_clang name: ${{ matrix.CMAKE_SYSTEM_NAME }} runs-on: macos-13 strategy: @@ -292,6 +306,8 @@ jobs: # Building a universal binary disables assembly automatically # Furthermore the Vulkan SDK ships universal binaries mac-univeral: + # Mac is 10x expensive to run on GitHub machines, so only run if we know something else passed as well + needs: windows_clang name: "Universal Binary Testing (STATIC ${{ matrix.static }}) w/ ${{ matrix.generator }}" runs-on: macos-latest strategy: @@ -325,12 +341,15 @@ jobs: vtool -show-build /tmp/lib/libvulkan.dylib | grep 'architecture arm64' chromium: + needs: codegen runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: scripts/gn/gn.py mingw: + # windows is 2x expensive to run on GitHub machines, so only run if we know something else simple passed as well + needs: linux-no-asm runs-on: windows-2022 defaults: run: @@ -357,6 +376,8 @@ jobs: - run: cmake --install build --prefix /tmp mingw-use-gas: + # windows is 2x expensive to run on GitHub machines, so only run if we know something else simple passed as well + needs: linux-no-asm runs-on: windows-2022 defaults: run: @@ -378,6 +399,8 @@ jobs: - run: cmake --install build --prefix /tmp mingw-no-asm: + # windows is 2x expensive to run on GitHub machines, so only run if we know something else simple passed as well + needs: linux-no-asm runs-on: windows-2022 defaults: run: @@ -399,6 +422,8 @@ jobs: - run: cmake --install build --prefix /tmp mingw-no-asm-explicit: + # windows is 2x expensive to run on GitHub machines, so only run if we know something else simple passed as well + needs: linux-no-asm runs-on: windows-2022 defaults: run: