Modernize docs templates #4646
Workflow file for this run
This file contains hidden or 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
# Copyright 2020-2025, Intel Corporation | |
# SPDX-License-Identifier: BSD-3-Clause | |
name: Tests | |
permissions: read-all | |
on: | |
schedule: | |
# Run daily - test sse2-avx512 targets @ -O0/-O1/-O2 | |
- cron: '0 7 * * *' | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
flow_type: | |
description: 'Workflow flow type (full or smoke)' | |
required: true | |
default: 'smoke' | |
type: choice | |
options: | |
- 'full' | |
- 'smoke' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
TARGETS_SMOKE_X86: '["avx2-i32x8", "generic-i32x4"]' | |
TARGETS_SMOKE_ARM: '["neon-i32x4"]' | |
OPTSETS_SMOKE: "-O2" | |
TARGETS_FULL_X86: '["generic-i1x4", "generic-i1x8", "generic-i1x16", "generic-i1x32", | |
"generic-i8x16", "generic-i8x32", | |
"generic-i16x8", "generic-i16x16", | |
"generic-i32x4", "generic-i32x8", "generic-i32x16", | |
"generic-i64x4", | |
"sse2-i32x4", "sse2-i32x8", | |
"sse4-i8x16", "sse4-i16x8", "sse4-i32x4", "sse4-i32x8", | |
"avx1-i32x4", "avx1-i32x8", "avx1-i32x16", "avx1-i64x4", | |
"avx2-i8x32", "avx2-i16x16", "avx2-i32x4", "avx2-i32x8", "avx2-i32x16", "avx2-i64x4", | |
"avx2vnni-i32x4", "avx2vnni-i32x8", "avx2vnni-i32x16", | |
"avx512skx-x4", "avx512skx-x8", "avx512skx-x16", "avx512skx-x64", "avx512skx-x32", | |
"avx512icl-x4", "avx512icl-x8", "avx512icl-x16", "avx512icl-x64", "avx512icl-x32", | |
"avx512spr-x4", "avx512spr-x8", "avx512spr-x16", "avx512spr-x64", "avx512spr-x32"]' | |
TARGETS_FULL_ARM: '["neon-i32x4", "neon-i32x8", "neon-i8x16", "neon-i16x8", "neon-i8x32", "neon-i16x16"]' | |
OPTSETS_FULL: "-O0 -O1 -O2" | |
ISPC_ANDROID_NDK_PATH: "/usr/local/share/android-ndk" | |
jobs: | |
define-flow: | |
runs-on: ubuntu-22.04 | |
outputs: | |
tests_matrix_targets_x86: ${{ steps.set-flow.outputs.matrix_x86 }} | |
tests_matrix_targets_arm: ${{ steps.set-flow.outputs.matrix_arm }} | |
tests_optsets: ${{ steps.set-flow.outputs.optsets }} | |
flow_type: ${{ steps.set-flow.outputs.type }} | |
env: | |
# for debug purposes | |
REF_NAME: ${{ github.ref }} | |
EVENT_NAME: ${{ github.event_name }} | |
# define rule when to run full flow | |
RUN_FULL: ${{ (github.ref == 'refs/heads/main' && github.event_name == 'schedule') || | |
(github.event_name == 'workflow_dispatch' && github.event.inputs.flow_type == 'full') }} | |
# define rule when to run smoke flow | |
RUN_SMOKE: ${{ github.event_name == 'pull_request' || | |
(github.event_name == 'workflow_dispatch' && github.event.inputs.flow_type == 'smoke') }} | |
steps: | |
- name: Set workflow jobs flow | |
id: set-flow | |
run: | | |
# one and only one var should be set | |
if [[ "$RUN_SMOKE" == false && "$RUN_FULL" == true ]]; then | |
echo "type=full" >> "$GITHUB_OUTPUT" | |
elif [[ "$RUN_SMOKE" == true && "$RUN_FULL" == false ]]; then | |
echo "type=smoke" >> "$GITHUB_OUTPUT" | |
else | |
echo "One and only one env var must be set: RUN_SMOKE or RUN_FULL" | |
exit 1 | |
fi | |
# set tests matrix depends on flow | |
if [[ "$RUN_SMOKE" == "true" ]]; then | |
echo "matrix_x86=${TARGETS_SMOKE_X86}" >> "$GITHUB_OUTPUT" | |
echo "matrix_arm=${TARGETS_SMOKE_ARM}" >> "$GITHUB_OUTPUT" | |
fi | |
if [[ "$RUN_FULL" == "true" ]]; then | |
echo "matrix_x86=${TARGETS_FULL_X86}" >> "$GITHUB_OUTPUT" | |
echo "matrix_arm=${TARGETS_FULL_ARM}" >> "$GITHUB_OUTPUT" | |
fi | |
# set tests optsets | |
if [[ "$RUN_SMOKE" == "true" ]]; then | |
echo "optsets=${OPTSETS_SMOKE}" >> "$GITHUB_OUTPUT" | |
fi | |
if [[ "$RUN_FULL" == "true" ]]; then | |
echo "optsets=${OPTSETS_FULL}" >> "$GITHUB_OUTPUT" | |
fi | |
linux-build-ispc-aarch64: | |
needs: [define-flow] | |
strategy: | |
fail-fast: false | |
matrix: | |
llvm: | |
- version: "20.1" | |
full_version: "20.1.4" | |
short_version: 20 | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: linux | |
artifact_name: ispc_llvm${{ matrix.llvm.short_version }}_linux.aarch64 | |
runner: ubuntu-22.04-arm | |
llvm_version: ${{ matrix.llvm.version }} | |
llvm_tar: llvm-${{ matrix.llvm.full_version }}-ubuntu22.04aarch64-Release+Asserts-x86.arm.wasm.tar.xz | |
linux-build-ispc: | |
needs: [define-flow] | |
strategy: | |
fail-fast: false | |
matrix: | |
llvm: | |
- version: "17.0" | |
full_version: "17.0.6" | |
short_version: 17 | |
- version: "18.1" | |
full_version: "18.1.8" | |
short_version: 18 | |
- version: "19.1" | |
full_version: "19.1.7" | |
short_version: 19 | |
- version: "20.1" | |
full_version: "20.1.4" | |
short_version: 20 | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: linux | |
artifact_name: ispc_llvm${{ matrix.llvm.short_version }}_linux | |
runner: ubuntu-22.04 | |
llvm_version: ${{ matrix.llvm.version }} | |
llvm_tar: llvm-${{ matrix.llvm.full_version }}-ubuntu22.04-Release+Asserts-x86.arm.wasm.tar.xz | |
linux-build-ispc-llvm20-lto: | |
needs: [define-flow] | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: linux | |
artifact_name: ispc_llvm20_lto_linux | |
runner: ubuntu-22.04 | |
llvm_version: "20.1" | |
llvm_tar: llvm-20.1.4-ubuntu22.04-Release+Asserts-lto-x86.arm.wasm.tar.xz | |
enable_lto: true | |
linux-build-ispc-llvm20-release: | |
needs: [define-flow] | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: linux | |
artifact_name: ispc_llvm20rel_linux | |
runner: ubuntu-22.04 | |
llvm_version: "20.1" | |
llvm_tar: llvm-20.1.4-ubuntu22.04-Release-x86.arm.wasm.tar.xz | |
enable_cross: true | |
linux-build-ispc-xe-llvm20-release: | |
needs: [define-flow] | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: linux | |
artifact_name: ispc_xe_llvm20rel_linux | |
runner: ubuntu-22.04 | |
llvm_version: "20.1" | |
llvm_tar: llvm-20.1.4-ubuntu22.04-Release-x86.arm.wasm.tar.xz | |
enable_xe: true | |
linux-build-ispc-wasm: | |
needs: [define-flow] | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: linux | |
artifact_name: ispc-wasm-linux | |
runner: ubuntu-22.04 | |
llvm_version: "20.1" | |
llvm_tar: llvm-20.1.4-ubuntu22.04-Release+Asserts-x86.arm.wasm.tar.xz | |
enable_wasm: true | |
linux-test: | |
needs: [define-flow, linux-build-ispc] | |
strategy: | |
fail-fast: false | |
matrix: | |
llvm: [17, 18, 19, 20] | |
arch: [x86, x86-64] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: linux | |
architecture: ${{ matrix.arch }} | |
artifact_name: ispc_llvm${{ matrix.llvm }}_linux | |
targets: ${{ needs.define-flow.outputs.tests_matrix_targets_x86 }} | |
optsets: ${{ needs.define-flow.outputs.tests_optsets }} | |
linux-test-llvm20-lto: | |
needs: [define-flow, linux-build-ispc-llvm20-lto] | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: linux | |
architecture: ${{ matrix.arch }} | |
artifact_name: ispc_llvm20_lto_linux | |
targets: ${{ needs.define-flow.outputs.tests_matrix_targets_x86 }} | |
optsets: ${{ needs.define-flow.outputs.tests_optsets }} | |
enable_lto: true | |
linux-test-llvm20-aarch64: | |
needs: [define-flow, linux-build-ispc-aarch64] | |
strategy: | |
fail-fast: false | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: linux | |
architecture: aarch64 | |
artifact_name: ispc_llvm20_linux.aarch64 | |
targets: ${{ needs.define-flow.outputs.tests_matrix_targets_arm }} | |
optsets: ${{ needs.define-flow.outputs.tests_optsets }} | |
# Test release version | |
linux-test-llvm20-release: | |
needs: [define-flow, linux-build-ispc-llvm20-release] | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: linux | |
architecture: ${{ matrix.arch }} | |
artifact_name: ispc_llvm20rel_linux | |
targets: '["avx2-i32x8"]' | |
optsets: -O0 -O2 | |
# Debug run is experimental with the purpose to see if it's capable to catch anything. | |
# So it's running in "full" mode only for now. | |
# Single target, as it should be representative enough. | |
linux-test-debug-llvm20: | |
needs: [define-flow, linux-build-ispc] | |
if: ${{ needs.define-flow.outputs.flow_type == 'full' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: linux | |
architecture: ${{ matrix.arch }} | |
artifact_name: ispc_llvm20_linux | |
targets: '["avx2-i32x8"]' | |
optsets: -O0 -O2 | |
enable_debug: true | |
# Test xe release version | |
linux-test-xe-llvm20-release: | |
needs: [define-flow, linux-build-ispc-xe-llvm20-release] | |
if: ${{ needs.define-flow.outputs.flow_type == 'smoke' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: linux | |
architecture: ${{ matrix.arch }} | |
artifact_name: ispc_xe_llvm20rel_linux | |
targets: '["avx2-i32x8"]' | |
optsets: -O0 -O2 | |
enable_xe: true | |
linux-test-ispc-wasm: | |
needs: [define-flow, linux-build-ispc-wasm] | |
strategy: | |
fail-fast: false | |
matrix: | |
# wasm64 is failing with nodejs 20.18.0 that is installed by default | |
# with emsdk in script/install_emscripten.[sh|bat] | |
# Disable it for now, nodejs 23.9.0 works but it requires us to install | |
# it manually alongside emsdk. | |
arch: [wasm32] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: linux | |
architecture: ${{ matrix.arch }} | |
artifact_name: ispc-wasm-linux | |
targets: '["wasm-i32x4"]' | |
optsets: -O0 -O2 | |
macos-build-ispc: | |
needs: [define-flow] | |
strategy: | |
fail-fast: false | |
matrix: | |
runner: [macos-13, macos-14] | |
llvm: | |
- version: "17.0" | |
full_version: "17.0.6" | |
short_version: 17 | |
- version: "18.1" | |
full_version: "18.1.8" | |
short_version: 18 | |
- version: "19.1" | |
full_version: "19.1.7" | |
short_version: 19 | |
- version: "20.1" | |
full_version: "20.1.4" | |
short_version: 20 | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: macos | |
artifact_name: ispc_llvm${{ matrix.llvm.short_version }}_${{ matrix.runner }} | |
runner: ${{ matrix.runner }} | |
llvm_version: ${{ matrix.llvm.version }} | |
llvm_tar: llvm-${{ matrix.llvm.full_version }}-macos-Release+Asserts-universal-x86.arm.wasm.tar.xz | |
macos-build-ispc-llvm20-lto: | |
needs: [define-flow] | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: macos | |
artifact_name: ispc_llvm20_lto_macos | |
runner: macos-13 | |
llvm_version: 20.1 | |
llvm_tar: llvm-20.1.4-macos-Release-lto-universal-x86.arm.wasm.tar.xz | |
enable_lto: true | |
macos-test-ispc: | |
needs: [define-flow, macos-build-ispc] | |
strategy: | |
fail-fast: false | |
matrix: | |
llvm: [17, 18, 19, 20] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: macos | |
architecture: x86-64 | |
artifact_name: ispc_llvm${{matrix.llvm}}_macos-13 | |
targets: '["sse4-i32x4"]' | |
optsets: -O0 -O2 | |
macos-test-ispc-llvm20-lto: | |
needs: [define-flow, macos-build-ispc-llvm20-lto] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: macos | |
architecture: x86-64 | |
artifact_name: ispc_llvm20_lto_macos | |
targets: '["sse4-i32x4"]' | |
optsets: -O0 -O2 | |
enable_lto: true | |
macos-test-ispc-llvm20-arm64: | |
needs: [define-flow, macos-build-ispc] | |
strategy: | |
fail-fast: false | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: macos | |
architecture: aarch64 | |
artifact_name: ispc_llvm20_macos-14 | |
targets: ${{ needs.define-flow.outputs.tests_matrix_targets_arm }} | |
optsets: ${{ needs.define-flow.outputs.tests_optsets }} | |
win-build-ispc: | |
needs: [define-flow] | |
strategy: | |
fail-fast: false | |
matrix: | |
llvm: | |
- version: "17.0" | |
full_version: "17.0.6" | |
short_version: 17 | |
vs_version: "vs2019" | |
- version: "18.1" | |
full_version: "18.1.8" | |
short_version: 18 | |
vs_version: "vs2022" | |
- version: "19.1" | |
full_version: "19.1.7" | |
short_version: 19 | |
vs_version: "vs2022" | |
- version: "20.1" | |
full_version: "20.1.4" | |
short_version: 20 | |
vs_version: "vs2022" | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: windows | |
artifact_name: ispc_llvm${{ matrix.llvm.short_version }}_win | |
runner: windows-2022 | |
llvm_version: ${{ matrix.llvm.version }} | |
llvm_tar: llvm-${{ matrix.llvm.full_version }}-win.${{ matrix.llvm.vs_version }}-Release+Asserts-x86.arm.wasm.tar.7z | |
win-build-ispc-llvm20-lto: | |
needs: [define-flow] | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: windows | |
artifact_name: ispc_llvm20_lto_win | |
runner: windows-2022 | |
llvm_version: 20.1 | |
llvm_tar: llvm-20.1.4-win.vs2022-Release+Asserts-lto-x86.arm.wasm.tar.7z | |
enable_lto: true | |
win-build-ispc-xe-llvm20-release: | |
needs: [define-flow] | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: windows | |
artifact_name: ispc_xe_llvm20rel_win | |
runner: windows-2022 | |
llvm_version: 20.1 | |
llvm_tar: llvm-20.1.4-win.vs2022-Release-x86.arm.wasm.tar.7z | |
enable_xe: true | |
win-build-ispc-wasm: | |
needs: [define-flow] | |
uses: ./.github/workflows/reusable.ispc.build.yml | |
with: | |
platform: windows | |
artifact_name: ispc-wasm-windows | |
runner: windows-2022 | |
llvm_version: 20.1 | |
llvm_tar: llvm-20.1.4-win.vs2022-Release+Asserts-x86.arm.wasm.tar.7z | |
enable_wasm: true | |
win-test: | |
needs: [define-flow, win-build-ispc] | |
strategy: | |
fail-fast: false | |
matrix: | |
llvm: [17, 18, 19, 20] | |
arch: [x86, x86-64] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: windows | |
architecture: ${{ matrix.arch }} | |
artifact_name: ispc_llvm${{matrix.llvm}}_win | |
targets: ${{ needs.define-flow.outputs.tests_matrix_targets_x86 }} | |
optsets: ${{ needs.define-flow.outputs.tests_optsets }} | |
win-test-llvm20-lto: | |
needs: [define-flow, win-build-ispc-llvm20-lto] | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: windows | |
architecture: ${{ matrix.arch }} | |
artifact_name: ispc_llvm20_lto_win | |
targets: ${{ needs.define-flow.outputs.tests_matrix_targets_x86 }} | |
optsets: ${{ needs.define-flow.outputs.tests_optsets }} | |
enable_lto: true | |
# Test xe release version | |
win-test-xe-llvm20-release: | |
needs: [define-flow, win-build-ispc-xe-llvm20-release] | |
if: ${{ needs.define-flow.outputs.flow_type == 'smoke' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86-64] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: windows | |
architecture: ${{ matrix.arch }} | |
artifact_name: ispc_xe_llvm20rel_win | |
targets: '["avx2-i32x8"]' | |
optsets: ${{ needs.define-flow.outputs.tests_optsets }} | |
enable_xe: true | |
win-test-llvm20-aarch64: | |
needs: [define-flow, win-build-ispc] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: windows | |
architecture: aarch64 | |
artifact_name: ispc_llvm20_win | |
targets: ${{ needs.define-flow.outputs.tests_matrix_targets_arm }} | |
optsets: ${{ needs.define-flow.outputs.tests_optsets }} | |
win-test-llvm20-vectorcall: | |
needs: [define-flow, win-build-ispc-xe-llvm20-release] | |
uses: ./.github/workflows/reusable.ispc.test.yml | |
with: | |
platform: windows | |
architecture: x86-64 | |
artifact_name: ispc_xe_llvm20rel_win | |
targets: '["avx2-i32x8"]' | |
optsets: O2 | |
calling_conv: vectorcall | |
win-package-examples: | |
needs: [define-flow] | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.ps1 | |
- name: Build examples package | |
run: | | |
cmake -B build ./ -DISPC_PREPARE_PACKAGE=ON | |
cmake --build build --target package-examples | |
- name: Upload examples package | |
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 | |
with: | |
name: examples_zip | |
path: build/ispc-examples-trunk.zip | |
linux-package-examples: | |
needs: [define-flow] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-build-deps.sh | |
- name: Build examples package | |
run: | | |
cmake -B build ./ -DISPC_PREPARE_PACKAGE=ON | |
cmake --build build --target package-examples | |
- name: Upload package | |
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 | |
with: | |
name: examples_tgz | |
path: build/ispc-examples-trunk.tar.gz | |
win-build-examples: | |
needs: [win-package-examples, win-build-ispc] | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Download ispc package | |
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 | |
with: | |
name: ispc_llvm20_win | |
- name: Download examples package | |
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 | |
with: | |
name: examples_zip | |
path: examples-package | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-test-deps.ps1 | |
- name: Unpack examples | |
run: | | |
unzip ispc-examples-trunk.zip | |
working-directory: examples-package | |
shell: cmd | |
- name: Run performance tests | |
shell: cmd | |
run: | | |
set VSVARS="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
call %VSVARS% | |
set PATH=%GITHUB_WORKSPACE%\ispc-trunk-windows\bin;%PATH% | |
python scripts\perf.py -n 1 -g "Visual Studio 17 2022" | |
- name: Build examples | |
run: | | |
mkdir examples-build | |
cmake -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX" examples-package\examples\cpu -B examples-build -Thost=x64 -G "Visual Studio 17 2022" | |
cmake --build examples-build --target ALL_BUILD --config Release | |
shell: cmd | |
linux-build-examples: | |
needs: [linux-package-examples, linux-build-ispc] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Download ispc package | |
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 | |
with: | |
name: ispc_llvm20_linux | |
- name: Download examples package | |
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 | |
with: | |
name: examples_tgz | |
path: examples-package | |
- name: Install dependencies | |
run: | | |
.github/workflows/scripts/install-test-deps.sh | |
- name: Unpack examples | |
run: | | |
tar xf ispc-examples-trunk.tar.gz | |
working-directory: examples-package | |
- name: Run performance tests | |
run: python scripts/perf.py | |
- name: Build examples | |
run: | | |
mkdir examples-build | |
cmake -DCMAKE_C_FLAGS="-Wall -Werror" -DCMAKE_CXX_FLAGS="-Wall -Werror" examples-package/examples/cpu -B examples-build | |
cmake --build examples-build | |
macos-build-examples: | |
needs: [linux-package-examples, macos-build-ispc] | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Download ispc package | |
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 | |
with: | |
name: ispc_llvm20_macos-14 | |
- name: Download examples package | |
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 | |
with: | |
name: examples_tgz | |
path: examples-package | |
- name: Install dependencies and unpack artifacts | |
run: | | |
tar xf ispc-trunk-macos.tar.gz | |
echo "$GITHUB_WORKSPACE/ispc-trunk-macos/bin" >> "$GITHUB_PATH" | |
echo "ISPC_HOME=$GITHUB_WORKSPACE" >> "$GITHUB_ENV" | |
pip install nanobind | |
- name: Unpack examples | |
run: | | |
tar xf ispc-examples-trunk.tar.gz | |
working-directory: examples-package | |
- name: Build examples | |
run: | | |
mkdir examples-build | |
cmake -DCMAKE_C_FLAGS="-Wall -Werror" -DCMAKE_CXX_FLAGS="-Wall -Werror" examples-package/examples/cpu -B examples-build | |
cmake --build examples-build |