diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2024-07-10 22:37:21 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-10 22:37:21 +0800 |
| commit | 0e56999a573fada2cce6e94c21ef856cc88dc933 (patch) | |
| tree | 2a74650a90285c5e4b0823fed10b3cc2ba9fe9d4 /.github/workflows/ci.yml | |
| parent | 9f1ff45e67c3c8e368feec11130378805bf5497c (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.yml | 105 |
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/* |
