Fix pointers link in userguide (#4217) #8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI (CMake) | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
strategy: | |
matrix: | |
# Until we switch to CMake fully, just run something minimal | |
include: | |
- os: linux | |
compiler: gcc | |
platform: x64 | |
config: debug | |
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] | |
fail-fast: false | |
runs-on: ${{ matrix.runs-on }} | |
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}} | |
runs-on: ${{matrix.runs-on}} | |
compiler: ${{matrix.compiler}} | |
platform: ${{matrix.platform}} | |
config: ${{matrix.config}} | |
- name: Build Slang | |
run: | | |
if [[ "${{ matrix.os }}" =~ "windows" && "${{ matrix.config }}" != "release" ]]; then | |
# Doing a debug build will try to link against a release built llvm, this | |
# is a problem on Windows, so make slang-llvm in release build and use | |
# that as though it's a fetched binary via these presets. | |
cmake --workflow --preset slang-llvm | |
# 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 \ | |
-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 \ | |
-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 | |
failed=0 | |
if [[ "${{matrix.full-gpu-tests}}" == "true" ]]; then | |
$bin_dir/slang-test \ | |
-use-test-server \ | |
-server-count 8 \ | |
-category ${{ matrix.test-category }} \ | |
-api all-cpu || | |
failed=1 | |
$bin_dir/slang-test \ | |
-use-test-server \ | |
-server-count 8 \ | |
-emit-spirv-directly \ | |
-api vk \ | |
-category ${{ matrix.test-category }} \ | |
-expected-failure-list tests/expected-failure.txt || | |
failed=1 | |
else | |
$bin_dir/slang-test \ | |
-use-test-server \ | |
-api all-dx12 \ | |
-category ${{ matrix.test-category }} \ | |
-expected-failure-list tests/expected-failure-github.txt || | |
failed=1 | |
fi | |
exit $failed | |
- uses: actions/upload-artifact@v3 | |
if: ${{ ! matrix.full-gpu-tests }} | |
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/* |