From 967cd4b7ff25e209569a92b83f91db3913ae21c7 Mon Sep 17 00:00:00 2001 From: David Duarte Date: Thu, 28 Aug 2025 18:01:15 +0200 Subject: [PATCH] ci: Extract linux vulkan installation into its own action (#8164) --- .github/actions/install-vulkan-sdk/action.yml | 23 +++++++++++++++++++ .github/workflows/ci.yml | 16 ++----------- .github/workflows/shaders.yml | 19 +-------------- 3 files changed, 26 insertions(+), 32 deletions(-) create mode 100644 .github/actions/install-vulkan-sdk/action.yml diff --git a/.github/actions/install-vulkan-sdk/action.yml b/.github/actions/install-vulkan-sdk/action.yml new file mode 100644 index 000000000..8446c2c88 --- /dev/null +++ b/.github/actions/install-vulkan-sdk/action.yml @@ -0,0 +1,23 @@ +name: "Install Vulkan SDK" +description: "Install Vulkan SDK" +runs: + using: "composite" + steps: + - name: Install Vulkan SDK + shell: bash + env: + # Sourced from https://vulkan.lunarg.com/sdk/home#linux + VULKAN_SDK_VERSION: "1.4.321" + VULKAN_FULL_SDK_VERSION: "1.4.321.0" + run: | + set -e + + curl -L --retry 5 https://sdk.lunarg.com/sdk/download/${{ env.VULKAN_FULL_SDK_VERSION }}/linux/vulkansdk-linux-x86_64-${{ env.VULKAN_FULL_SDK_VERSION }}.tar.xz -o vulkan-sdk.tar.xz + mkdir vulkan-sdk + tar xpf vulkan-sdk.tar.xz -C vulkan-sdk + + mv ./vulkan-sdk/${{ env.VULKAN_FULL_SDK_VERSION }} $HOME/VulkanSDK + + echo "$HOME/VulkanSDK/x86_64/bin" >> "$GITHUB_PATH" + echo "LD_LIBRARY_PATH=$HOME/VulkanSDK/x86_64/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" >> "$GITHUB_ENV" + echo "VK_ADD_LAYER_PATH=$HOME/VulkanSDK/x86_64/share/vulkan/explicit_layer.d" >> "$GITHUB_ENV" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 029de381c..30abd643f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,7 @@ env: # # Sourced from https://vulkan.lunarg.com/sdk/home#linux + # These Vulkan version definition is duplicated in the install-vulkan action. VULKAN_SDK_VERSION: "1.4.321" VULKAN_FULL_SDK_VERSION: "1.4.321.0" @@ -604,20 +605,7 @@ jobs: - name: (Linux) Install Vulkan SDK if: matrix.os == 'ubuntu-24.04' - shell: bash - run: | - set -e - - curl -L --retry 5 https://sdk.lunarg.com/sdk/download/${{ env.VULKAN_FULL_SDK_VERSION }}/linux/vulkansdk-linux-x86_64-${{ env.VULKAN_FULL_SDK_VERSION }}.tar.xz -o vulkan-sdk.tar.xz - mkdir vulkan-sdk - tar xpf vulkan-sdk.tar.xz -C vulkan-sdk - - mv ./vulkan-sdk/${{ env.VULKAN_FULL_SDK_VERSION }} $HOME/VulkanSDK - - echo "$HOME/VulkanSDK/x86_64/bin" >> "$GITHUB_PATH" - echo "LD_LIBRARY_PATH=$HOME/VulkanSDK/x86_64/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" >> "$GITHUB_ENV" - echo "VK_ADD_LAYER_PATH=$HOME/VulkanSDK/x86_64/share/vulkan/explicit_layer.d" >> "$GITHUB_ENV" - + uses: ./.github/actions/install-vulkan-sdk - name: (Linux) Install Mesa if: matrix.os == 'ubuntu-24.04' diff --git a/.github/workflows/shaders.yml b/.github/workflows/shaders.yml index 9bd574789..bc2d28430 100644 --- a/.github/workflows/shaders.yml +++ b/.github/workflows/shaders.yml @@ -13,11 +13,6 @@ on: pull_request: merge_group: -env: - # Sourced from https://vulkan.lunarg.com/sdk/home#linux - VULKAN_SDK_VERSION: "1.4.321" - VULKAN_FULL_SDK_VERSION: "1.4.321.0" - # Every time a PR is pushed to, cancel any previous jobs. This # makes us behave nicer to github and get faster turnaround times # on PRs that are pushed to multiple times in rapid succession. @@ -99,19 +94,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Vulkan SDK - shell: bash - run: | - set -e - - curl -L --retry 5 https://sdk.lunarg.com/sdk/download/${{ env.VULKAN_FULL_SDK_VERSION }}/linux/vulkansdk-linux-x86_64-${{ env.VULKAN_FULL_SDK_VERSION }}.tar.xz -o vulkan-sdk.tar.xz - mkdir vulkan-sdk - tar xpf vulkan-sdk.tar.xz -C vulkan-sdk - - mv ./vulkan-sdk/${{ env.VULKAN_FULL_SDK_VERSION }} $HOME/VulkanSDK - - echo "$HOME/VulkanSDK/x86_64/bin" >> "$GITHUB_PATH" - echo "LD_LIBRARY_PATH=$HOME/VulkanSDK/x86_64/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" >> "$GITHUB_ENV" - echo "VK_ADD_LAYER_PATH=$HOME/VulkanSDK/x86_64/share/vulkan/explicit_layer.d" >> "$GITHUB_ENV" + uses: ./.github/actions/install-vulkan-sdk - name: Install Graphviz run: sudo apt-get install graphviz