Update documentation #99
Workflow file for this run
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: Build and Test | |
on: | |
push: | |
tags: | |
- '*' | |
branches: | |
- '*' | |
env: | |
VCPKG_OVERLAY_TRIPLETS: cmake/triplets | |
VCPKG_OVERLAY_PORTS: cmake/ports | |
AWS_ACCESS_KEY_ID: ${{secrets.GHBIN_ACCESS_KEY}} | |
AWS_SECRET_ACCESS_KEY: ${{secrets.GHBIN_SECRET_KEY}} | |
AWS_DEFAULT_REGION: fra1 | |
AWS_ENDPOINT_URL: https://fra1.digitaloceanspaces.com | |
AWS_ENDPOINT_URL_S3: https://fra1.digitaloceanspaces.com | |
VCPKG_FEATURE_FLAGS: binarycaching | |
VCPKG_BINARY_SOURCES: "clear;x-aws,s3://gh-bin/bincache/,readwrite" | |
jobs: | |
linux-deps: | |
strategy: | |
matrix: | |
triplet: ["x64-linux"] | |
runs-on: ubuntu-latest | |
env: | |
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}} | |
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}} | |
steps: | |
- name: Install prerequisites | |
run: | | |
sudo apt-get update && sudo apt-get install -y ninja-build mesa-vulkan-drivers vulkan-tools wget xorg-dev libgl-dev libgl1-mesa-dev libvulkan-dev autoconf autoconf-archive libxrandr-dev libxinerama-dev libxcursor-dev mesa-common-dev libx11-xcb-dev | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Vcpkg | |
shell: bash | |
env: | |
TMPDIR: ${{runner.temp}} | |
run: | | |
cmake -P upload-deps.cmake | |
windows-deps: | |
strategy: | |
matrix: | |
triplet: ["x64-windows-static-md", "x86-windows-static-md"] | |
runs-on: windows-latest | |
env: | |
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}} | |
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}} | |
LLVM_DIR: "C:/Program Files/LLVM" | |
steps: | |
- name: Install prerequisites | |
run: | | |
choco install llvm --no-progress -y | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Vcpkg | |
run: | | |
cmake -P upload-deps.cmake | |
macos-deps: | |
strategy: | |
matrix: | |
include: | |
- triplet: "x64-osx" | |
image: macos-13 | |
- triplet: "arm64-osx" | |
image: macos-latest | |
runs-on: ${{matrix.image}} | |
env: | |
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}} | |
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}} | |
VCPKG_ROOT: "$HOME/vcpkg" | |
steps: | |
- name: Install prerequisites | |
run: | | |
brew install ninja autoconf automake autoconf-archive | |
git clone /~https://github.com/microsoft/vcpkg "$HOME/vcpkg" | |
$HOME/vcpkg/bootstrap-vcpkg.sh -disableMetrics | |
echo "$HOME/vcpkg" >> "$GITHUB_PATH" | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Vcpkg | |
run: | | |
cmake -P upload-deps.cmake | |
build-macos: | |
strategy: | |
matrix: | |
include: | |
- triplet: "x64-osx" | |
image: macos-13 | |
arch: x86_64 | |
- triplet: "arm64-osx" | |
image: macos-latest | |
arch: arm64 | |
runs-on: ${{matrix.image}} | |
needs: macos-deps | |
env: | |
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}} | |
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}} | |
VCPKG_ROOT: "$HOME/vcpkg" | |
steps: | |
- name: Install prerequisites | |
run: | | |
brew install ninja autoconf automake autoconf-archive | |
git clone /~https://github.com/microsoft/vcpkg "$HOME/vcpkg" | |
$HOME/vcpkg/bootstrap-vcpkg.sh -disableMetrics | |
echo "VCPKG_INSTALLATION_ROOT=$HOME/vcpkg" >> $GITHUB_ENV | |
echo "$HOME/vcpkg" >> "$GITHUB_PATH" | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Acquire dependencies | |
run: | | |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake | |
- name: Build | |
run: | | |
cmake -GNinja -S . -B build-release -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DCMAKE_OSX_ARCHITECTURES=${{matrix.arch}} -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release | |
cmake --build build-release --target install | |
cmake -GNinja -S . -B build-debug -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DCMAKE_OSX_ARCHITECTURES=${{matrix.arch}} -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Debug | |
cmake --build build-debug --target install | |
cd dist | |
cmake -E tar cJ "${{github.workspace}}/Brisk-${{github.ref_type == 'tag' && github.ref_name || github.sha}}-${{matrix.triplet}}.tar.xz" . | |
- name: Binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{matrix.triplet}} | |
path: | | |
Brisk-*.tar.xz | |
Brisk-Dependencies-*.7z | |
build-linux: | |
strategy: | |
matrix: | |
triplet: ["x64-linux"] | |
runs-on: ubuntu-latest | |
needs: linux-deps | |
env: | |
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}} | |
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}} | |
steps: | |
- name: Install prerequisites | |
run: | | |
sudo apt-get update && sudo apt-get install -y ninja-build mesa-vulkan-drivers vulkan-tools wget xorg-dev libgl-dev libgl1-mesa-dev libvulkan-dev autoconf autoconf-archive libxrandr-dev libxinerama-dev libxcursor-dev mesa-common-dev libx11-xcb-dev | |
wget -O - https://apt.llvm.org/llvm.sh | sudo bash -s - 19 | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Acquire dependencies | |
run: | | |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake | |
- name: Build | |
run: | | |
cmake -GNinja -S . -B build-release -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_C_COMPILER=clang-19 | |
cmake --build build-release --target install | |
cmake -GNinja -S . -B build-debug -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_C_COMPILER=clang-19 | |
cmake --build build-debug --target install | |
cd dist | |
cmake -E tar cJ "${{github.workspace}}/Brisk-${{github.ref_type == 'tag' && github.ref_name || github.sha}}-${{matrix.triplet}}.tar.xz" . | |
- name: Binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{matrix.triplet}} | |
path: | | |
Brisk-*.tar.xz | |
Brisk-Dependencies-*.7z | |
build-windows: | |
strategy: | |
matrix: | |
include: | |
- triplet: "x64-windows-static-md" | |
arch: x64 | |
flags: "" | |
- triplet: "x86-windows-static-md" | |
arch: x86 | |
flags: "-m32" | |
runs-on: windows-latest | |
needs: windows-deps | |
env: | |
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}} | |
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}} | |
CXXFLAGS: ${{matrix.flags}} | |
CFLAGS: ${{matrix.flags}} | |
LLVM_DIR: "C:/Program Files/LLVM" | |
steps: | |
- name: Install prerequisites | |
run: | | |
choco install llvm --no-progress -y | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Acquire dependencies | |
run: | | |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake | |
- name: Build | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.arch}} | |
cmake -GNinja -S . -B build-release -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET% -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DBRISK_WEBGPU=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER="%LLVM_DIR%/bin/clang-cl.exe" -DCMAKE_C_COMPILER="%LLVM_DIR%/bin/clang-cl.exe" -DCMAKE_LINKER="%LLVM_DIR%/bin/lld-link.exe" | |
cmake --build build-release --target install | |
cmake -GNinja -S . -B build-debug -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET% -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DBRISK_WEBGPU=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER="%LLVM_DIR%/bin/clang-cl.exe" -DCMAKE_C_COMPILER="%LLVM_DIR%/bin/clang-cl.exe" -DCMAKE_LINKER="%LLVM_DIR%/bin/lld-link.exe" | |
cmake --build build-debug --target install | |
cd dist | |
cmake -E tar cJ "${{github.workspace}}/Brisk-${{github.ref_type == 'tag' && github.ref_name || github.sha}}-${{matrix.triplet}}.tar.xz" . | |
- name: Binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{matrix.triplet}} | |
path: | | |
Brisk-*.tar.xz | |
Brisk-Dependencies-*.7z | |
ubuntu-ninja-clang-x86_64: | |
runs-on: ubuntu-latest | |
needs: linux-deps | |
env: | |
VCPKG_DEFAULT_TRIPLET: x64-linux | |
VCPKG_DEFAULT_HOST_TRIPLET: x64-linux | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install prerequisites | |
run: | | |
sudo apt-get update && sudo apt-get install -y ninja-build mesa-vulkan-drivers vulkan-tools wget xorg-dev libgl-dev libgl1-mesa-dev libvulkan-dev autoconf autoconf-archive libxrandr-dev libxinerama-dev libxcursor-dev mesa-common-dev libx11-xcb-dev | |
wget -O - https://apt.llvm.org/llvm.sh | sudo bash -s - 19 | |
- name: Acquire dependencies | |
run: | | |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake | |
- name: Configure | |
run: | | |
cmake -GNinja -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DBRISK_LOG_TO_STDERR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_C_COMPILER=clang-19 | |
- name: Build | |
run: | | |
cmake --build build | |
- name: Test | |
run: | | |
WGPU_LONG_TIMEOUT=1 ctest --test-dir build --output-on-failure -E "window_autotests" | |
ubuntu-make-gcc-x86_64: | |
runs-on: ubuntu-24.04 | |
needs: linux-deps | |
env: | |
VCPKG_DEFAULT_TRIPLET: x64-linux | |
VCPKG_DEFAULT_HOST_TRIPLET: x64-linux | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install prerequisites | |
run: | | |
sudo apt-get update && sudo apt-get install -y gcc-14 g++-14 ninja-build mesa-vulkan-drivers vulkan-tools wget xorg-dev libgl-dev libgl1-mesa-dev libvulkan-dev autoconf autoconf-archive libxrandr-dev libxinerama-dev libxcursor-dev mesa-common-dev libx11-xcb-dev | |
- name: Acquire dependencies | |
run: | | |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake | |
- name: Configure | |
run: | | |
cmake -G"Unix Makefiles" -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DBRISK_LOG_TO_STDERR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_C_COMPILER=gcc-14 | |
- name: Build | |
run: | | |
cmake --build build | |
- name: Test | |
run: | | |
WGPU_LONG_TIMEOUT=1 ctest --test-dir build --output-on-failure -E "window_autotests" | |
windows-ninja-clang-x86-64: | |
runs-on: windows-latest | |
needs: windows-deps | |
env: | |
VCPKG_DEFAULT_TRIPLET: x64-windows-static-md | |
VCPKG_DEFAULT_HOST_TRIPLET: x64-windows-static-md | |
LLVM_DIR: C:/Program Files/LLVM | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install prerequisites | |
run: | | |
choco install ninja --no-progress -y | |
- name: Acquire dependencies | |
run: | | |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake | |
- name: Configure | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
cmake -GNinja -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET% -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DBRISK_WEBGPU=ON -DBRISK_LOG_TO_STDERR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe" -DCMAKE_C_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe" -DCMAKE_LINKER="C:/Program Files/LLVM/bin/lld-link.exe" | |
- name: Build | |
run: | | |
cmake --build build | |
- name: Test | |
run: | | |
ctest --test-dir build --output-on-failure | |
windows-vs-x86: | |
runs-on: windows-latest | |
needs: windows-deps | |
env: | |
VCPKG_DEFAULT_TRIPLET: x86-windows-static-md | |
VCPKG_DEFAULT_HOST_TRIPLET: x86-windows-static-md | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Acquire dependencies | |
run: | | |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake | |
- name: Configure | |
shell: cmd | |
run: | | |
cmake -G"Visual Studio 17 2022" -A Win32 -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET% -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DBRISK_WEBGPU=ON -DBRISK_LOG_TO_STDERR=ON | |
- name: Build | |
run: | | |
cmake --build build --config RelWithDebInfo | |
- name: Test | |
run: | | |
ctest --test-dir build --build-config RelWithDebInfo --output-on-failure | |
windows-vs-clangcl-x86_64: | |
runs-on: windows-latest | |
needs: windows-deps | |
env: | |
VCPKG_DEFAULT_TRIPLET: x64-windows-static-md | |
VCPKG_DEFAULT_HOST_TRIPLET: x64-windows-static-md | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Acquire dependencies | |
run: | | |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake | |
- name: Configure | |
shell: cmd | |
run: | | |
cmake -G"Visual Studio 17 2022" -A x64 -T ClangCL -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET% -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DBRISK_WEBGPU=ON -DBRISK_LOG_TO_STDERR=ON | |
- name: Build | |
run: | | |
cmake --build build --config RelWithDebInfo | |
- name: Test | |
run: | | |
ctest --test-dir build --build-config RelWithDebInfo --output-on-failure | |
macos-ninja-clang-arm64: | |
runs-on: macos-latest | |
needs: macos-deps | |
env: | |
VCPKG_DEFAULT_TRIPLET: arm64-osx | |
VCPKG_DEFAULT_HOST_TRIPLET: arm64-osx | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install prerequisites | |
run: | | |
brew install ninja autoconf automake autoconf-archive | |
git clone /~https://github.com/microsoft/vcpkg "$HOME/vcpkg" | |
$HOME/vcpkg/bootstrap-vcpkg.sh -disableMetrics | |
echo "VCPKG_INSTALLATION_ROOT=$HOME/vcpkg" >> $GITHUB_ENV | |
echo "$HOME/vcpkg" >> "$GITHUB_PATH" | |
- name: Acquire dependencies | |
run: | | |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake | |
- name: Configure | |
run: | | |
cmake -GNinja -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DCMAKE_OSX_ARCHITECTURES=arm64 -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DBRISK_LOG_TO_STDERR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
- name: Build | |
run: | | |
cmake --build build | |
- name: Test | |
run: | | |
ctest --test-dir build --output-on-failure | |
macos-ninja-clang-x86_64: | |
runs-on: macos-13 | |
needs: macos-deps | |
env: | |
VCPKG_DEFAULT_TRIPLET: x64-osx | |
VCPKG_DEFAULT_HOST_TRIPLET: x64-osx | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install prerequisites | |
run: | | |
brew install ninja autoconf automake autoconf-archive | |
- name: Acquire dependencies | |
run: | | |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake | |
- name: Configure | |
run: | | |
cmake -GNinja -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DCMAKE_OSX_ARCHITECTURES=x86_64 -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DBRISK_LOG_TO_STDERR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
- name: Build | |
run: | | |
cmake --build build | |
- name: Test | |
run: | | |
ctest --test-dir build --output-on-failure | |
upload-release: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
needs: [build-windows, build-linux, build-macos] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
merge-multiple: true | |
- name: List | |
run: | | |
ls -lR . | |
- name: Release | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
if: startsWith(github.ref, 'refs/tags/') | |
run: >- | |
gh release create --draft --notes "Draft Release" --title "Brisk ${{github.ref_name}}" | |
${{github.ref_name}} | |
Brisk-* |