Skip to content

enumerate adapters and print out #1599

enumerate adapters and print out

enumerate adapters and print out #1599

name: C++ Build
on:
push:
branches-ignore:
- "master"
jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- uses: ammaraskar/sphinx-action@master
with:
docs-folder: "docs/"
- uses: ammaraskar/sphinx-action@master
with:
docs-folder: "docs/"
pre-build-command: "apt-get --allow-releaseinfo-change update -y && apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended"
build-command: "make latexpdf"
- uses: actions/upload-artifact@v4
with:
name: DocumentationHTML
path: docs/_build/html/
- uses: actions/upload-artifact@v4
with:
name: DocumentationPDF
path: docs/_build/latex/agave.pdf
docs_pythonclient:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- uses: ammaraskar/sphinx-action@master
with:
pre-build-command: "pip install -e agave_pyclient/"
docs-folder: "agave_pyclient/docs/"
- uses: ammaraskar/sphinx-action@master
with:
docs-folder: "agave_pyclient/docs/"
pre-build-command: "pip install -e agave_pyclient/ && apt-get --allow-releaseinfo-change update -y && apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended"
build-command: "make latexpdf"
- uses: actions/upload-artifact@v4
with:
name: DocumentationPythonClientHTML
path: agave_pyclient/docs/_build/html/
- uses: actions/upload-artifact@v4
with:
name: DocumentationPythonClientPDF
path: agave_pyclient/docs/_build/latex/agave_pyclient.pdf
cmake-build:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
artifact: agave-linux
- os: windows-2019
# Revert to windows-latest after: https://github.com/actions/runner-images/issues/7662
artifact: agave-win
# note macos-14 is arm64 and macos-13 is x86_64
- os: macos-14
artifact: agave-macos-arm64
- os: macos-13
artifact: agave-macos-x86_64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: 6.5.3
modules: qtwebsockets qtimageformats
- name: macos install deps
if: contains(matrix.os, 'macos')
env:
CC: clang
CXX: clang++
run: |
export MACOSX_DEPLOYMENT_TARGET=10.15
brew install spdlog glm libtiff nasm zstd ninja
- name: macos build and test
if: contains(matrix.os, 'macos')
env:
CC: clang
CXX: clang++
run: |
export MACOSX_DEPLOYMENT_TARGET=10.15
mkdir ./build
cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build . --target agave_test --config Release
cmake --build . --config Release
cpack -D CPACK_PACKAGE_FILE_NAME=${{ matrix.artifact }}
shell: bash
- name: Upload mac artifact
if: contains(matrix.os, 'macos')
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact }}
path: ./build/${{ matrix.artifact }}.dmg
- name: linux install deps
if: matrix.os == 'ubuntu-latest'
env:
CC: gcc
CXX: g++
run: |
sudo apt-get install ninja-build libspdlog-dev libglm-dev libgl1-mesa-dev libegl1-mesa-dev mesa-vulkan-drivers libtiff-dev libzstd-dev nasm
- name: linux build and test
if: matrix.os == 'ubuntu-latest'
env:
CC: gcc-10
CXX: g++-10
run: |
mkdir ./build
cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build . --target agave_test --config Release
cmake --build . --target install --config Release
shell: bash
- name: windows install ninja
if: matrix.os == 'windows-2019'
run: |
choco install ninja
- name: Configure MSVC console (Windows)
if: matrix.os == 'windows-2019'
uses: ilammy/msvc-dev-cmd@v1
- name: windows install deps
if: matrix.os == 'windows-2019'
env:
vc_arch: "x64"
CXX: cl.exe
CC: cl.exe
run: |
vcpkg install --triplet x64-windows tiff glm zlib libjpeg-turbo liblzma spdlog zstd eigen3
- name: windows get nasm
if: matrix.os == 'windows-2019'
uses: ilammy/setup-nasm@v1
- name: Remove bad Strawberry Perl patch binary in search path
# https://github.com/actions/runner-images/issues/5459#issuecomment-1532856844
if: matrix.os == 'windows-2019'
run: del C:\Strawberry\c\bin\patch.EXE
- name: windows build and test
if: matrix.os == 'windows-2019'
env:
vc_arch: "x64"
CXX: cl.exe
CC: cl.exe
run: |
mkdir build
cd build
cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE="%VCPKG_INSTALLATION_ROOT%\scripts\buildsystems\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --parallel --target agave_test --config Release
cmake --build . --parallel --config Release
cpack -D CPACK_PACKAGE_FILE_NAME=${{ matrix.artifact }}
shell: cmd
- name: Upload windows artifact
if: matrix.os == 'windows-2019'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact }}
path: ./build/${{ matrix.artifact }}.exe
lint-and-test-webclient:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- uses: actions/setup-node@v4
with:
node-version: 20
registry-url: https://registry.npmjs.org/
- run: |
cd webclient
npm ci
npm run lint
npm run typeCheck
npm run test --if-present
lint-and-test-pyclient:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
cd agave_pyclient
pip install .[test]
- name: Lint with flake8
run: |
cd agave_pyclient
flake8 agave_pyclient --count --verbose --show-source --statistics
black --check --exclude vendor agave_pyclient
pytest agave_pyclient/tests/