summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2024-07-10 22:37:21 +0800
committerGitHub <noreply@github.com>2024-07-10 22:37:21 +0800
commit0e56999a573fada2cce6e94c21ef856cc88dc933 (patch)
tree2a74650a90285c5e4b0823fed10b3cc2ba9fe9d4 /.github
parent9f1ff45e67c3c8e368feec11130378805bf5497c (diff)
WIP Drop Premake (#3703)
* Remove premake lua * Remove premake generated vs project * remove deps file * Remove premake driving bat files * Full test matrix under CMake * Remove premake based ci workflows * Wiggle CI * remove cmake from ci name * find frameworks correctly on osx * remove cmake from ci name * Cope with sccache not being available * cmake based falcor tests * ci wobble * only install ninja if necessary * more appropriate cache name * Remove premake from build instructions * Add some docs on ci setup * remove premake from regression tests * remove premake from perf test * Set SLANGC_PATH * ci wobble * bump slang-binaries * ci wobble * Bump spirv tools * dont use timestamp in cache * remote debug code * cache key wobble * Install sccache after building llvm * Do not build llvm tools * ci wobble * ci wobble * ci wobble * ci wobble * ci wobble * Tests spirv via glsl in ci * Define SLANG_ENABLE_XLIB=1 * osx builds on aarch64 * ci wobble * ci wobble * ci wobble * ci wobble * ci wobble * ci wobble * package documentation and metadata with cmake * ci wobble * Split hlsl double intrinsic tests * ci wobble * Correct type for double log10 Fixes https://github.com/shader-slang/slang/issues/4549 * remove working test from expected failures * add broken test to expected failures * smaller build for falcor tests * ci wobble * A few exclusions in ci * wip, release script * Enable examples in ci * neaten release script * Correct building docs * Only use xlib vulkan when slang_enable_xlib is true * bump slang-llvm version * Remove toolchain file use * Bump slang-llvm preset version * slash direction * Improve build directions * Add msvc cross build documentation * Disable old release files * Smaller set of releases for test * Allow not building llvm * simplify release matrix * Cross releases * formatting * formatting * ci wiggle * ci wiggle * cleaner * neaten * ci wobble * formatting * Install cross tools on linux * do not clean build dir * neaten ci * neaten ci * neaten ci * remove unused release workflow files * Build llvm on some platforms * neaten ci * notarize on osx * s/x64/x86_64 * ci wobble * Embed stdlib for release build * wobble ci * wobble ci * s/x64/x86_64 * ci wobble * ci wobble * ci wobble * vk-gl-cts on cmake * neaten ci * neaten ci * bump cache action version * Cope with windows being weird about case * old glibc version * old glibc version * Correct action file * Keep cache hot on main branch * separate small script for old glibc releases * ci wobble * ci wobble * Run cmake outside of docker * only sign on releases * Revert "Run cmake outside of docker" This reverts commit a58aaba939a4aa35fe70962fd60d9512b143592f. * python3 on build image * less parallel * ci wobble * ci wobble * ci wobble * newer git * ci wobble * ci wobble * Use newer docker image * Use newer docker image * sccache wobble * permissions issue * neaten * build llvm in ci * build llvm in ci * Remove linux clang build in ci * Only install crossbuild tools on non-aarch64 systems * neaten ci.yml * Correct github matrix * Simplify github matrix * ci wobble * Disable broken test See https://github.com/shader-slang/slang/issues/4589 * ci wobble * Neater slang-llvm archive filename * Neater path for uploading artifacts * Neater ci names * Use Windows SDK 10.0.19041.0 in cmake builds
Diffstat (limited to '.github')
-rw-r--r--.github/actions/common-setup/action.yml83
-rw-r--r--.github/workflows/ci.yml105
-rw-r--r--.github/workflows/compile-regression-test.yml53
-rw-r--r--.github/workflows/falcor-compiler-perf-test.yml45
-rw-r--r--.github/workflows/falcor-test.yml56
-rw-r--r--.github/workflows/linux-arm64.yml59
-rw-r--r--.github/workflows/linux.yml75
-rw-r--r--.github/workflows/macos.yml74
-rw-r--r--.github/workflows/release-linux-arm64.yml56
-rw-r--r--.github/workflows/release-linux-glibc-2-17.yml67
-rw-r--r--.github/workflows/release-linux.yml68
-rw-r--r--.github/workflows/release-macos.yml132
-rw-r--r--.github/workflows/release-windows.yml116
-rw-r--r--.github/workflows/release.yml181
-rw-r--r--.github/workflows/verify-solution-file.yml25
-rw-r--r--.github/workflows/vk-gl-cts-nightly.yml51
-rw-r--r--.github/workflows/windows-selfhosted.yml52
-rw-r--r--.github/workflows/windows.yml76
18 files changed, 453 insertions, 921 deletions
diff --git a/.github/actions/common-setup/action.yml b/.github/actions/common-setup/action.yml
index a1323ddbd..712a74df5 100644
--- a/.github/actions/common-setup/action.yml
+++ b/.github/actions/common-setup/action.yml
@@ -5,35 +5,39 @@ description: Performs setup common to all our actions
inputs:
os:
required: true
- runs-on:
- required: true
compiler:
required: true
platform:
required: true
config:
required: true
+ build-llvm:
+ required: true
runs:
using: composite
steps:
- name: Set up MSVC dev tools on Windows
uses: ilammy/msvc-dev-cmd@v1
- - name: Set up sccache
- uses: hendrikmuhs/ccache-action@v1.2
with:
- key: ${{inputs.os}}-${{inputs.compiler}}-${{inputs.platform}}-${{inputs.config}}
- variant: sccache
- append-timestamp: false
+ sdk: "10.0.19041.0"
+
- shell: bash
run: |
# Set up system dependencies
# Install Ninja
- case "${{inputs.os}}" in
- linux*) sudo apt-get install -y ninja-build;;
- windows*) choco install ninja;;
- macos*) brew install ninja;;
- esac
+ if ! command -v ninja; then
+ case "${{inputs.os}}" in
+ linux*) sudo apt-get install -y ninja-build;;
+ windows*) choco install ninja;;
+ macos*) brew install ninja;;
+ esac
+ fi
+
+ # Install cross tools on Ubuntu
+ if [[ "${{inputs.os}}" == linux* && "${{inputs.platform}}" == "aarch64" && "$(uname -m)" != "aarch64" ]]; then
+ sudo apt-get install -y crossbuild-essential-arm64
+ fi
# Set compiler
CC=${{inputs.compiler}}
@@ -41,50 +45,69 @@ runs:
# infer C++ compiler
CXX=${CXX/gcc/g++}
CXX=${CXX/clang/clang++}
- # Correct version on older ubuntu
- if [[ "${{inputs.runs-on}}" == ubuntu-20.04 ]]; then
- CC=${CC/gcc/gcc-10}
- CXX=${CXX/g++/g++-10}
+ # Correct gcc version on older ubuntu
+ if [[ "${{inputs.os}}" == linux* ]]; then
+ gcc_version=$(gcc -dumpversion | cut -d'.' -f1)
+ if [ "$gcc_version" -lt 10 ]; then
+ CC=${CC/gcc/gcc-10}
+ CXX=${CXX/g++/g++-10}
+ fi
fi
# Export
echo "CC=$CC" >> "$GITHUB_ENV"
echo "CXX=$CXX" >> "$GITHUB_ENV"
- # Set CMake to use sccache
- echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV"
- echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV"
-
# Some useful variables
config=${{inputs.config}}
Config=$(echo "${{inputs.config}}" | sed 's/debug/Debug/;s/release/Release/')
bin_dir=$(pwd)/build/$Config/bin
lib_dir=$(pwd)/build/$Config/lib
echo "config=$config" >> "$GITHUB_ENV"
- echo "Config=$Config" >> "$GITHUB_ENV"
echo "bin_dir=$bin_dir" >> "$GITHUB_ENV"
echo "lib_dir=$lib_dir" >> "$GITHUB_ENV"
# Try to restore a LLVM install, and build it otherwise
- - uses: actions/cache/restore@v3
+ - uses: actions/cache/restore@v4
id: cache-llvm
+ if: inputs.build-llvm == 'true'
with:
path: ${{ github.workspace }}/build/llvm-project-install
# Use os*compiler*platform in lieu of an ABI key here, which is what we really want
- key: ${{ inputs.os }}-${{ inputs.compiler }}-${{ inputs.platform }}-${{ hashFiles('external/build-llvm.sh') }}
+ key: llvm-${{ inputs.os }}-${{ inputs.compiler }}-${{ inputs.platform }}-${{ hashFiles('external/build-llvm.sh') }}
- name: Build LLVM
- if: steps.cache-llvm.outputs.cache-hit != 'true'
+ if: inputs.build-llvm == 'true' && steps.cache-llvm.outputs.cache-hit != 'true'
shell: bash
run: ./external/build-llvm.sh --install-prefix "${{ github.workspace }}/build/llvm-project-install"
- - uses: actions/cache/save@v3
- if: steps.cache-llvm.outputs.cache-hit != 'true'
+ - uses: actions/cache/save@v4
+ if: inputs.build-llvm == 'true' && steps.cache-llvm.outputs.cache-hit != 'true'
with:
path: ${{ github.workspace }}/build/llvm-project-install
key: ${{ steps.cache-llvm.outputs.cache-primary-key }}
+
+ # Run this after building llvm, it's pointless to fill the caches with
+ # infrequent llvm build products
+ - name: Set up sccache
+ uses: hendrikmuhs/ccache-action@v1.2
+ with:
+ key: ${{inputs.os}}-${{inputs.compiler}}-${{inputs.platform}}-${{inputs.config}}
+ variant: sccache
+ # Opportunistically use sccache, it's not available for example on self
+ # hosted runners or ARM
+ continue-on-error: true
+
- name: Set environment variable for CMake
shell: bash
run: |
- echo "LLVM_DIR=${{ github.workspace }}/build/llvm-project-install" >> "$GITHUB_ENV"
- echo "Clang_DIR=${{ github.workspace }}/build/llvm-project-install" >> "$GITHUB_ENV"
+ if [ "${{inputs.build-llvm}}" == "true" ]; then
+ echo "LLVM_DIR=${{ github.workspace }}/build/llvm-project-install" >> "$GITHUB_ENV"
+ echo "Clang_DIR=${{ github.workspace }}/build/llvm-project-install" >> "$GITHUB_ENV"
+ fi
+
+ # Set CMake to use sccache if it's available
+ if command -v sccache; then
+ echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV"
+ echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV"
+ fi
# Install swiftshader
- uses: robinraju/release-downloader@v1.8
@@ -107,7 +130,9 @@ runs:
# Put spirv-tools in path
- shell: bash
run: |
+ win_platform="${{ inputs.platform }}"
+ win_platform="${win_platform//x86_64/x64}"
case "${{inputs.os}}" in
- windows*) echo "${{github.workspace}}/external/slang-binaries/spirv-tools/windows-${{inputs.platform}}/bin" >> "$GITHUB_PATH";;
+ windows*) echo "${{github.workspace}}/external/slang-binaries/spirv-tools/windows-$win_platform/bin" >> "$GITHUB_PATH";;
linux*) echo "${{github.workspace}}/external/slang-binaries/spirv-tools/$(uname -m)-linux/bin" >> "$GITHUB_PATH";;
esac
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d6fa7673f..b23308ab3 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,4 +1,4 @@
-name: CI (CMake)
+name: CI
on:
push:
@@ -12,60 +12,54 @@ jobs:
build:
strategy:
matrix:
- # Until we switch to CMake fully, just run something minimal
+ os: [linux, macos, windows]
+ config: [debug, release]
+ compiler: [gcc, clang, cl]
+ platform: [x86_64, aarch64]
+ exclude:
+ # Default to x64, but aarch64 on osx
+ - { os: linux, platform: aarch64 }
+ - { os: windows, platform: aarch64 }
+ - { os: macos, platform: x86_64 }
+ # Unused compiler configs
+ - { os: linux, compiler: clang }
+ - { os: linux, compiler: cl }
+ - { os: windows, compiler: gcc }
+ - { os: windows, compiler: clang }
+ - { os: macos, compiler: gcc }
+ - { os: macos, compiler: cl }
include:
+ - { os: linux, runs-on: ubuntu-20.04 }
+ - { os: macos, runs-on: macos-latest }
+ - { os: windows, runs-on: windows-latest }
+ # When to have warnings
+ - warnings-as-errors: false
+ - { compiler: cl, warnings-as-errors true }
+ # Set a test category depending on the config, smoke by default,
+ # quick or full conditionally otherwise
+ - test-category: smoke
+ - { os: windows, test-category: quick }
+ - { config: release, test-category: full }
+ # default not full gpu tests
+ - full-gpu-tests: false
+ # Self-hosted aarch64 build
- os: linux
compiler: gcc
- platform: x64
- config: debug
- warnings-as-errors: true
+ platform: aarch64
+ config: release
+ warnings-as-errors: false
test-category: smoke
full-gpu-tests: false
- runs-on: ubuntu-20.04
- # os: [linux, macos, windows]
- # compiler: ['gcc', 'clang', 'cl']
- # config: ['debug', 'release']
- # platform: ['x64']
- # full-gpu-tests: [false]
- # exclude:
- # # Exclude invalid or undesired os/compiler
- # - { os: linux, compiler: cl }
- # - { os: macos, compiler: cl }
- # - { os: macos, compiler: gcc }
- # - { os: windows, compiler: gcc }
- # - { os: windows, compiler: clang }
- # # or os/config combinations
- # - { os: macos, config: debug }
- # include:
- # - { os: linux, runs-on: ubuntu-20.04 }
- # - { os: windows, runs-on: windows-latest }
- # - { os: macos, runs-on: macos-latest }
- # # Set a test category depending on the config, smoke by default,
- # # quick or full conditionally otherwise
- # - test-category: smoke
- # - { os: windows, test-category: quick }
- # - { config: release, test-category: full }
- # # Only CL has werror
- # - warnings-as-errors: false
- # - { compiler: cl, warnings-as-errors: true }
- # # Self-hosted aarch64 build
- # - os: linux
- # compiler: gcc
- # platform: aarch64
- # config: release
- # warnings-as-errors: false
- # test-category: smoke
- # full-gpu-tests: false
- # runs-on: [self-hosted, Linux, ARM64]
- # # Self-hosted full gpu build
- # - os: windows
- # compiler: cl
- # platform: x64
- # config: release
- # warnings-as-errors: false
- # test-category: full
- # full-gpu-tests: true
- # runs-on: [Windows, self-hosted]
+ runs-on: [self-hosted, Linux, ARM64]
+ # Self-hosted full gpu build
+ - os: windows
+ compiler: cl
+ platform: x86_64
+ config: release
+ warnings-as-errors: false
+ test-category: full
+ full-gpu-tests: true
+ runs-on: [Windows, self-hosted]
fail-fast: false
runs-on: ${{ matrix.runs-on }}
@@ -82,10 +76,10 @@ jobs:
uses: ./.github/actions/common-setup
with:
os: ${{matrix.os}}
- runs-on: ${{matrix.runs-on}}
compiler: ${{matrix.compiler}}
platform: ${{matrix.platform}}
config: ${{matrix.config}}
+ build-llvm: true
- name: Build Slang
run: |
if [[ "${{ matrix.os }}" =~ "windows" && "${{ matrix.config }}" != "release" ]]; then
@@ -96,8 +90,7 @@ jobs:
# Configure, pointing to our just-generated slang-llvm archive
cmake --preset default --fresh \
-DSLANG_SLANG_LLVM_FLAVOR=FETCH_BINARY \
- -DSLANG_SLANG_LLVM_BINARY_URL=$(pwd)/build/dist-release/slang-slang-llvm.zip \
- -DSLANG_ENABLE_EXAMPLES=OFF \
+ -DSLANG_SLANG_LLVM_BINARY_URL=$(pwd)/build/dist-release/slang-llvm.zip \
-DCMAKE_COMPILE_WARNING_AS_ERROR=${{matrix.warnings-as-errors}}
cmake --workflow --preset "${{matrix.config}}"
else
@@ -105,13 +98,13 @@ jobs:
# cache in the setup phase
cmake --preset default --fresh \
-DSLANG_SLANG_LLVM_FLAVOR=USE_SYSTEM_LLVM \
- -DSLANG_ENABLE_EXAMPLES=OFF \
-DCMAKE_COMPILE_WARNING_AS_ERROR=${{matrix.warnings-as-errors}}
cmake --workflow --preset "${{matrix.config}}"
fi
- name: Test Slang
run: |
export SLANG_RUN_SPIRV_VALIDATION=1
+ export SLANG_USE_SPV_SOURCE_LANGUAGE_UNKNOWN=1
failed=0
if [[ "${{matrix.full-gpu-tests}}" == "true" ]]; then
$bin_dir/slang-test \
@@ -123,7 +116,7 @@ jobs:
$bin_dir/slang-test \
-use-test-server \
-server-count 8 \
- -emit-spirv-directly \
+ -emit-spirv-via-glsl \
-api vk \
-category ${{ matrix.test-category }} \
-expected-failure-list tests/expected-failure.txt ||
@@ -142,4 +135,4 @@ jobs:
with:
name: slang-build-${{matrix.os}}-${{matrix.platform}}-${{matrix.compiler}}-${{matrix.config}}
# The install directory used in the packaging step
- path: build/dist-${{matrix.config}}/**/slang/*
+ path: build/dist-${{matrix.config}}/**/ZIP/slang/*
diff --git a/.github/workflows/compile-regression-test.yml b/.github/workflows/compile-regression-test.yml
index 962b2cf54..b6b484b9a 100644
--- a/.github/workflows/compile-regression-test.yml
+++ b/.github/workflows/compile-regression-test.yml
@@ -1,5 +1,3 @@
-# This is a basic workflow to help you get started with Actions
-
name: Compile Regression-Test
on:
@@ -12,37 +10,48 @@ concurrency:
cancel-in-progress: true
jobs:
build:
- runs-on: [self-hosted, Windows, regression-test]
timeout-minutes: 100
continue-on-error: true
strategy:
fail-fast: false
matrix:
- configuration: ['Release']
- platform: ['x64']
+ os: [windows]
+ config: [release]
+ compiler: [cl]
+ platform: [x86_64]
include:
- - platform: x64
- testPlatform: x64
- - platform: x64
- testCategory: full
+ # Self-hosted falcor tests
+ - warnings-as-errors: false
+ test-category: full
+ full-gpu-tests: false
+ runs-on: [Windows, self-hosted, regression-test]
+ runs-on: ${{ matrix.runs-on }}
+ defaults:
+ run:
+ shell: bash
steps:
- uses: actions/checkout@v3
with:
submodules: 'true'
fetch-depth: '0'
- - name: setup-msbuild
- uses: microsoft/setup-msbuild@v1
- - name: build
+ - name: Setup
+ uses: ./.github/actions/common-setup
+ with:
+ os: ${{matrix.os}}
+ compiler: ${{matrix.compiler}}
+ platform: ${{matrix.platform}}
+ config: ${{matrix.config}}
+ build-llvm: true
+ - name: Build Slang
run: |
- .\premake.bat vs2019 --arch=${{matrix.platform}} --deps=true --no-progress=true --enable-cuda=true --enable-examples=false
-
- .\make-slang-tag-version.bat
-
- MSBuild.exe slang.sln -v:m -m -property:Configuration=${{matrix.configuration}} -property:Platform=${{matrix.platform}} -property:WindowsTargetPlatformVersion=10.0.19041.0 -maxcpucount:12
-
+ cmake --preset default --fresh \
+ -DSLANG_SLANG_LLVM_FLAVOR=USE_SYSTEM_LLVM \
+ -DCMAKE_COMPILE_WARNING_AS_ERROR=${{matrix.warnings-as-errors}} \
+ -DSLANG_ENABLE_CUDA=1
+ cmake --workflow --preset "${{matrix.config}}"
- name: Run compile and validation test
run: |
- $gitbash = 'C:\Program Files\git\bin\bash.exe'
- cp -r 'C:\slang_compile_test_suite_a' .\
- cd .\slang_compile_test_suite_a
- & $gitbash compile_all_slang.sh
+ cp -r /c/slang_compile_test_suite_a .
+ cd slang_compile_test_suite_a
+ export SLANGC_PATH="$bin_dir/slangc.exe"
+ bash ./compile_all_slang.sh
diff --git a/.github/workflows/falcor-compiler-perf-test.yml b/.github/workflows/falcor-compiler-perf-test.yml
index 6a5a91929..449944181 100644
--- a/.github/workflows/falcor-compiler-perf-test.yml
+++ b/.github/workflows/falcor-compiler-perf-test.yml
@@ -12,33 +12,47 @@ concurrency:
cancel-in-progress: true
jobs:
build:
- runs-on: [Windows, self-hosted, perf]
timeout-minutes: 100
continue-on-error: true
strategy:
fail-fast: false
matrix:
- configuration: ['Release']
- platform: ['x64']
+ os: [windows]
+ config: [release]
+ compiler: [cl]
+ platform: [x86_64]
include:
- - platform: x64
- testPlatform: x64
- - platform: x64
- testCategory: full
+ # Self-hosted falcor tests
+ - warnings-as-errors: false
+ test-category: full
+ full-gpu-tests: false
+ runs-on: [Windows, self-hosted, perf]
+ runs-on: ${{ matrix.runs-on }}
+ defaults:
+ run:
+ shell: bash
steps:
- uses: actions/checkout@v3
with:
submodules: 'true'
fetch-depth: '0'
- - name: setup-msbuild
- uses: microsoft/setup-msbuild@v1
- - name: build
- run: |
- .\premake.bat vs2019 --arch=${{matrix.platform}} --deps=true --no-progress=true --enable-cuda=true --enable-examples=false
- .\make-slang-tag-version.bat
+ - name: Setup
+ uses: ./.github/actions/common-setup
+ with:
+ os: ${{matrix.os}}
+ compiler: ${{matrix.compiler}}
+ platform: ${{matrix.platform}}
+ config: ${{matrix.config}}
+ build-llvm: true
- MSBuild.exe slang.sln -v:m -m -property:Configuration=${{matrix.configuration}} -property:Platform=${{matrix.platform}} -property:WindowsTargetPlatformVersion=10.0.19041.0 -maxcpucount:12
+ - name: Build Slang
+ run: |
+ cmake --preset default --fresh \
+ -DSLANG_SLANG_LLVM_FLAVOR=USE_SYSTEM_LLVM \
+ -DCMAKE_COMPILE_WARNING_AS_ERROR=${{matrix.warnings-as-errors}} \
+ -DSLANG_ENABLE_CUDA=1
+ cmake --workflow --preset "${{matrix.config}}"
- uses: robinraju/release-downloader@v1.9
id: download
@@ -70,8 +84,9 @@ jobs:
extract: false
- name: run falcor-compiler-perf-test
+ shell: pwsh
run: |
$filename = '${{ fromJson(steps.download.outputs.downloaded_files)[0] }}'
Expand-Archive $filename -DestinationPath .\falcor-perf-test
- $env:PATH += ";.\bin\windows-${{matrix.testPlatform}}\${{matrix.configuration}}";
+ $env:PATH += ";.\build\${{matrix.config}}\bin";
.\falcor-perf-test\bin\Release\falcor_perftest.exe
diff --git a/.github/workflows/falcor-test.yml b/.github/workflows/falcor-test.yml
index 60506f062..9dccb6af2 100644
--- a/.github/workflows/falcor-test.yml
+++ b/.github/workflows/falcor-test.yml
@@ -1,5 +1,3 @@
-# This is a basic workflow to help you get started with Actions
-
name: Falcor Tests
on:
@@ -12,27 +10,40 @@ concurrency:
cancel-in-progress: true
jobs:
build:
- runs-on: [Windows, self-hosted, falcor]
timeout-minutes: 100
continue-on-error: true
strategy:
fail-fast: false
matrix:
- configuration: ['Release']
- platform: ['x64']
+ os: [windows]
+ config: [release]
+ compiler: [cl]
+ platform: [x86_64]
include:
- - platform: x64
- testPlatform: x64
- - platform: x64
- testCategory: full
+ # Self-hosted falcor tests
+ - warnings-as-errors: false
+ test-category: full
+ full-gpu-tests: false
+ runs-on: [Windows, self-hosted, falcor]
+ runs-on: ${{ matrix.runs-on }}
+ defaults:
+ run:
+ shell: bash
steps:
- uses: actions/checkout@v3
with:
submodules: 'true'
fetch-depth: '0'
- - name: setup-msbuild
- uses: microsoft/setup-msbuild@v1
+ - name: Setup
+ uses: ./.github/actions/common-setup
+ with:
+ os: ${{matrix.os}}
+ compiler: ${{matrix.compiler}}
+ platform: ${{matrix.platform}}
+ config: ${{matrix.config}}
+ build-llvm: true
- name: setup-falcor
+ shell: pwsh
run: |
mkdir FalcorBin
cd FalcorBin
@@ -43,25 +54,30 @@ jobs:
Copy-Item -Path 'C:\Falcor\media_internal' -Destination '.\' -Recurse
Copy-Item -Path 'C:\Falcor\scripts' -Destination '.\' -Recurse
cd ..\
- - name: build
+ - name: Build Slang
run: |
- .\premake.bat vs2019 --arch=${{matrix.platform}} --deps=true --no-progress=true --enable-cuda=true --enable-examples=false
-
- .\make-slang-tag-version.bat
-
- MSBuild.exe slang.sln -v:m -m -property:Configuration=${{matrix.configuration}} -property:Platform=${{matrix.platform}} -property:WindowsTargetPlatformVersion=10.0.19041.0 -maxcpucount:12
-
- Copy-Item -Path '.\bin\windows-${{matrix.platform}}\${{matrix.configuration}}\*' -Destination '.\FalcorBin\build\windows-vs2022\bin\Release\' -Recurse -Exclude ("*.pdb", "gfx.dll")
+ cmake --preset default --fresh \
+ -DSLANG_SLANG_LLVM_FLAVOR=USE_SYSTEM_LLVM \
+ -DCMAKE_COMPILE_WARNING_AS_ERROR=${{matrix.warnings-as-errors}} \
+ -DSLANG_ENABLE_CUDA=1 \
+ -DSLANG_ENABLE_EXAMPLES=0 \
+ -DSLANG_ENABLE_GFX=0 \
+ -DSLANG_ENABLE_TESTS=0
+ cmake --workflow --preset "${{matrix.config}}"
+ - name: Copy Slang to Falcor
+ run: |
+ cp --verbose --recursive --target-directory ./FalcorBin/build/windows-vs2022/bin/Release build/Release/bin/*
- name: falcor-unit-test
+ shell: pwsh
run: |
$ErrorActionPreference = "SilentlyContinue"
cd .\FalcorBin\tests
python ./testing/run_unit_tests.py --config windows-vs2022-Release -t "-slow"
cd ../../
- name: falcor-image-test
+ shell: pwsh
run: |
$ErrorActionPreference = "SilentlyContinue"
cd .\FalcorBin\tests
python ./testing/run_image_tests.py --config windows-vs2022-Release --run-only
cd ../../
-
diff --git a/.github/workflows/linux-arm64.yml b/.github/workflows/linux-arm64.yml
deleted file mode 100644
index a35672c5f..000000000
--- a/.github/workflows/linux-arm64.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-name: Linux/ARM64 Build and Test
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-jobs:
- build:
-
- runs-on: ['self-hosted', 'Linux', 'ARM64']
- strategy:
- matrix:
- configuration: ['release']
- compiler: ['gcc']
- platform: ['aarch64']
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: 'true'
- fetch-depth: '0'
- - name: build
- run: |
- CC=${{matrix.compiler}}
- CONFIGURATION=${{matrix.configuration}}
- ARCH=${{matrix.platform}}
- TARGETARCH=${{matrix.platform}}
- if [[ "$CC" == "clang" ]]; then
- CFLAGS=-Werror
- CPPFLAGS=-Werror
- CXXFLAGS=-Werror
- fi
- source ./github_build.sh
- - uses: actions/upload-artifact@v3
- with:
- name: slang-build-${{matrix.configuration}}-${{matrix.platform}}-${{matrix.compiler}}
- path: |
- slang.h
- slang-com-helper.h
- slang-com-ptr.h
- slang-tag-version.h
- slang-gfx.h
- prelude/*.h
- bin/**/*.dll
- bin/**/*.exe
- bin/**/*.so
- bin/**/slangc
- bin/**/slangd
- docs/*.md
- - name: test
- run:
- CONFIGURATION=${{matrix.configuration}}
- CC=${{matrix.compiler}}
- ARCH=${{matrix.platform}}
- PATH="${PATH:+${PATH}:}$(pwd)/external/slang-binaries/spirv-tools/$(uname -m)-linux/bin"
- source .github/github_test.sh
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
deleted file mode 100644
index 8180965f9..000000000
--- a/.github/workflows/linux.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-name: Linux Build CI
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-jobs:
- build:
-
- runs-on: ubuntu-20.04
- strategy:
- matrix:
- configuration: ['debug', 'release']
- compiler: ['gcc', 'clang']
- platform: ['x64']
- steps:
- - name: select gcc 10
- run: |
- sudo update-alternatives \
- --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 \
- --slave /usr/bin/g++ g++ /usr/bin/g++-10 \
- --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-10 \
- --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-10 \
- --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-10 \
- --slave /usr/bin/gcov gcov /usr/bin/gcov-10 \
- --slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-10 \
- --slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-10
- - uses: actions/checkout@v3
- with:
- submodules: 'true'
- fetch-depth: '0'
- - uses: robinraju/release-downloader@v1.7
- with:
- latest: true
- repository: "shader-slang/swiftshader"
- fileName: "vk_swiftshader_linux_${{matrix.platform}}.zip"
- - name: build
- run: |
- CC=${{matrix.compiler}}
- CONFIGURATION=${{matrix.configuration}}
- ARCH=${{matrix.platform}}
- TARGETARCH=${{matrix.platform}}
- if [[ "$CC" == "clang" ]]; then
- CFLAGS=-Werror
- CPPFLAGS=-Werror
- CXXFLAGS=-Werror
- fi
- source ./github_build.sh
- - uses: actions/upload-artifact@v3
- with:
- name: slang-build-${{matrix.configuration}}-${{matrix.platform}}-${{matrix.compiler}}
- path: |
- slang.h
- slang-com-helper.h
- slang-com-ptr.h
- slang-tag-version.h
- slang-gfx.h
- prelude/*.h
- bin/**/*.dll
- bin/**/*.exe
- bin/**/*.so
- bin/**/slangc
- bin/**/slangd
- docs/*.md
- - name: test
- run:
- CONFIGURATION=${{matrix.configuration}}
- CC=${{matrix.compiler}}
- ARCH=${{matrix.platform}}
- PATH="${PATH:+${PATH}:}$(pwd)/external/slang-binaries/spirv-tools/$(uname -m)-linux/bin"
- source .github/github_test.sh
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
deleted file mode 100644
index 12993528d..000000000
--- a/.github/workflows/macos.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-name: MacOS Build CI
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-jobs:
- build:
- name: MacOS Build CI
- runs-on: macos-latest
-
- strategy:
- matrix:
- configuration: ['release'] # 'debug'
- compiler: ['clang']
- platform: ['aarch64']
- targetPlatform: ['aarch64']
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: 'true'
- fetch-depth: '0'
- - name: build
- run: |
- CC=${{matrix.compiler}}
- CONFIGURATION=${{matrix.configuration}}
- ARCH=${{matrix.platform}}
- TARGETARCH=${{matrix.targetPlatform}}
- CPPFLAGS=-Werror
- CFLAGS=-Werror
- CXXFLAGS=-Werror
- source ./github_macos_build.sh
- - name: Package
- id: package
- run: |
- export SLANG_OS_NAME=macos
- export SLANG_ARCH_NAME=${{matrix.targetPlatform}}
- export TAG_NAME=`git describe --tags`
- export SLANG_TAG=${TAG_NAME#v}
- echo "tag:$TAG_NAME"
- echo "slang-tag:$SLANG_TAG"
- export SLANG_BINARY_ARCHIVE=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}.zip
- echo "creating zip"
- 7z a ${SLANG_BINARY_ARCHIVE} slang.h
- 7z a ${SLANG_BINARY_ARCHIVE} slang-com-helper.h
- 7z a ${SLANG_BINARY_ARCHIVE} slang-com-ptr.h
- 7z a ${SLANG_BINARY_ARCHIVE} slang-tag-version.h
- 7z a ${SLANG_BINARY_ARCHIVE} slang-gfx.h
- 7z a ${SLANG_BINARY_ARCHIVE} prelude/*.h
- 7z a ${SLANG_BINARY_ARCHIVE} bin/*/*/libslang.dylib
- 7z a ${SLANG_BINARY_ARCHIVE} bin/*/*/libslang-glslang.dylib
- 7z a ${SLANG_BINARY_ARCHIVE} bin/*/*/libgfx.dylib
- 7z a ${SLANG_BINARY_ARCHIVE} bin/*/*/slangc
- 7z a ${SLANG_BINARY_ARCHIVE} bin/*/*/slangd
- 7z a ${SLANG_BINARY_ARCHIVE} docs/*.md
- 7z a ${SLANG_BINARY_ARCHIVE} README.md
- 7z a ${SLANG_BINARY_ARCHIVE} LICENSE
- echo "SLANG_BINARY_ARCHIVE=${SLANG_BINARY_ARCHIVE}" >> $GITHUB_OUTPUT
- - uses: actions/upload-artifact@v3
- with:
- name: slang-build-${{matrix.configuration}}-${{matrix.targetPlatform}}-${{matrix.compiler}}
- path: |
- ${{ steps.package.outputs.SLANG_BINARY_ARCHIVE }}
- - name: test
- if: ${{ matrix.targetPlatform != 'x64' }}
- run:
- CONFIGURATION=${{matrix.configuration}}
- CC=${{matrix.compiler}}
- ARCH=${{matrix.targetPlatform}}
- source .github/github_test.sh
diff --git a/.github/workflows/release-linux-arm64.yml b/.github/workflows/release-linux-arm64.yml
deleted file mode 100644
index aa7b8f832..000000000
--- a/.github/workflows/release-linux-arm64.yml
+++ /dev/null
@@ -1,56 +0,0 @@
-on:
- push:
- # Sequence of patterns matched against refs/tags
- tags:
- - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
-
-name: Linux ARM64 Release
-
-jobs:
- build:
- name: Upload Release Asset
- runs-on: ['self-hosted', 'Linux', 'ARM64']
- strategy:
- matrix:
- configuration: ['release']
- compiler: ['gcc']
- platform: ['aarch64']
- targetPlatform: ['aarch64']
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: 'true'
- fetch-depth: '0'
- - name: Build release project
- id: build
- run: |
- echo "starting to build..."
- export CC=${{matrix.compiler}}
- export CONFIGURATION=${{matrix.configuration}}
- export ARCH=${{matrix.platform}}
- export TARGETARCH=${{matrix.targetPlatform}}
- echo "building..."
- source ./github_build.sh
- echo "creating binary archieves..."
- export SLANG_OS_NAME=linux
- export SLANG_ARCH_NAME=`uname -p`
- export TAG_NAME=`git describe --tags`
- export SLANG_TAG=${TAG_NAME#v}
- echo "tag:$TAG_NAME"
- echo "slang-tag:$SLANG_TAG"
- export SLANG_BINARY_ARCHIVE=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}.zip
- export SLANG_BINARY_ARCHIVE_TAR=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}.tar.gz
- echo "creating zip"
- zip -r ${SLANG_BINARY_ARCHIVE} bin/*/*/slangc bin/*/*/slangd bin/*/*/libslang.so bin/*/*/libslang-glslang.so bin/*/*/libgfx.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h slang-gfx.h prelude/*.h
- echo "creating tar"
- tar -czf ${SLANG_BINARY_ARCHIVE_TAR} bin/*/*/slangc bin/*/*/slangd bin/*/*/libslang.so bin/*/*/libslang-glslang.so bin/*/*/libgfx.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h slang-gfx.h prelude/*.h
- echo "SLANG_BINARY_ARCHIVE=${SLANG_BINARY_ARCHIVE}" >> $GITHUB_OUTPUT
- echo "SLANG_BINARY_ARCHIVE_TAR=${SLANG_BINARY_ARCHIVE_TAR}" >> $GITHUB_OUTPUT
- - name: UploadBinary
- uses: softprops/action-gh-release@v1
- with:
- files: |
- ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE }}
- ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE_TAR }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/release-linux-glibc-2-17.yml b/.github/workflows/release-linux-glibc-2-17.yml
index 8a912ecc2..59f50ffd2 100644
--- a/.github/workflows/release-linux-glibc-2-17.yml
+++ b/.github/workflows/release-linux-glibc-2-17.yml
@@ -1,16 +1,14 @@
on:
push:
- # Sequence of patterns matched against refs/tags
tags:
- - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
+ - 'v*'
name: centos7-gcc9 Release
jobs:
build:
runs-on: ubuntu-latest
steps:
- - name: Check out the repo
- uses: actions/checkout@v2
+ - uses: actions/checkout@v3
with:
submodules: 'true'
fetch-depth: '0'
@@ -19,38 +17,43 @@ jobs:
- name: Run the build process with Docker
uses: addnab/docker-run-action@v3
with:
- image: slangdeveloper/centos7-gcc9:cmake
- options: -v ${{ github.workspace }}:/home/app -v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt
- run: |
- source /opt/rh/devtoolset-9/enable
- cd /home/app
- git config --global --add safe.directory /home/app
- /cmake-3.30.0-linux-x86_64/bin/cmake --preset default
- /cmake-3.30.0-linux-x86_64/bin/cmake --build --preset release
-
- - name: CreatePackages
- id: build
+ image: slangdeveloper/centos7-gcc9:cmake
+ options: -v ${{ github.workspace }}:/home/app -v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt
+ run: |
+ export PATH=$PATH:/cmake-3.30.0-linux-x86_64/bin/
+
+ source /opt/rh/devtoolset-9/enable
+
+ cd /home/app
+ git config --global --add safe.directory /home/app
+ cmake --preset default --fresh -DSLANG_SLANG_LLVM_FLAVOR=DISABLE -DSLANG_EMBED_STDLIB=1
+ cmake --build --preset release
+ cpack --preset release -G ZIP
+ cpack --preset release -G TGZ
+
+ - name: Package Slang
+ id: package
+ run: |
+ triggering_ref=${{ github.ref_name }}
+ version=${triggering_ref#v}
+ base=$(pwd)/slang-${version}-linux-x86_64-glibc-2.17
+
+ sudo mv "$(pwd)/build/dist-release/slang.zip" "${base}.zip"
+ echo "SLANG_BINARY_ARCHIVE_ZIP=${base}.zip" >> $GITHUB_OUTPUT
+
+ sudo mv "$(pwd)/build/dist-release/slang.tar.gz" "${base}.tar.gz"
+ echo "SLANG_BINARY_ARCHIVE_TAR=${base}.tar.gz" >> $GITHUB_OUTPUT
+
+ - name: File check
run: |
- echo "creating binary archieves..."
- export SLANG_OS_NAME=linux
- export SLANG_ARCH_NAME=`uname -p`
- export TAG_NAME=`git describe --tags`
- export SLANG_TAG=${TAG_NAME#v}
- echo "tag:$TAG_NAME"
- echo "slang-tag:$SLANG_TAG"
- export SLANG_BINARY_ARCHIVE=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}-glibc-2.17.zip
- export SLANG_BINARY_ARCHIVE_TAR=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}-glibc-2.17.tar.gz
- echo "creating zip"
- zip -r ${SLANG_BINARY_ARCHIVE} build/Release/bin/slangc build/Release/bin/slangd build/Release/lib/libslang.so build/Release/lib/libslang-glslang.so build/Release/lib/libgfx.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h slang-gfx.h prelude/*.h
- echo "creating tar"
- tar -czf ${SLANG_BINARY_ARCHIVE_TAR} build/Release/bin/slangc build/Release/bin/slangd build/Release/lib/libslang.so build/Release/lib/libslang-glslang.so build/Release/lib/libgfx.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h slang-gfx.h prelude/*.h
- echo "SLANG_BINARY_ARCHIVE=${SLANG_BINARY_ARCHIVE}" >> $GITHUB_OUTPUT
- echo "SLANG_BINARY_ARCHIVE_TAR=${SLANG_BINARY_ARCHIVE_TAR}" >> $GITHUB_OUTPUT
+ find "build/dist-release" ! -iname '*.md' ! -iname '*.h' -type f | xargs file
+
- name: UploadBinary
uses: softprops/action-gh-release@v1
+ if: startsWith(github.ref, 'refs/tags/v')
with:
files: |
- ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE }}
- ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE_TAR }}
+ ${{ steps.package.outputs.SLANG_BINARY_ARCHIVE_ZIP }}
+ ${{ steps.package.outputs.SLANG_BINARY_ARCHIVE_TAR }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/release-linux.yml b/.github/workflows/release-linux.yml
deleted file mode 100644
index 3c7d1c75e..000000000
--- a/.github/workflows/release-linux.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-on:
- push:
- # Sequence of patterns matched against refs/tags
- tags:
- - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
-
-name: Linux Release
-
-jobs:
- build:
- name: Upload Release Asset
- runs-on: ubuntu-20.04
- strategy:
- matrix:
- configuration: ['release']
- compiler: ['gcc']
- platform: ['x64']
- targetPlatform: ['x64']
- steps:
- - name: select gcc 10
- run: |
- sudo update-alternatives \
- --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 \
- --slave /usr/bin/g++ g++ /usr/bin/g++-10 \
- --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-10 \
- --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-10 \
- --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-10 \
- --slave /usr/bin/gcov gcov /usr/bin/gcov-10 \
- --slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-10 \
- --slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-10
- - name: Checkout code
- uses: actions/checkout@v3
- with:
- submodules: 'true'
- fetch-depth: '0'
- - name: Build release project
- id: build
- run: |
- echo "starting to build..."
- export CC=${{matrix.compiler}}
- export CONFIGURATION=${{matrix.configuration}}
- export ARCH=${{matrix.platform}}
- export TARGETARCH=${{matrix.targetPlatform}}
- echo "building..."
- source ./github_build.sh
- echo "creating binary archieves..."
- export SLANG_OS_NAME=linux
- export SLANG_ARCH_NAME=`uname -p`
- export TAG_NAME=`git describe --tags`
- export SLANG_TAG=${TAG_NAME#v}
- echo "tag:$TAG_NAME"
- echo "slang-tag:$SLANG_TAG"
- export SLANG_BINARY_ARCHIVE=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}.zip
- export SLANG_BINARY_ARCHIVE_TAR=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}.tar.gz
- echo "creating zip"
- zip -r ${SLANG_BINARY_ARCHIVE} bin/*/*/slangc bin/*/*/slangd bin/*/*/libslang.so bin/*/*/libslang-glslang.so bin/*/*/libgfx.so bin/*/*/libslang-llvm.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h slang-gfx.h prelude/*.h
- echo "creating tar"
- tar -czf ${SLANG_BINARY_ARCHIVE_TAR} bin/*/*/slangc bin/*/*/slangd bin/*/*/libslang.so bin/*/*/libslang-glslang.so bin/*/*/libgfx.so bin/*/*/libslang-llvm.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h slang-gfx.h prelude/*.h
- echo "SLANG_BINARY_ARCHIVE=${SLANG_BINARY_ARCHIVE}" >> $GITHUB_OUTPUT
- echo "SLANG_BINARY_ARCHIVE_TAR=${SLANG_BINARY_ARCHIVE_TAR}" >> $GITHUB_OUTPUT
- - name: UploadBinary
- uses: softprops/action-gh-release@v1
- with:
- files: |
- ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE }}
- ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE_TAR }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/release-macos.yml b/.github/workflows/release-macos.yml
deleted file mode 100644
index 9df540007..000000000
--- a/.github/workflows/release-macos.yml
+++ /dev/null
@@ -1,132 +0,0 @@
-on:
- push:
- # Sequence of patterns matched against refs/tags
- tags:
- - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
-
-name: MacOS Release
-
-jobs:
- build_with_signing:
- name: Upload Release Asset
- runs-on: macos-latest
- strategy:
- matrix:
- configuration: ['release'] # 'debug'
- compiler: ['clang']
- platform: ['aarch64']
- targetPlatform: ['x64', 'aarch64']
- steps:
- - name: Checkout code
- uses: actions/checkout@v3
- with:
- submodules: 'true'
- fetch-depth: '0'
- - name: Build release project
- id: build
- run: |
- echo "starting to build..."
- export CC=${{matrix.compiler}}
- export CONFIGURATION=${{matrix.configuration}}
- export ARCH=${{matrix.platform}}
- export TARGETARCH=${{matrix.targetPlatform}}
- echo "building..."
- source ./github_macos_build.sh
- - name: "Import signing certificate"
- env:
- BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
- P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
- KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
- run: |
- # create variables
- CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
- KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
-
- # import certificate and provisioning profile from secrets
- echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH
-
- # create temporary keychain
- security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
- security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
- security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
-
- # import certificate to keychain
- security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
- security list-keychain -d user -s $KEYCHAIN_PATH
-
- security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k ${KEYCHAIN_PASSWORD} $KEYCHAIN_PATH
-
- - name: Install nortarize tools
- run: |
- brew install Bearer/tap/gon
- security find-identity -v
- brew install coreutils
- - name: Sign binaries
- env:
- IDENTITY_ID: d6ada82a113e4204aaad914e1013e9548ffd30d0
- run: |
- /usr/bin/codesign --force --options runtime -s ${IDENTITY_ID} ./bin/macosx-${{matrix.targetPlatform}}/release/libslang.dylib -v
- /usr/bin/codesign --force --options runtime -s ${IDENTITY_ID} ./bin/macosx-${{matrix.targetPlatform}}/release/libslang-glslang.dylib -v
- /usr/bin/codesign --force --options runtime -s ${IDENTITY_ID} ./bin/macosx-${{matrix.targetPlatform}}/release/libgfx.dylib -v
- /usr/bin/codesign --force --options runtime -s ${IDENTITY_ID} ./bin/macosx-${{matrix.targetPlatform}}/release/slangd -v
- /usr/bin/codesign --force --options runtime -s ${IDENTITY_ID} ./bin/macosx-${{matrix.targetPlatform}}/release/slangc -v
- - name: Package
- id: package
- run: |
- export SLANG_OS_NAME=macos
- export SLANG_ARCH_NAME=${{matrix.targetPlatform}}
- export TAG_NAME=`git describe --tags`
- export SLANG_TAG=${TAG_NAME#v}
- echo "tag:$TAG_NAME"
- echo "slang-tag:$SLANG_TAG"
- export SLANG_BINARY_ARCHIVE=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}.zip
- echo "creating zip"
- 7z a ${SLANG_BINARY_ARCHIVE} slang.h
- 7z a ${SLANG_BINARY_ARCHIVE} slang-com-helper.h
- 7z a ${SLANG_BINARY_ARCHIVE} slang-com-ptr.h
- 7z a ${SLANG_BINARY_ARCHIVE} slang-tag-version.h
- 7z a ${SLANG_BINARY_ARCHIVE} slang-gfx.h
- 7z a ${SLANG_BINARY_ARCHIVE} prelude/*.h
- 7z a ${SLANG_BINARY_ARCHIVE} bin/*/*/libslang.dylib
- 7z a ${SLANG_BINARY_ARCHIVE} bin/*/*/libslang-glslang.dylib
- 7z a ${SLANG_BINARY_ARCHIVE} bin/*/*/libgfx.dylib
- 7z a ${SLANG_BINARY_ARCHIVE} bin/*/*/slangc
- 7z a ${SLANG_BINARY_ARCHIVE} bin/*/*/slangd
- 7z a ${SLANG_BINARY_ARCHIVE} docs/*.md
- 7z a ${SLANG_BINARY_ARCHIVE} README.md
- 7z a ${SLANG_BINARY_ARCHIVE} LICENSE
- echo "SLANG_BINARY_ARCHIVE=${SLANG_BINARY_ARCHIVE}" >> $GITHUB_OUTPUT
- - name: UploadBinary
- uses: softprops/action-gh-release@v1
- with:
- files: |
- ${{ steps.package.outputs.SLANG_BINARY_ARCHIVE }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Notarize
- env:
- AC_PASSWORD: ${{secrets.APPLE_ID_PASSWORD}}
- AC_PROVIDER: ${{secrets.APPLE_ID_PPOVIDER}}
- AC_USERNAME: ${{secrets.APPLE_ID_USERNAME}}
- run: |
- cp ./bin/macosx-${{matrix.targetPlatform}}/release/libslang.dylib libslang.dylib
- cp ./bin/macosx-${{matrix.targetPlatform}}/release/libslang-glslang.dylib libslang-glslang.dylib
- cp ./bin/macosx-${{matrix.targetPlatform}}/release/libslang.dylib libgfx.dylib
- cp ./bin/macosx-${{matrix.targetPlatform}}/release/slangd slangd
- cp ./bin/macosx-${{matrix.targetPlatform}}/release/slangc slangc
- 7z a slang-macos-dist.zip libslang.dylib
- 7z a slang-macos-dist.zip libslang-glslang.dylib
- 7z a slang-macos-dist.zip libgfx.dylib
- 7z a slang-macos-dist.zip slangd
- 7z a slang-macos-dist.zip slangc
- cp slang-macos-dist.zip slang-macos-dist-${{matrix.targetPlatform}}.zip
- timeout 1000 gon ./extras/macos-notarize.json
- - name: UploadNotarizedBinary
- if: always()
- uses: softprops/action-gh-release@v1
- with:
- files: |
- slang-macos-dist-${{matrix.targetPlatform}}.zip
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
diff --git a/.github/workflows/release-windows.yml b/.github/workflows/release-windows.yml
deleted file mode 100644
index f4cacd873..000000000
--- a/.github/workflows/release-windows.yml
+++ /dev/null
@@ -1,116 +0,0 @@
-on:
- push:
- # Sequence of patterns matched against refs/tags
- tags:
- - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
-
-name: Windows Release
-
-jobs:
- build:
- name: Upload Release Asset - Windows
- runs-on: windows-latest
- strategy:
- matrix:
- configuration: ['Release']
- platform: ['Win32', 'x64', 'aarch64']
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: 'true'
- fetch-depth: '0'
- - name: setup-msbuild
- uses: microsoft/setup-msbuild@v1
-
- - name: msbuild (x64 tools)
- # If we are building for ARM64 we want to build x64 first, so that all generated files are produced
- if: ${{ matrix.platform == 'aarch64' }}
- run: |
- .\premake.bat vs2019 --arch=x64 --ignore-deps=slang-llvm,slang-glslang --no-progress=true
- MSBuild.exe slang.sln -v:m -m -property:Configuration=Release -property:Platform=x64 -property:WindowsTargetPlatformVersion=10.0.19041.0
- Remove-Item .\bin\* -Recurse -Force
- .\premake.bat vs2019 --arch=${{matrix.platform}} --ignore-deps=slang-llvm,slang-glslang --no-progress=true --skip-source-generation=true --deploy-slang-llvm=false --deploy-slang-glslang=false
- # Do the premake for the actual target, downloading dependencies if necessary
- - name: premake
- if: ${{ matrix.platform != 'aarch64' }}
- run:
- .\premake.bat vs2019 --enable-embed-stdlib=true --arch=${{matrix.platform}} --deps=true --no-progress=true
- - name: tag-version
- run: .\make-slang-tag-version.bat
- - name: msbuild
- run:
- MSBuild.exe slang.sln -v:m -m -property:Configuration=${{matrix.configuration}} -property:Platform=${{matrix.platform}} -property:WindowsTargetPlatformVersion=10.0.19041.0
- - name: archive
- id: archive
- run: |
- echo "achiving files..."
- if ("${{matrix.platform}}" -eq "aarch64")
- {
- $slangDeployPlatform = "win-arm64"
- }
- elseif ("${{matrix.platform}}" -eq "x64")
- {
- $slangDeployPlatform = "win64"
- }
- else
- {
- $slangDeployPlatform = "win32"
- }
- $tagName = & git describe --tags
- $slangVersion = $tagName.TrimStart("v")
- $binArchive = "slang-$slangVersion-$slangDeployPlatform.zip"
-
- echo "name=SLANG_BINARY_ARCHIVE::$binArchive"
- echo "SLANG_WIN32_BINARY_ARCHIVE=$binArchive" >> $env:GITHUB_OUTPUT
-
- 7z a "$binArchive" slang.h
- 7z a "$binArchive" slang-com-helper.h
- 7z a "$binArchive" slang-com-ptr.h
- 7z a "$binArchive" slang-tag-version.h
- 7z a "$binArchive" slang-gfx.h
- 7z a "$binArchive" prelude\*.h
- 7z a "$binArchive" bin\*\*\slang.dll
- 7z a "$binArchive" bin\*\*\slang.lib
- 7z a "$binArchive" bin\*\*\slang-rt.lib
- 7z a "$binArchive" bin\*\*\slang-rt.dll
- 7z a "$binArchive" bin\*\*\slang-glslang.dll
- 7z a "$binArchive" bin\*\*\slang-llvm.dll
- 7z a "$binArchive" bin\*\*\gfx.dll
- 7z a "$binArchive" bin\*\*\gfx.lib
- 7z a "$binArchive" bin\*\*\slangc.exe
- 7z a "$binArchive" bin\*\*\slangd.exe
- 7z a "$binArchive" docs\*.md
- 7z a "$binArchive" README.md
- 7z a "$binArchive" LICENSE
-
- $srcArchive = "slang-$slangVersion-source.zip"
- echo "SLANG_SOURCE_ARCHIVE=$srcArchive" >> $env:GITHUB_OUTPUT
-
- 7z a "$srcArchive" slang.h
- 7z a "$srcArchive" slang-com-helper.h
- 7z a "$srcArchive" slang-com-ptr.h
- 7z a "$srcArchive" slang-tag-version.h
- 7z a "$srcArchive" slang-gfx.h
- 7z a "$srcArchive" prelude\*.h
- 7z a "$srcArchive" source\*\*.h
- 7z a "$srcArchive" source\*\*.cpp
- 7z a "$srcArchive" docs\*.md
- 7z a "$srcArchive" README.md
- 7z a "$srcArchive" LICENSE
- - name: Check outputs
- shell: pwsh
- run: echo "binary is ${{ steps.archive.outputs.SLANG_WIN32_BINARY_ARCHIVE }}"
- - name: UploadBinary
- uses: softprops/action-gh-release@v1
- with:
- files: |
- ${{ steps.archive.outputs.SLANG_WIN32_BINARY_ARCHIVE }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: UploadSource
- uses: softprops/action-gh-release@v1
- if: ${{ matrix.platform == 'x64' }}
- with:
- files: ${{ steps.archive.outputs.SLANG_SOURCE_ARCHIVE }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 000000000..2fefe5bd9
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,181 @@
+name: Release
+
+on:
+ push:
+ # Also run on pushes to the main branch so that we can keep the llvm and sccache
+ # caches filled in a scope available to everyone
+ branches:
+ - master
+ tags:
+ - 'v*'
+
+jobs:
+ release:
+ strategy:
+ matrix:
+ os: [linux, macos, windows]
+ config: [release]
+ platform: [x86_64, aarch64]
+ test-category: [smoke]
+ include:
+ - {os: linux, runs-on: ubuntu-20.04, compiler: gcc}
+ - {os: windows, runs-on: windows-latest, compiler: cl}
+ - {os: macos, runs-on: macos-latest, compiler: clang}
+
+ - {build-slang-llvm: false}
+ - {os: linux, platform: x86_64, build-slang-llvm: true}
+ - {os: windows, platform: x86_64, build-slang-llvm: true}
+ - {os: macos, platform: aarch64, build-slang-llvm: true}
+ fail-fast: false
+ runs-on: ${{ matrix.runs-on }}
+ container: ${{ matrix.image || '' }}
+
+ defaults:
+ run:
+ shell: bash
+
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: 'true'
+ fetch-depth: '0'
+ - name: Setup
+ uses: ./.github/actions/common-setup
+ with:
+ os: ${{matrix.os}}
+ compiler: ${{matrix.compiler}}
+ platform: ${{matrix.platform}}
+ config: ${{matrix.config}}
+ build-llvm: ${{matrix.build-slang-llvm}}
+
+ - name: Build slang generators
+ run: |
+ cmake --workflow --preset generators --fresh
+ mkdir build-platform-generators
+ cmake --install build --config Release --component generators --prefix build-platform-generators
+
+ - name: Change dev tools to host arch (windows)
+ uses: ilammy/msvc-dev-cmd@v1
+ with:
+ arch: ${{matrix.platform == 'aarch64' && 'amd64_arm64' || 'amd64'}}
+ sdk: "10.0.19041.0"
+
+ - name: Change dev tools to host arch (linux and macos)
+ run: |
+ if [[ "${{inputs.os}}" == linux* && "${{inputs.platform}}" == "aarch64" && "$(uname -m)" != "aarch64" ]]; then
+ export CC=aarch64-linux-gnu-gcc
+ export CXX=aarch64-linux-gnu-g++
+ fi
+ CMAKE_OSX_ARCHITECTURES="${{matrix.platform}}"
+ CMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES//aarch64/arm64}
+
+ echo "CC=$CC" >> "$GITHUB_ENV"
+ echo "CXX=$CXX" >> "$GITHUB_ENV"
+ echo "CMAKE_OSX_ARCHITECTURES=$CMAKE_OSX_ARCHITECTURES" >> "$GITHUB_ENV"
+
+ - name: Build Slang
+ run: |
+ if [[ "${{ matrix.os }}" == "windows" && "${{ matrix.config }}" != "release" ]]; then
+ echo "Please see ci.yml for the steps to make debug builds work on Windows" >&2
+ exit 1
+ fi
+
+ cmake --preset default --fresh \
+ -DSLANG_GENERATORS_PATH=build-platform-generators/bin \
+ -DSLANG_ENABLE_EXAMPLES=OFF \
+ -DSLANG_EMBED_STDLIB=ON \
+ -DSLANG_SLANG_LLVM_FLAVOR=$(
+ [[ "${{matrix.build-slang-llvm}}" = "true" ]] && echo "USE_SYSTEM_LLVM" || echo "DISABLE")
+
+ cmake --build --preset "${{matrix.config}}"
+
+ - name: Sign and notarize binaries
+ if: matrix.os == 'macos' && startsWith(github.ref, 'refs/tags/v')
+ id: notarize
+ env:
+ BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
+ P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
+ KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
+ IDENTITY_ID: d6ada82a113e4204aaad914e1013e9548ffd30d0
+ AC_PASSWORD: ${{secrets.APPLE_ID_PASSWORD}}
+ AC_PROVIDER: ${{secrets.APPLE_ID_PPOVIDER}}
+ AC_USERNAME: ${{secrets.APPLE_ID_USERNAME}}
+ run: |
+ brew install Bearer/tap/gon
+ security find-identity -v
+ brew install coreutils
+
+ # create variables
+ CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
+ KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
+
+ # import certificate and provisioning profile from secrets
+ echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH
+
+ # create temporary keychain
+ security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
+ security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
+ security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
+
+ # import certificate to keychain
+ security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
+ security list-keychain -d user -s $KEYCHAIN_PATH
+
+ security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k ${KEYCHAIN_PASSWORD} $KEYCHAIN_PATH
+
+ signedFiles
+ find "${bin_dir}" "${lib_dir}" -type f -perm +111 \
+ | xargs codesign --force --options runtime -s "${IDENTITY_ID}" -v
+
+ binaries=(
+ "${lib_dir}/libslang.dylib"
+ "${lib_dir}/libslang-rt.dylib"
+ "${lib_dir}/libslang-glslang.dylib"
+ "${lib_dir}/libslang-llvm.dylib"
+ "${lib_dir}/libgfx.dylib"
+ "${bin_dir}/slangd"
+ "${bin_dir}/slangc"
+ )
+ for b in "${binaries[@]}"; do
+ if [[ -f "$b" ]]; then
+ 7z a "slang-macos-dist.zip" "${existing_files[@]}"
+ fi
+ done
+
+ timeout 1000 gon ./extras/macos-notarize.json
+
+ cp slang-macos-dist.zip "slang-macos-dist-${{matrix.platform}}.zip"
+ echo "SLANG_NOTARIZED_DIST=slang-macos-dist-${{matrix.platform}}.zip" >> $GITHUB_OUTPUT
+
+ - name: Package Slang
+ id: package
+ run: |
+ # For the release, also generate a tar.gz file
+ cpack --preset "$config" -G ZIP
+ cpack --preset "$config" -G TGZ
+ triggering_ref=${{ github.ref_name }}
+ base=$(pwd)/slang-${triggering_ref#v}-${{matrix.os}}-${{matrix.platform}}
+ mv "$(pwd)/build/dist-${config}/slang.zip" "${base}.zip"
+ echo "SLANG_BINARY_ARCHIVE_ZIP=${base}.zip" >> $GITHUB_OUTPUT
+ mv "$(pwd)/build/dist-${config}/slang.tar.gz" "${base}.tar.gz"
+ echo "SLANG_BINARY_ARCHIVE_TAR=${base}.tar.gz" >> $GITHUB_OUTPUT
+
+ - name: File check
+ run: |
+ find "build/dist-$config" ! -iname '*.md' ! -iname '*.h' -type f | xargs file
+ if [ "${{matrix.os}}" = "macos" ]; then
+ find "build/dist-$config" ! -iname '*.md' ! -iname '*.h' -type f |
+ xargs codesign --verify --verbose=2 ||
+ echo "code signing failed"
+ fi
+
+ - name: UploadBinary
+ uses: softprops/action-gh-release@v1
+ if: startsWith(github.ref, 'refs/tags/v')
+ with:
+ files: |
+ ${{ steps.package.outputs.SLANG_BINARY_ARCHIVE_ZIP }}
+ ${{ steps.package.outputs.SLANG_BINARY_ARCHIVE_TAR }}
+ ${{ steps.notarize.outputs.SLANG_NOTARIZED_DIST }}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/verify-solution-file.yml b/.github/workflows/verify-solution-file.yml
deleted file mode 100644
index df4503dad..000000000
--- a/.github/workflows/verify-solution-file.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-name: Verify-VSProjects
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-
-jobs:
- build:
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: 'true'
- fetch-depth: '1'
- - name: verify
- run: |
- & .\premake.bat vs2019 --deps=true
- $diff = & git diff
- if ($diff.length -ne 0)
- {
- $diff
- throw "error: vs project file verification failed."
- }
diff --git a/.github/workflows/vk-gl-cts-nightly.yml b/.github/workflows/vk-gl-cts-nightly.yml
index 3a328001b..587e7db30 100644
--- a/.github/workflows/vk-gl-cts-nightly.yml
+++ b/.github/workflows/vk-gl-cts-nightly.yml
@@ -10,22 +10,45 @@ env:
DISABLE_CTS_SLANG: 0
jobs:
build:
- runs-on: [Windows, self-hosted]
+ strategy:
+ matrix:
+ include:
+ # Self-hosted falcor tests
+ - os: windows
+ compiler: cl
+ platform: x86_64
+ config: release
+ warnings-as-errors: false
+ test-category: full
+ full-gpu-tests: false
+ runs-on: [Windows, self-hosted]
timeout-minutes: 180
+ defaults:
+ run:
+ shell: bash
steps:
- uses: actions/checkout@v4
with:
submodules: 'true'
fetch-depth: '0'
- - name: setup-msbuild
- uses: microsoft/setup-msbuild@v1
- - name: build slang
+ - name: Setup
+ uses: ./.github/actions/common-setup
+ with:
+ os: ${{matrix.os}}
+ compiler: ${{matrix.compiler}}
+ platform: ${{matrix.platform}}
+ config: ${{matrix.config}}
+ build-llvm: true
+ - name: Build Slang
run: |
- .\premake.bat vs2019 --arch=x64 --deps=true --no-progress=true --enable-cuda=true
-
- .\make-slang-tag-version.bat
-
- MSBuild.exe slang.sln -v:m -m -property:Configuration=Release -property:Platform=x64 -property:WindowsTargetPlatformVersion=10.0.19041.0 -maxcpucount:12
+ cmake --preset default --fresh \
+ -DSLANG_SLANG_LLVM_FLAVOR=USE_SYSTEM_LLVM \
+ -DCMAKE_COMPILE_WARNING_AS_ERROR=${{matrix.warnings-as-errors}} \
+ -DSLANG_ENABLE_CUDA=1 \
+ -DSLANG_ENABLE_EXAMPLES=0 \
+ -DSLANG_ENABLE_GFX=0 \
+ -DSLANG_ENABLE_TESTS=1
+ cmake --workflow --preset "${{matrix.config}}"
- uses: robinraju/release-downloader@v1.7
with:
latest: true
@@ -40,19 +63,19 @@ jobs:
path: test-lists
sparse-checkout-cone-mode: false
- name: vkcts setup
+ shell: pwsh
run: |
Expand-Archive VK-GL-CTS_WithSlang-0.0.3-win64.zip
- copy ${{ github.workspace }}\bin\windows-x64\release\slang.dll ${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64\slang.dll
-
- copy ${{ github.workspace }}\bin\windows-x64\release\slang-glslang.dll ${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64\slang-glslang.dll
+ copy ${{ github.workspace }}\build\Release\bin\slang.dll ${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64\slang.dll
+ copy ${{ github.workspace }}\build\Release\bin\slang-glslang.dll ${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64\slang-glslang.dll
+ copy ${{ github.workspace }}\build\Release\bin\test-server.exe ${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64\test-server.exe
copy ${{ github.workspace }}\test-lists\test-lists\slang-passing-tests.txt ${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64\slang-passing-tests.txt
-
copy ${{ github.workspace }}\test-lists\test-lists\slang-waiver-tests.xml ${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64\slang-waiver-tests.xml
- copy ${{ github.workspace }}\bin\windows-x64\release\test-server.exe ${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64\test-server.exe
- name: vkcts run
+ shell: pwsh
working-directory: ${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64
run: |
.\deqp-vk.exe --deqp-archive-dir=${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64 --deqp-caselist-file=${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64\slang-passing-tests.txt --deqp-waiver-file=${{ github.workspace }}\VK-GL-CTS_WithSlang-0.0.3-win64\VK-GL-CTS_WithSlang-0.0.3-win64\slang-waiver-tests.xml
diff --git a/.github/workflows/windows-selfhosted.yml b/.github/workflows/windows-selfhosted.yml
deleted file mode 100644
index ce2c82010..000000000
--- a/.github/workflows/windows-selfhosted.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-# This is a basic workflow to help you get started with Actions
-
-name: Full GPU Tests (Windows)
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-
-jobs:
- build:
- runs-on: [Windows, self-hosted]
- timeout-minutes: 100
- continue-on-error: true
- strategy:
- fail-fast: false
- matrix:
- configuration: ['Release']
- platform: ['x64']
- include:
- - platform: x64
- testPlatform: x64
- - platform: x64
- testCategory: full
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: 'true'
- fetch-depth: '0'
- - name: setup-msbuild
- uses: microsoft/setup-msbuild@v1
- - name: build
- run: |
- .\premake.bat vs2019 --arch=${{matrix.platform}} --deps=true --no-progress=true --enable-cuda=true
-
- .\make-slang-tag-version.bat
-
- MSBuild.exe slang.sln -v:m -m -property:Configuration=${{matrix.configuration}} -property:Platform=${{matrix.platform}} -maxcpucount:12
- - name: test-glsl
- run: |
- $ErrorActionPreference = "SilentlyContinue"
- where.exe spirv-dis
- spirv-dis --version
- $env:SLANG_RUN_SPIRV_VALIDATION='1'
- .\bin\windows-${{matrix.testPlatform}}\${{matrix.configuration}}\slang-test.exe tests/ -use-test-server -server-count 8 -emit-spirv-via-glsl -expected-failure-list tests/expected-failure.txt -api vk 2>&1
-
- - name: test
- run: |
- $ErrorActionPreference = "SilentlyContinue"
- .\bin\windows-${{matrix.testPlatform}}\${{matrix.configuration}}\slang-test.exe -use-test-server -server-count 8 -api all-cpu
-
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
deleted file mode 100644
index 04085aad2..000000000
--- a/.github/workflows/windows.yml
+++ /dev/null
@@ -1,76 +0,0 @@
-# This is a basic workflow to help you get started with Actions
-
-name: Windows Build CI
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-jobs:
- build:
- runs-on: windows-latest
- strategy:
- matrix:
- configuration: ['Debug', 'Release']
- platform: ['Win32', 'x64']
- include:
- - platform: Win32
- testPlatform: x86
- - platform: x64
- testPlatform: x64
- - testCategory: quick
- - platform: x64
- testCategory: full
- - configuration: Debug
- testCategory: smoke
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: 'true'
- fetch-depth: '0'
- - uses: robinraju/release-downloader@v1.7
- with:
- latest: true
- repository: "shader-slang/swiftshader"
- fileName: "vk_swiftshader_windows_${{matrix.testPlatform}}.zip"
- - name: setup-msbuild
- uses: microsoft/setup-msbuild@v1
- - name: build
- run: |
- .\premake.bat vs2019 --enable-embed-stdlib=true --arch=${{matrix.platform}} --deps=true --no-progress=true
-
- .\make-slang-tag-version.bat
-
- MSBuild.exe slang.sln -v:m -m -property:Configuration=${{matrix.configuration}} -property:Platform=${{matrix.platform}} -property:WindowsTargetPlatformVersion=10.0.19041.0 -warnAsError
- - uses: actions/upload-artifact@v3
- with:
- name: slang-build-${{matrix.configuration}}-${{matrix.platform}}-${{matrix.compiler}}
- path: |
- slang.h
- slang-com-helper.h
- slang-com-ptr.h
- slang-tag-version.h
- slang-gfx.h
- prelude/*.h
- bin/**/*.dll
- bin/**/*.exe
- bin/**/*.so
- bin/**/slangc
- bin/**/slangd
- docs/*.md
- README.md
- LICENSE
- - name: test
- run: |
- $slangTestBinDir = ".\bin\windows-${{matrix.testPlatform}}\${{matrix.configuration}}\";
- $spirvToolsBinDir = ".\external\slang-binaries\spirv-tools\windows-${{matrix.testPlatform}}\bin\";
- $env:Path += ";$slangTestBinDir;$spirvToolsBinDir";
- $env:SLANG_RUN_SPIRV_VALIDATION='1';
- $env:SLANG_USE_SPV_SOURCE_LANGUAGE_UNKNOWN='1';
- Expand-Archive "vk_swiftshader_windows_${{matrix.testPlatform}}.zip" -DestinationPath $slangTestBinDir;
- & "$slangTestBinDir\slang-test.exe" -api all-dx12 -appveyor -bindir "$slangTestBinDir\" -platform ${{matrix.testPlatform}} -configuration ${{matrix.configuration}} -category ${{matrix.testCategory}} -expected-failure-list tests/expected-failure-github.txt 2>&1;
-