long check #604
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: "long check" | |
on: | |
workflow_dispatch: # allows manual triggering | |
schedule: | |
- cron: "0 0 * * *" # runs daily at 00:00 | |
jobs: | |
check_new_commit: | |
runs-on: ubuntu-latest | |
outputs: | |
nb_commits: ${{ steps.new_commits.outputs.nb_commits }} | |
steps: | |
- uses: actions/checkout@v4 | |
- id: new_commits | |
run: echo "nb_commits=$(git log --oneline --since '24 hours ago' | wc -l)" >> $GITHUB_OUTPUT | |
# | |
# Check samurai with clang-tidy | |
# | |
######################################################### | |
clang-tidy-check: | |
needs: check_new_commit | |
if: needs.check_new_commit.outputs.nb_commits > 0 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/ccache | |
~/micromamba-root/envs/samurai-env | |
key: clang-tidy | |
- name: Mamba and samurai env installation | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: conda/environment.yml | |
environment-name: samurai-env | |
cache-environment: true | |
- name: clang-tidy installation | |
shell: bash -l {0} | |
run: | | |
conda install -y clang-tools cxx-compiler clang clangxx | |
pip install compdb | |
- name: Configure | |
shell: bash -l {0} | |
run: | | |
cmake . -Bbuild -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Debug -DBUILD_DEMOS=ON | |
compdb -p build list > compile_commands.json | |
- name: run clang-tidy on samurai | |
shell: bash -l {0} | |
run: | | |
run-clang-tidy | |
# | |
# Check conan build | |
# | |
######################################################### | |
conan: | |
needs: check_new_commit | |
if: needs.check_new_commit.outputs.nb_commits > 0 | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- windows-2022 | |
- ubuntu-22.04 | |
- macos-12 | |
compiler: | |
# - llvm | |
- gcc | |
CMAKE_GENERATOR: | |
- "Ninja Multi-Config" | |
include: | |
- os: windows-2022 | |
compiler: msvc | |
CMAKE_GENERATOR: "Visual Studio 17 2022" | |
# exclude: | |
# - os: windows-2022 | |
# compiler: llvm | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.conan/ | |
~/.cache/ccache | |
~/.cache/pip | |
~/Library/Caches/ccache | |
C:\Users\runneradmin\cmake | |
C:\Users\runneradmin\AppData\Local\ccache | |
key: conan-${{ runner.os }}-${{ matrix.compiler }}-${{ hashFiles('./conanfile.py')}} | |
restore-keys: | | |
conan-${{ runner.os }}-${{ matrix.compiler }}- | |
- name: configure Pagefile | |
if: runner.os == 'Windows' | |
uses: al-cheb/configure-pagefile-action@v1.2 | |
with: | |
minimum-size: 16GB | |
maximum-size: 16GB | |
disk-root: "C:" | |
- name: Setup Cpp | |
uses: aminya/setup-cpp@v0.26.2 | |
with: | |
compiler: ${{ matrix.compiler }} | |
vcvarsall: ${{ contains(matrix.os, 'windows' )}} | |
cmake: true | |
ninja: true | |
conan: true | |
vcpkg: false | |
ccache: false | |
clangtidy: false | |
task: false | |
cppcheck: false | |
gcovr: false | |
opencppcoverage: false | |
# - name: Information about ccache | |
# run: | | |
# ccache -s -v | |
- name: Configure CMake | |
run: | | |
cmake . -B ./build -G "${{matrix.CMAKE_GENERATOR}}" -DCMAKE_BUILD_TYPE=Release -DENABLE_CONAN_OPTION=ON -DBUILD_TESTS=ON -DBUILD_DEMOS=ON | |
- name: Build | |
run: | | |
cmake --build ./build --config Release | |
- name: Install hdf5 with brew | |
if: runner.os == 'Macos' | |
env: | |
ARCHFLAGS: "-arch x86_64" | |
run: | | |
brew install hdf5@1.10 | |
export HDF5_DIR=/usr/local/opt/hdf5@1.10 | |
pip3 install pytest h5py | |
- name: Install Python dependencies | |
if: runner.os != 'Macos' | |
run: | | |
pip3 install pytest h5py | |
- name: Unix test | |
if: runner.os != 'Windows' | |
run: | | |
./build/tests/Release/test_samurai_lib | |
cd tests; pytest --h5diff | |
- name: Windows test | |
if: runner.os == 'Windows' | |
run: | | |
.\build\tests\Release\test_samurai_lib | |
# cd tests; pytest -s --h5diff | |
# | |
# Check vcpkg build | |
# | |
######################################################### | |
vcpkg: | |
needs: check_new_commit | |
if: needs.check_new_commit.outputs.nb_commits > 0 | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- windows-2022 | |
- ubuntu-22.04 | |
- macos-12 | |
compiler: | |
# - llvm | |
- gcc | |
CMAKE_GENERATOR: | |
- "Ninja Multi-Config" | |
include: | |
- os: windows-2022 | |
compiler: msvc | |
CMAKE_GENERATOR: "Visual Studio 17 2022" | |
# exclude: | |
# - os: windows-2022 | |
# compiler: llvm | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/vcpkg | |
~/.cache/ccache | |
~/.cache/pip | |
~/Library/Caches/ccache | |
./build/vcpkg_installed | |
${{ env.CONAN_USER_HOME }} | |
${{ env.HOME }}/.cache/vcpkg/archives | |
${{ env.XDG_CACHE_HOME }}/vcpkg/archives | |
${{ env.LOCALAPPDATA }}\vcpkg\archives | |
${{ env.APPDATA }}\vcpkg\archives | |
C:\Users\runneradmin\cmake | |
C:\Users\runneradmin\AppData\Local\ccache | |
key: vcpkg-${{ runner.os }}-${{ matrix.compiler }}-${{ hashFiles('./vcpkg.json')}} | |
restore-keys: | | |
vcpkg-${{ runner.os }}-${{ matrix.compiler }}-${{ hashFiles('./vcpkg.json') }} | |
vcpkg-${{ runner.os }}-${{ matrix.compiler }}- | |
- name: Setup Cpp | |
uses: aminya/setup-cpp@v0.26.2 | |
with: | |
compiler: ${{ matrix.compiler }} | |
vcvarsall: ${{ contains(matrix.os, 'windows' )}} | |
cmake: true | |
ninja: true | |
vcpkg: true | |
ccache: false | |
clangtidy: false | |
task: false | |
cppcheck: false | |
gcovr: false | |
opencppcoverage: false | |
# - name: Information about ccache | |
# run: | | |
# ccache -s -v | |
- name: Configure CMake | |
run: | | |
cmake -B ./build -S . -G "${{matrix.CMAKE_GENERATOR}}" -DENABLE_VCPKG=ON -DBUILD_TESTS=ON -DBUILD_DEMOS=ON | |
- name: Build | |
run: | | |
cmake --build ./build --config Release | |
- name: Install hdf5 with brew | |
if: runner.os == 'Macos' | |
env: | |
ARCHFLAGS: "-arch x86_64" | |
run: | | |
brew install hdf5@1.10 | |
export HDF5_DIR=/usr/local/opt/hdf5@1.10 | |
pip3 install pytest h5py | |
- name: Install Python dependencies | |
if: runner.os != 'Macos' | |
run: | | |
pip3 install pytest h5py | |
- name: Unix test | |
if: runner.os != 'Windows' | |
run: | | |
./build/tests/Release/test_samurai_lib | |
cd tests; pytest --h5diff | |
- name: Windows test | |
if: runner.os == 'Windows' | |
run: | | |
.\build\tests\Release\test_samurai_lib | |
cd tests; pytest -s --h5diff | |
# | |
# Check windows build using mamba | |
# | |
######################################################### | |
win-mamba: | |
needs: check_new_commit | |
if: needs.check_new_commit.outputs.nb_commits > 0 | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Mamba and samurai env installation | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: conda/environment.yml | |
environment-name: samurai-env | |
cache-environment: true | |
- name: micromamba informations | |
shell: bash -l {0} | |
run: | | |
micromamba info | |
micromamba list | |
- name: Configure | |
shell: bash -l {0} | |
run: | | |
cmake \ | |
. \ | |
-Bbuild \ | |
-G "Visual Studio 17 2022" \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DBUILD_DEMOS=ON \ | |
-DBUILD_TESTS=ON | |
- name: Build | |
shell: bash -l {0} | |
run: | | |
cmake --build ./build --config Release | |
- name: Windows test | |
shell: bash -l {0} | |
run: | | |
./build/tests/Release/test_samurai_lib | |
cd tests; pytest -s --h5diff |