summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yml
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/workflows/ci.yml
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/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml105
1 files changed, 49 insertions, 56 deletions
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/*