From 0e56999a573fada2cce6e94c21ef856cc88dc933 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Wed, 10 Jul 2024 22:37:21 +0800 Subject: 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 --- .github/workflows/ci.yml | 105 ++++++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 56 deletions(-) (limited to '.github/workflows/ci.yml') 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/* -- cgit v1.2.3