[WIP] CI: handle required workflows when skipped #19414
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: 🪟 Windows | |
on: | |
push: | |
branches: | |
- "development" | |
pull_request: | |
concurrency: | |
group: ${{ github.ref }}-${{ github.head_ref }}-windows | |
cancel-in-progress: true | |
jobs: | |
skip_checks: | |
name: Analyze PR | |
runs-on: ubuntu-latest # does not need to be Windows | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Skip checks? | |
run: | | |
.github/workflows/scripts/check_diff.sh \ | |
${{ github.event.pull_request.head.ref }} \ | |
${{ github.event.pull_request.base.ref }} \ | |
${{ github.event.pull_request.head.repo.clone_url }} | |
outputs: | |
skip: ${{ env.SKIP_CHECKS }} | |
build_win_msvc: | |
name: MSVC C++17 w/o MPI | |
runs-on: windows-latest | |
needs: skip_checks | |
# disabled due to issues in #5230 | |
if: 0 | |
#if: ${{ github.event.pull_request.draft == false && needs.skip_checks.outputs.skip == 'false' }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Python | |
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/inputs_test_3d_gaussian_beam_picmi.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 | |
needs: skip_checks | |
if: ${{ github.event.pull_request.draft == false && needs.skip_checks.outputs.skip == 'false' }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Python | |
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/inputs_test_3d_gaussian_beam_picmi.py --diagformat=openpmd | |
if errorlevel 1 exit 1 |