Skip to content

Setup

Setup #355

Workflow file for this run

name: Setup
on:
push:
workflow_dispatch:
inputs:
extra_tests:
description: 'Enable additional CI tests'
required: false
default: false
components:
description: Vulkan SDK Components
required: false
default: 'Vulkan-Headers Vulkan-Loader SPIRV-Headers SPIRV-Cross SPIRV-Tools SPIRV-Reflect Glslang'
# Vulkan-ValidationLayers robin-hood-hashing
versions:
description: Vulkan SDK Versions
required: false
default: '[ "latest" ]'
oses:
description: 'Matrix OSes'
required: true
default: '[ "ubuntu-latest", "windows-latest", "windows-2022", "macos-12" ]'
jobs:
setup-all-matrix:
if: ${{ github.event.inputs.extra_tests == 'true' || github.event.inputs.extra_tests == 'matrix' }}
runs-on: ${{ matrix.runs-on }}
strategy:
matrix:
runs-on: ${{ fromJSON(github.event.inputs.oses) }}
version: ${{ fromJSON(github.event.inputs.versions) }}
steps:
- uses: actions/checkout@v4
- uses: ./
with:
vulkan-query-version: ${{ matrix.version }}
vulkan-components: ${{ github.event.inputs.components }}
vulkan-use-cache: true
- name: seanmiddleditch/gha-setup-vsdevenv@v4
if: runner.os == 'Windows'
uses: actions/checkout@v4
with:
repository: seanmiddleditch/gha-setup-vsdevenv
ref: v4
path: gha-setup-vsdevenv
- name: ./gha-setup-vsdevenv/dist/index.js
shell: cmd
working-directory: gha-setup-vsdevenv
run: |
npm install @actions/core
node dist/index.js | grep -v ::set-output
- name: Test Vulkan SDK Install
shell: bash
run: |
echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'"
echo "VULKAN_SDK=='$VULKAN_SDK'"
glslangValidator --version
test -n "$VULKAN_SDK_VERSION"
cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=.
cmake --build tests/build --config release
./tests/build/test_vulkan
#
# setup-ubuntu-with-fetched-config-json:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Fetch config.json
# run: |
# curl -s -o vulkan_ubuntu_config.json https://vulkan.lunarg.com/sdk/config/1.2.182.0/linux/config.json
# - uses: ./
# with:
# vulkan-config-file: vulkan_ubuntu_config.json
# vulkan-components: |
# Vulkan-Headers Vulkan-Loader Vulkan-ValidationLayers
# SPIRV-Cross SPIRV-Tools SPIRV-Reflect
# Glslang
# - name: Test Vulkan SDK Install
# run: |
# echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'"
# echo "VULKAN_SDK=='$VULKAN_SDK'"
# test -n "$VULKAN_SDK_VERSION" || exit 4
# cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=.
# cmake --build tests/build --config release
# PATH=$PATH:$VULKAN_SDK/bin ./tests/build/test_vulkan
# glslangValidator --version
# spirv-cfg --version
# which spirv-cross
#
setup-ubuntu-with-local-config-json:
if: ${{ contains(github.event.inputs.extra_tests, 'default') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./
with:
vulkan-config-file: tests/vulkan_sdk_specs/linux.json
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true+
- name: Test Vulkan SDK Install
run: |
echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'"
echo "VULKAN_SDK=='$VULKAN_SDK'"
test -n "$VULKAN_SDK_VERSION" || exit 4
cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=.
cmake --build tests/build --config release -- -j2
PATH=$PATH:$VULKAN_SDK/bin ./tests/build/test_vulkan
#
# setup-windows-prebuilt:
# runs-on: windows-latest
# steps:
# - uses: actions/checkout@v4
# - uses: ./
# with:
# vulkan-components: prebuilt loader
# vulkan-use-cache: true
# - name: Test Vulkan SDK Install
# shell: cmd
# run: |
# echo "Vulkan SDK Version=='%VULKAN_SDK_VERSION%'"
# echo "VULKAN_SDK=='%VULKAN_SDK%'"
# if "%VULKAN_SDK_VERSION%"=="" exit 1
# cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=. || exit /b 2
# cmake --build tests/build --config release || exit /b 3
# set PATH=%PATH%;%VULKAN_SDK%/bin
# glslangValidator --version
# dir /R VULKAN_SDK
# dir /R tests
# dir .\tests\build\test_vulkan.exe
# echo testing...
# .\tests\build\test_vulkan || true || exit /b 4
#
# setup-macos-using-prebuilt-cached:
# runs-on: macos-12
# steps:
# - uses: actions/checkout@v4
# - uses: ./
# with:
# vulkan-version: 1.2.189.0
# vulkan-components: prebuilt loader
# vulkan-use-cache: true
# # - name: Setup tmate session
# # uses: mxschmitt/action-tmate@v3.9
# # with:
# # limit-access-to-actor: true
# - name: Test Vulkan SDK Install
# run: |
# echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'"
# echo "VULKAN_SDK=='$VULKAN_SDK'"
# test -n "$VULKAN_SDK_VERSION"
# cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=.
# cmake --build tests/build --config release
# PATH=$PATH:$VULKAN_SDK/bin ./tests/build/test_vulkan
#
setup-windows-with-version-powershell:
if: ${{ contains(github.event.inputs.extra_tests, 'default') }}
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: ./
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- uses: seanmiddleditch/gha-setup-vsdevenv@v4
if: runner.os == 'Windows'
- name: Test Vulkan SDK Install
shell: powershell
run: |
echo "Vulkan SDK Version=='$env:VULKAN_SDK_VERSION'"
if (!$env:VULKAN_SDK_VERSION) { throw "vulkan sdk install error" }
cd tests
cmake -G "Visual Studio 16 2019" -B build -S . -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=.
cmake --build build --config release
$ENV:PATH="$ENV:PATH;$ENV:VULKAN_SDK/bin"
tail -100 build/CMakeFiles/*.log
./build/test_vulkan
#
setup-macos-with-latest:
if: ${{ contains(github.event.inputs.extra_tests, 'default') }}
runs-on: macos-12
steps:
- uses: actions/checkout@v4
- uses: ./
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang
vulkan-use-cache: true+
- name: Test Vulkan SDK Install
run: |
echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'"
echo "VULKAN_SDK=='$VULKAN_SDK'"
test -n "$VULKAN_SDK_VERSION"
cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=.
cmake --build tests/build --config release -- -j2
glslangValidator --version
PATH=$PATH:$VULKAN_SDK/bin ./tests/build/test_vulkan
#
# setup-ubuntu-without-version:
# if: ${{ github.event.inputs.extra_tests == 'true' }}
# runs-on: ubuntu-latest
# container:
# image: ubuntu:16.04
# steps:
# - uses: actions/checkout@v4
# - name: Install Python3
# run: |
# apt-get -qq update
# apt-get -qq install python3
# - uses: ./
# with:
# vulkan-components: headers, loader, validation
# - name: Test Vulkan SDK Install
# run: |
# echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'"
# echo "VULKAN_SDK=='$VULKAN_SDK'"
# test -n "$VULKAN_SDK_VERSION"
# cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=.
# cmake --build tests/build --config release
# PATH=$PATH:$VULKAN_SDK/bin ./tests/build/test_vulkan
#
# setup-ubuntu-with-version:
# if: ${{ github.event.inputs.extra_tests == 'true' }}
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: ./
# with:
# vulkan-version: 1.2.162.0
# vulkan-components: headers, loader, spirv-cross, spirv-tools
# - name: Test Vulkan SDK Install
# run: |
# echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'"
# echo "VULKAN_SDK=='$VULKAN_SDK'"
# test -n "$VULKAN_SDK_VERSION"
# cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=.
# cmake --build tests/build --config release
# PATH=$PATH:$VULKAN_SDK/bin ./tests/build/test_vulkan
#
# setup-ubuntu-prebuilt:
# if: ${{ github.event.inputs.extra_tests == 'true' }}
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: ./
# with:
# vulkan-components: prebuilt
# vulkan-use-cache: true
# - name: Test Vulkan SDK Install
# run: |
# echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'"
# echo "VULKAN_SDK=='$VULKAN_SDK'"
# test -n "$VULKAN_SDK_VERSION"
# cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=.
# cmake --build tests/build --config release
# PATH=$PATH:$VULKAN_SDK/bin ./tests/build/test_vulkan
#
# setup-windows-without-version-cmd:
# if: ${{ github.event.inputs.extra_tests == 'true' }}
# runs-on: windows-latest
# steps:
# - uses: actions/checkout@v4
# - uses: ./
# - name: Test Vulkan SDK Install
# shell: cmd
# run: |
# echo "Vulkan SDK Version=='%VULKAN_SDK_VERSION%'"
# echo "VULKAN_SDK=='%VULKAN_SDK%'"
# if "%VULKAN_SDK_VERSION%"=="" exit 1
# cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=. || exit /b 1
# cmake --build tests/build --config release || exit /b 1
# set PATH=%PATH%;%VULKAN_SDK%/bin
# .\tests\build\test_vulkan || exit /b 1
#
# setup-macos-with-version:
# if: ${{ github.event.inputs.extra_tests == 'true' }}
# runs-on: macos-12
# steps:
# - uses: actions/checkout@v4
# - uses: ./
# with:
# vulkan-version: 1.2.189.0
# vulkan-components: headers loader
# - name: Test Vulkan SDK Install
# run: |
# echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'"
# echo "VULKAN_SDK=='$VULKAN_SDK'"
# test -n "$VULKAN_SDK_VERSION"
# cmake -B tests/build -S tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=.
# cmake --build tests/build --config release
# PATH=$PATH:$VULKAN_SDK/bin ./tests/build/test_vulkan