Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP Drop Premake #3703

Merged
merged 151 commits into from
Jul 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
ec8fed3
Remove premake lua
expipiplus1 Mar 7, 2024
d162f33
Remove premake generated vs project
expipiplus1 Mar 7, 2024
cabe7b7
remove deps file
expipiplus1 Mar 7, 2024
b3c5828
Remove premake driving bat files
expipiplus1 Mar 7, 2024
cd803c7
Full test matrix under CMake
expipiplus1 Mar 7, 2024
9bc8ba8
Remove premake based ci workflows
expipiplus1 Mar 7, 2024
bedc080
Wiggle CI
expipiplus1 Mar 7, 2024
8a7acd0
remove cmake from ci name
expipiplus1 Mar 8, 2024
a6bdace
find frameworks correctly on osx
expipiplus1 Mar 8, 2024
60a954b
remove cmake from ci name
expipiplus1 Mar 8, 2024
ddc1fd7
Cope with sccache not being available
expipiplus1 Apr 2, 2024
1be4822
cmake based falcor tests
expipiplus1 Apr 2, 2024
d25eb2b
ci wobble
expipiplus1 Apr 2, 2024
b5ac005
only install ninja if necessary
expipiplus1 Apr 3, 2024
56743ea
more appropriate cache name
expipiplus1 Apr 9, 2024
b30efc8
Remove premake from build instructions
expipiplus1 Apr 9, 2024
9d2496d
Add some docs on ci setup
expipiplus1 Apr 9, 2024
21c6ad1
remove premake from regression tests
expipiplus1 Apr 9, 2024
9753213
remove premake from perf test
expipiplus1 Apr 9, 2024
b13c5e0
Set SLANGC_PATH
expipiplus1 Apr 10, 2024
5ed4339
ci wobble
expipiplus1 Apr 10, 2024
d00081f
bump slang-binaries
expipiplus1 Apr 10, 2024
669fce8
ci wobble
expipiplus1 Apr 10, 2024
cbfa8e4
Bump spirv tools
expipiplus1 Apr 10, 2024
8332f5b
dont use timestamp in cache
expipiplus1 Apr 11, 2024
13a1b05
remote debug code
expipiplus1 Apr 11, 2024
dbfcd28
cache key wobble
expipiplus1 Apr 11, 2024
02d670d
Install sccache after building llvm
expipiplus1 Apr 12, 2024
dfac0d6
Do not build llvm tools
expipiplus1 Apr 12, 2024
ccdcf0b
Merge remote-tracking branch 'origin/master' into drop-premake
expipiplus1 Apr 12, 2024
3d8945f
Merge branch 'master' into drop-premake
expipiplus1 Apr 15, 2024
54e77f8
Merge remote-tracking branch 'origin' into drop-premake
expipiplus1 Apr 16, 2024
bfd69fa
ci wobble
expipiplus1 Apr 16, 2024
3077e4b
ci wobble
expipiplus1 Apr 16, 2024
f11ae52
ci wobble
expipiplus1 Apr 16, 2024
0430ee9
ci wobble
expipiplus1 Apr 16, 2024
772b6d5
Merge remote-tracking branch 'origin' into drop-premake
expipiplus1 Apr 16, 2024
2e2b6f4
ci wobble
expipiplus1 Apr 16, 2024
c3581a6
Merge remote-tracking branch 'origin/master' into drop-premake
expipiplus1 Apr 22, 2024
394bac6
Merge remote-tracking branch 'origin/master' into drop-premake
expipiplus1 Apr 24, 2024
5a98c93
Merge remote-tracking branch 'origin/master' into drop-premake
expipiplus1 Apr 24, 2024
76e9113
Tests spirv via glsl in ci
expipiplus1 Apr 24, 2024
50e5404
Define SLANG_ENABLE_XLIB=1
expipiplus1 Apr 25, 2024
a2e6f33
foramtting
expipiplus1 Apr 25, 2024
7a0d165
osx builds on aarch64
expipiplus1 Apr 25, 2024
23da35d
ci wobble
expipiplus1 Apr 25, 2024
23f60f0
ci wobble
expipiplus1 Apr 25, 2024
59a909c
ci wobble
expipiplus1 Apr 25, 2024
dc09768
ci wobble
expipiplus1 Apr 25, 2024
60feff7
ci wobble
expipiplus1 Apr 25, 2024
2f694e7
ci wobble
expipiplus1 Apr 25, 2024
4f5fd50
Merge remote-tracking branch 'origin/master' into drop-premake
expipiplus1 Jul 5, 2024
e0044ea
Merge remote-tracking branch 'origin/master' into drop-premake
expipiplus1 Jul 5, 2024
28cfc05
package documentation and metadata with cmake
expipiplus1 Jul 5, 2024
2ad13c7
ci wobble
expipiplus1 Jul 5, 2024
47ccb64
Split hlsl double intrinsic tests
expipiplus1 Jul 5, 2024
28c41c1
ci wobble
expipiplus1 Jul 5, 2024
bcf60c7
Correct type for double log10
expipiplus1 Jul 5, 2024
6873e9f
Merge branch 'fix-4549' into drop-premake
expipiplus1 Jul 5, 2024
4dfb530
remove working test from expected failures
expipiplus1 Jul 5, 2024
288df12
add broken test to expected failures
expipiplus1 Jul 5, 2024
7db48e8
smaller build for falcor tests
expipiplus1 Jul 5, 2024
2d61ff3
ci wobble
expipiplus1 Jul 5, 2024
3a358ad
A few exclusions in ci
expipiplus1 Jul 5, 2024
b3c4cbc
wip, release script
expipiplus1 Jul 5, 2024
89fc36f
Enable examples in ci
expipiplus1 Jul 5, 2024
8e54334
neaten release script
expipiplus1 Jul 8, 2024
e23553e
Correct building docs
expipiplus1 Jul 8, 2024
eed8970
Only use xlib vulkan when slang_enable_xlib is true
expipiplus1 Jul 8, 2024
1176d67
bump slang-llvm version
expipiplus1 Jul 6, 2024
bed77d7
Remove toolchain file use
expipiplus1 Jul 8, 2024
9a70875
Bump slang-llvm preset version
expipiplus1 Jul 8, 2024
84953c7
slash direction
expipiplus1 Jul 8, 2024
89ff38e
Improve build directions
expipiplus1 Jul 8, 2024
3a7a3ee
Add msvc cross build documentation
expipiplus1 Jul 8, 2024
d5673f1
Disable old release files
expipiplus1 Jul 8, 2024
3d5cc60
Smaller set of releases for test
expipiplus1 Jul 8, 2024
1ba2887
Allow not building llvm
expipiplus1 Jul 8, 2024
86640dc
simplify release matrix
expipiplus1 Jul 8, 2024
425da9b
Cross releases
expipiplus1 Jul 8, 2024
87831c9
formatting
expipiplus1 Jul 8, 2024
d366cd9
formatting
expipiplus1 Jul 8, 2024
1857d9d
ci wiggle
expipiplus1 Jul 8, 2024
8759407
ci wiggle
expipiplus1 Jul 8, 2024
87a9617
cleaner
expipiplus1 Jul 8, 2024
b205faf
neaten
expipiplus1 Jul 8, 2024
fa6ad76
ci wobble
expipiplus1 Jul 8, 2024
1281253
formatting
expipiplus1 Jul 8, 2024
d4b0533
Install cross tools on linux
expipiplus1 Jul 8, 2024
e0e6b88
do not clean build dir
expipiplus1 Jul 8, 2024
4e9b4fd
neaten ci
expipiplus1 Jul 8, 2024
7ae5b07
neaten ci
expipiplus1 Jul 8, 2024
2521e4b
neaten ci
expipiplus1 Jul 8, 2024
0127cf6
remove unused release workflow files
expipiplus1 Jul 8, 2024
84cd915
Build llvm on some platforms
expipiplus1 Jul 8, 2024
86ab827
neaten ci
expipiplus1 Jul 8, 2024
f4a33e8
notarize on osx
expipiplus1 Jul 8, 2024
bcc8aa9
s/x64/x86_64
expipiplus1 Jul 8, 2024
b6a6e0c
ci wobble
expipiplus1 Jul 8, 2024
1a516a2
Embed stdlib for release build
expipiplus1 Jul 8, 2024
45554b5
wobble ci
expipiplus1 Jul 8, 2024
708113c
wobble ci
expipiplus1 Jul 8, 2024
d62ed5f
s/x64/x86_64
expipiplus1 Jul 8, 2024
3731eba
ci wobble
expipiplus1 Jul 8, 2024
8fab222
ci wobble
expipiplus1 Jul 8, 2024
aae647f
ci wobble
expipiplus1 Jul 8, 2024
44c60b9
vk-gl-cts on cmake
expipiplus1 Jul 8, 2024
717978d
neaten ci
expipiplus1 Jul 8, 2024
346f9e1
neaten ci
expipiplus1 Jul 9, 2024
c44041b
bump cache action version
expipiplus1 Jul 9, 2024
5a54ac9
Cope with windows being weird about case
expipiplus1 Jul 9, 2024
e90b09d
old glibc version
expipiplus1 Jul 9, 2024
703a75c
old glibc version
expipiplus1 Jul 9, 2024
08a8f97
Correct action file
expipiplus1 Jul 9, 2024
36975c6
Keep cache hot on main branch
expipiplus1 Jul 9, 2024
cef60bf
separate small script for old glibc releases
expipiplus1 Jul 9, 2024
677ec47
ci wobble
expipiplus1 Jul 9, 2024
99cba70
ci wobble
expipiplus1 Jul 9, 2024
a58aaba
Run cmake outside of docker
expipiplus1 Jul 9, 2024
d7f6919
only sign on releases
expipiplus1 Jul 9, 2024
8f2ebcb
Revert "Run cmake outside of docker"
expipiplus1 Jul 9, 2024
a71d3b2
python3 on build image
expipiplus1 Jul 9, 2024
1cee8e0
less parallel
expipiplus1 Jul 9, 2024
c170191
ci wobble
expipiplus1 Jul 9, 2024
45ee49e
ci wobble
expipiplus1 Jul 9, 2024
435ab48
ci wobble
expipiplus1 Jul 9, 2024
51b6067
newer git
expipiplus1 Jul 9, 2024
ff50479
ci wobble
expipiplus1 Jul 9, 2024
5d99429
ci wobble
expipiplus1 Jul 9, 2024
20de81f
Use newer docker image
expipiplus1 Jul 10, 2024
29de413
Use newer docker image
expipiplus1 Jul 10, 2024
f299db1
sccache wobble
expipiplus1 Jul 10, 2024
43e46f0
Merge remote-tracking branch 'origin/master' into drop-premake
expipiplus1 Jul 10, 2024
0102b5f
permissions issue
expipiplus1 Jul 10, 2024
90031cb
neaten
expipiplus1 Jul 10, 2024
01831ee
build llvm in ci
expipiplus1 Jul 10, 2024
f67d96b
build llvm in ci
expipiplus1 Jul 10, 2024
494c6e3
Remove linux clang build in ci
expipiplus1 Jul 10, 2024
7869914
Only install crossbuild tools on non-aarch64 systems
expipiplus1 Jul 10, 2024
a033a58
Merge remote-tracking branch 'origin/master' into drop-premake
expipiplus1 Jul 10, 2024
a08eb86
neaten ci.yml
expipiplus1 Jul 10, 2024
f7b51e2
Correct github matrix
expipiplus1 Jul 10, 2024
bba73a4
Simplify github matrix
expipiplus1 Jul 10, 2024
953f99f
ci wobble
expipiplus1 Jul 10, 2024
ecc408d
Disable broken test
expipiplus1 Jul 10, 2024
bc17904
ci wobble
expipiplus1 Jul 10, 2024
77faaf2
Merge remote-tracking branch 'origin/master' into drop-premake
expipiplus1 Jul 10, 2024
f9c7f91
Neater slang-llvm archive filename
expipiplus1 Jul 10, 2024
9cc5e2b
Neater path for uploading artifacts
expipiplus1 Jul 10, 2024
28a147c
Neater ci names
expipiplus1 Jul 10, 2024
f2272b2
Use Windows SDK 10.0.19041.0 in cmake builds
expipiplus1 Jul 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 54 additions & 29 deletions .github/actions/common-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,86 +5,109 @@ 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/[email protected]
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}}
CXX=${{inputs.compiler}}
# 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/[email protected]
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/[email protected]
Expand All @@ -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
105 changes: 49 additions & 56 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: CI (CMake)
name: CI

on:
push:
Expand All @@ -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 }}

Expand All @@ -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
Expand All @@ -96,22 +90,21 @@ 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
# Otherwise, use the system llvm we have just build or got from the
# 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 \
Expand All @@ -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 ||
Expand All @@ -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/*
53 changes: 31 additions & 22 deletions .github/workflows/compile-regression-test.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# This is a basic workflow to help you get started with Actions

name: Compile Regression-Test

on:
Expand All @@ -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
Loading
Loading