Skip to content

Set up CTest

Set up CTest #17239

Workflow file for this run

name: 🪟 Windows
on: [push, pull_request]
concurrency:
group: ${{ github.ref }}-${{ github.head_ref }}-windows
cancel-in-progress: true
jobs:
build_win_msvc:
name: MSVC C++17 w/o MPI
runs-on: windows-latest
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: CCache Cache
uses: actions/cache@v4
# - once stored under a key, they become immutable (even if local cache path content changes)
# - for a refresh the key has to change, e.g., hash of a tracked file in the key
with:
path: |
~/.ccache
~/.cache/ccache
key: ccache-windows-winmsvc-${{ hashFiles('.github/workflows/windows.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-windows-winmsvc-${{ hashFiles('.github/workflows/windows.yml') }}-
ccache-windows-winmsvc-
- name: Build & Install
run: |
cmake -S . -B build `
-DCMAKE_BUILD_TYPE=Debug `
-DCMAKE_VERBOSE_MAKEFILE=ON `
-DWarpX_COMPUTE=NOACC `
-DWarpX_OPENPMD=ON `
-DWarpX_MPI=OFF `
-DWarpX_PYTHON=ON
if(!$?) { Exit $LASTEXITCODE }
cmake --build build --config Debug --parallel 4
if(!$?) { Exit $LASTEXITCODE }
python3 -m pip install --upgrade pip
if(!$?) { Exit $LASTEXITCODE }
python3 -m pip install --upgrade build packaging setuptools wheel
if(!$?) { Exit $LASTEXITCODE }
cmake --build build --config Debug --target install
if(!$?) { Exit $LASTEXITCODE }
cmake --build build --config Debug --target pip_install
if(!$?) { Exit $LASTEXITCODE }
- name: Test
run: |
$env:PATH += ';C:/Program Files (x86)/WarpX/bin/'
python3 Examples\Tests\gaussian_beam\PICMI_inputs_gaussian_beam.py
# JSON writes are currently very slow (50min) with MSVC
# --diagformat=openpmd
build_win_clang:
name: Clang C++17 w/ OMP w/o MPI
runs-on: windows-2019
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.8'
- uses: seanmiddleditch/gha-setup-ninja@master
- name: CCache Cache
uses: actions/cache@v4
# - once stored under a key, they become immutable (even if local cache path content changes)
# - for a refresh the key has to change, e.g., hash of a tracked file in the key
with:
path: |
~/.ccache
~/.cache/ccache
key: ccache-windows-winclang-${{ hashFiles('.github/workflows/windows.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-windows-winclang-${{ hashFiles('.github/workflows/windows.yml') }}-
ccache-windows-winclang-
- name: Build & Install
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\vc\Auxiliary\build\vcvarsall.bat" x64
cmake -S . -B build ^
-G "Ninja" ^
-DCMAKE_C_COMPILER=clang-cl ^
-DCMAKE_CXX_COMPILER=clang-cl ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_VERBOSE_MAKEFILE=ON ^
-DWarpX_COMPUTE=OMP ^
-DWarpX_EB=OFF ^
-DWarpX_PYTHON=ON ^
-DWarpX_MPI=OFF ^
-DWarpX_OPENPMD=ON
if errorlevel 1 exit 1
cmake --build build --config Release --parallel 4
if errorlevel 1 exit 1
cmake --build build --config Release --target install
if errorlevel 1 exit 1
python3 -m pip install --upgrade pip
if errorlevel 1 exit 1
python3 -m pip install --upgrade build packaging setuptools wheel
if errorlevel 1 exit 1
python3 -m pip install --upgrade -r requirements.txt
if errorlevel 1 exit 1
cmake --build build --config Release --target pip_install
if errorlevel 1 exit 1
- name: Test
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\vc\Auxiliary\build\vcvarsall.bat" x64
set "PATH=C:/Program Files (x86)/WarpX/bin/;%PATH%"
python3 Examples\Tests\gaussian_beam\PICMI_inputs_gaussian_beam.py --diagformat=openpmd
if errorlevel 1 exit 1