-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathaction.yml
88 lines (82 loc) · 2.81 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: 'Install Vulkan SDK'
description: 'Automatically downloads and installs prebuilt Vulkan SDK releases.'
branding:
icon: 'play'
color: 'red'
inputs:
version:
description: 'official Vulkan SDK release version to use'
default: 'latest'
required: true
cache:
description: 'whether to cache the downloaded vulkan_sdk.* installer file (using github actions/cache)'
default: false
required: false
quiet:
description: 'silence GitHub Annotation notice displayed if resolving `latest` into Vulkan SDK release number'
default: false
required: false
runs:
using: "composite"
steps:
- name: Preset environment variables
shell: bash
run: |
# preset env
basedir=$PWD
runner_os=${RUNNER_OS:-`uname -s`}
case $runner_os in
macOS|Darwin) os=mac ;;
Linux) os=linux ;;
Windows|MINGW*) os=windows ; basedir=$(pwd -W) ;;
*) echo "unknown runner_os: $runner_os" ; exit 7 ; ;;
esac
version=${VULKAN_SDK_VERSION:-${{ inputs.version }}}
sdk_dir=${VULKAN_SDK:-$basedir/VULKAN_SDK}
test -d $sdk_dir || mkdir -pv $sdk_dir
if [[ $version == 'latest' ]] ; then
url=https://vulkan.lunarg.com/sdk/latest/$os.txt
echo "note: resolving '$version' for '$os' via webservices lookup: $url" >&2
version=$(curl -sL $url)
test -n "$version" || { echo "could not resolve latest version" ; exit 9 ; }
[[ "${{ inputs.quiet }}" == "true" ]] || echo "::notice title=Using Vulkan SDK $version::resolved via '$url'"
fi
(
echo VULKAN_SDK=$sdk_dir
echo VULKAN_SDK_VERSION=$version
echo VULKAN_SDK_PLATFORM=$os
) | tee -a $GITHUB_ENV
- name: Check Vulkan SDK installer cache
id: vulkan-cached-sdk
if: inputs.cache != 'false'
uses: actions/cache@v4
with:
path: vulkan_sdk.*
key: ${{ runner.os }}-vulkan-prebuilt-sdk-${{ inputs.cache }}-${{ env.VULKAN_SDK_VERSION }}
- name: Download Vulkan SDK
shell: bash
run: |
# download
. $GITHUB_ACTION_PATH/vulkan_prebuilt_helpers.sh
download_vulkan_installer ${VULKAN_SDK_PLATFORM}
- name: Install Vulkan SDK
shell: bash
run: |
# install
. $GITHUB_ACTION_PATH/vulkan_prebuilt_helpers.sh
unpack_vulkan_installer ${VULKAN_SDK_PLATFORM}
- name: Cleanup Vulkan SDK download file
if: inputs.cache == 'false'
shell: bash
run: |
# cleanup
rm -v vulkan_sdk.* || true
- name: Verify Vulkan SDK binary
shell: bash
run: |
$VULKAN_SDK/bin/glslangValidator --version
- name: Export bin/ PATH to environment
shell: bash
run: |
echo ${VULKAN_SDK}/bin | tee -a $GITHUB_PATH
du -hs ${VULKAN_SDK}