[WIP] CI: handle required workflows when skipped #15158
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: 🐧 In Situ Vis | |
on: | |
push: | |
branches: | |
- "development" | |
pull_request: | |
concurrency: | |
group: ${{ github.ref }}-${{ github.head_ref }}-insituvis | |
cancel-in-progress: true | |
jobs: | |
skip_checks: | |
name: Analyze PR | |
runs-on: ubuntu-latest | |
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 }} | |
sensei: | |
name: SENSEI | |
runs-on: ubuntu-20.04 | |
needs: skip_checks | |
if: ${{ github.event.pull_request.draft == false && needs.skip_checks.outputs.skip == 'false' }} | |
env: | |
CXX: clang++ | |
CC: clang | |
CXXFLAGS: "-Werror -Wshadow -Woverloaded-virtual -Wunreachable-code -Wno-error=pass-failed" | |
CMAKE_GENERATOR: Ninja | |
CMAKE_PREFIX_PATH: /root/install/sensei/v4.0.0/lib64/cmake | |
OMP_NUM_THREADS: 1 | |
container: | |
image: senseiinsitu/ci:fedora35-amrex-20220613 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup cmake | |
uses: jwlawson/actions-setup-cmake@v2 | |
- name: Configure | |
run: | | |
cmake -S . -B build \ | |
-DWarpX_SENSEI=ON \ | |
-DWarpX_COMPUTE=NOACC | |
- name: Build | |
run: | | |
cmake --build build -j 4 | |
ascent: | |
name: Ascent | |
runs-on: ubuntu-20.04 | |
needs: skip_checks | |
if: ${{ github.event.pull_request.draft == false && needs.skip_checks.outputs.skip == 'false' }} | |
env: | |
CXX: g++ | |
CC: gcc | |
CMAKE_PREFIX_PATH: /ascent/install/lib/cmake/ | |
OMP_NUM_THREADS: 1 | |
container: | |
image: alpinedav/ascent:0.9.2 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Configure | |
run: | | |
. /ascent_docker_setup_env.sh | |
cmake -S . -B build \ | |
-DWarpX_ASCENT=ON \ | |
-DWarpX_COMPUTE=NOACC | |
- name: Build | |
run: | | |
. /ascent_docker_setup_env.sh | |
cmake --build build -j 4 | |
- name: Test | |
run: | | |
cp Examples/Physics_applications/laser_acceleration/inputs_base_3d . | |
cp Examples/Physics_applications/laser_acceleration/3d_ascent_actions.yaml ascent_actions.yaml | |
mpiexec -n 2 ./build/bin/warpx.3d \ | |
inputs_base_3d \ | |
max_step = 40 \ | |
diag1.intervals = 30:40:10 \ | |
diag1.format = ascent | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ascent-test-artifacts | |
path: | | |
*.png | |
conduit_* | |
if-no-files-found: error | |
catalyst: | |
name: Catalyst | |
runs-on: ubuntu-22.04 | |
needs: skip_checks | |
if: ${{ github.event.pull_request.draft == false && needs.skip_checks.outputs.skip == 'false' }} | |
env: | |
CXX: g++ | |
CC: gcc | |
CMAKE_PREFIX_PATH: "/opt/conduit:/opt/catalyst" | |
CATALYST_DEBUG: 1 | |
CATALYST_IMPLEMENTATION_PATHS: /opt/paraview/lib/catalyst | |
OMP_NUM_THREADS: 1 | |
# Container build scripts: | |
# https://gitlab.kitware.com/christos.tsolakis/catalyst-amrex-docker-images | |
container: | |
image: kitware/paraview:ci-catalyst-amrex-warpx-20240828 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Configure | |
run: | | |
cmake -S . -B build \ | |
-DWarpX_DIMS="2;3" \ | |
-DWarpX_CATALYST=ON | |
- name: Build | |
run: | | |
cmake --build build -j 10 | |
- name: 2D Test | |
run: | | |
cp Examples/Tests/field_ionization/inputs_test_2d_ionization_lab . | |
cp Examples/Tests/field_ionization/catalyst_pipeline.py . | |
mpiexec -n 2 ./build/bin/warpx.2d \ | |
inputs_test_2d_ionization_lab \ | |
catalyst.script_paths = catalyst_pipeline.py\ | |
catalyst.implementation = paraview\ | |
diag1.intervals = 16\ | |
diag1.species = "electrons ions"\ | |
diag1.format = catalyst | |
- name: 3D Test | |
run: | | |
cp Examples/Tests/electrostatic_sphere/inputs_base_3d . | |
cp Examples/Tests/electrostatic_sphere/catalyst_pipeline.py . | |
mpiexec -n 2 ./build/bin/warpx.3d \ | |
inputs_base_3d \ | |
catalyst.script_paths = catalyst_pipeline.py \ | |
catalyst.implementation = paraview \ | |
diagnostics.diags_names = diag1 \ | |
diag1.format = catalyst\ | |
diag1.intervals = 3 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: catalyst-test-artifacts | |
path: | | |
datasets/*.png | |
if-no-files-found: error |