Skip to content

Xiz/cldchem

Xiz/cldchem #618

Workflow file for this run

name: Linux-Build
on:
push:
branches:
- main
pull_request:
branches:
- main
types: [opened, synchronize, reopened, ready_for_review]
schedule: # run build job at 6am UTC every other week on Saturday
- cron: '0 6 */14 * 6'
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
BUILD_FLAG: "\"-fprofile-arcs -ftest-coverage\""
ACCOUNT: chengcli
jobs:
style-checker:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by ${{runner.name}}"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- run: echo "🖥️ The workspace, ${{ github.workspace }}, is now ready to test your code on the runner."
- name: Install cpplint
run: pip install cpplint
- uses: actions/checkout@v3
with:
lfs: false
- name: Run cpplint
run: ./tools/check_style.sh
build-cubed-sphere-2d:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: style-checker
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y lcov libnetcdf-dev libpnetcdf-dev libeigen3-dev libmpich-dev
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip install -r requirements.txt
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DTASK=exo2 -DCMAKE_CXX_FLAGS=${{ env.BUILD_FLAG }} -DCMAKE_C_FLAGS=${{ env.BUILD_FLAG }}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config Debug -- -j2
build-cubed-sphere-3d:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: style-checker
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y lcov libnetcdf-dev libpnetcdf-dev libeigen3-dev libmpich-dev
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip install -r requirements.txt
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DTASK=exo3 -DCMAKE_CXX_FLAGS=${{ env.BUILD_FLAG }} -DCMAKE_C_FLAGS=${{ env.BUILD_FLAG }}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config Debug -- -j2
build-non-hydrostatic:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: style-checker
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y lcov libeigen3-dev
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip install -r requirements.txt
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=${{ env.BUILD_FLAG }} -DCMAKE_C_FLAGS=${{ env.BUILD_FLAG }}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config Debug -- -j2
- name: Test
working-directory: ${{github.workspace}}/build/tests
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}}
- name: Generate coverage report
working-directory: ${{github.workspace}}/build/tests
run: |
lcov --capture --directory . --output-file coverage.info
lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter out system files
lcov --remove coverage.info '*/_deps/*' --output-file coverage.info # filter out dependent library files
lcov --list coverage.info
- uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
files: ${{github.workspace}}/build/tests/coverage.info
fail_ci_if_error: true
functionalities: fix
build-hydrostatic:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: style-checker
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y lcov libeigen3-dev
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip install -r requirements.txt
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=${{ env.BUILD_FLAG }} -DCMAKE_C_FLAGS=${{ env.BUILD_FLAG }} -DHYDROSTATIC=ON
- name: build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j2
- name: Test
working-directory: ${{github.workspace}}/build/tests
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}}
- name: Generate coverage report
working-directory: ${{github.workspace}}/build/tests
run: |
lcov --capture --directory . --output-file coverage.info
lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter out system files
lcov --remove coverage.info '*/_deps/*' --output-file coverage.info # filter out dependent library files
lcov --list coverage.info
- uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
files: ${{github.workspace}}/build/tests/coverage.info
fail_ci_if_error: true
functionalities: fix
build-vapor2-cloud4:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: style-checker
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y lcov libeigen3-dev
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip install -r requirements.txt
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Debug -DNVAPOR=2 -DNCLOUD=4
-DCMAKE_CXX_FLAGS=${{ env.BUILD_FLAG }} -DCMAKE_C_FLAGS=${{ env.BUILD_FLAG }}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j2
- name: Test
working-directory: ${{github.workspace}}/build/tests
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}}
- name: Generate coverage report
working-directory: ${{github.workspace}}/build/tests
run: |
lcov --capture --directory . --output-file coverage.info
lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter out system files
lcov --remove coverage.info '*/_deps/*' --output-file coverage.info # filter out dependent library files
lcov --list coverage.info
- uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
files: ${{github.workspace}}/build/tests/coverage.info
fail_ci_if_error: true
functionalities: fix
build-vapor2-cloud5:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: style-checker
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y lcov libeigen3-dev
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip install -r requirements.txt
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Debug -DNVAPOR=2 -DNCLOUD=5
-DCMAKE_CXX_FLAGS=${{ env.BUILD_FLAG }} -DCMAKE_C_FLAGS=${{ env.BUILD_FLAG }}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j2
- name: Test
working-directory: ${{github.workspace}}/build/tests
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}}
- name: Generate coverage report
working-directory: ${{github.workspace}}/build/tests
run: |
lcov --capture --directory . --output-file coverage.info
lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter out system files
lcov --remove coverage.info '*/_deps/*' --output-file coverage.info # filter out dependent library files
lcov --list coverage.info
- uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
files: ${{github.workspace}}/build/tests/coverage.info
fail_ci_if_error: true
functionalities: fix
build-vapor1-cloud1-legacy:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: style-checker
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y lcov libeigen3-dev
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip install -r requirements.txt
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Debug -DNVAPOR=1 -DNCLOUD=1 -DNPHASE_LEGACY=2
-DCMAKE_CXX_FLAGS=${{ env.BUILD_FLAG }} -DCMAKE_C_FLAGS=${{ env.BUILD_FLAG }}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j2
- name: Test
working-directory: ${{github.workspace}}/build/tests
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}}
- name: Generate coverage report
working-directory: ${{github.workspace}}/build/tests
run: |
lcov --capture --directory . --output-file coverage.info
lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter out system files
lcov --remove coverage.info '*/_deps/*' --output-file coverage.info # filter out dependent library files
lcov --list coverage.info
- uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
files: ${{github.workspace}}/build/tests/coverage.info
fail_ci_if_error: true
functionalities: fix
generate-ktable-with-netcdf:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: style-checker
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libnetcdf-dev libeigen3-dev
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip install -r requirements.txt
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -DTASK=ktable_earth -DACCOUNT=${{env.ACCOUNT}} -DTOKEN=${{secrets.ACCESS_TOKEN}} -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -B ${{github.workspace}}/build-netcdf
- name: build
# Build your program with the given configuration
run: |
cmake --build ${{github.workspace}}/build-netcdf --config ${{env.BUILD_TYPE}} -- -j2
- name: test generating ktable
working-directory: ${{github.workspace}}/build-netcdf/bin
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: python ./run_ktable_earth.py
straka-2d:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: build-non-hydrostatic
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y lcov libnetcdf-dev libeigen3-dev nco
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip install -r requirements.txt
- name: check if artifact exists
run: echo "ARTIFACT_EXISTS=$(./tools/check_artifact.sh robert_output.nc)" >> $GITHUB_ENV
- uses: actions/[email protected]
if: env.ARTIFACT_EXISTS == 'true'
with:
name: straka_output.nc
path: ${{github.workspace}}/examples/2019-Li-snap/
- name: fetch the needed lfs file if the artifact does not exist
if: env.ARTIFACT_EXISTS == 'false'
run: git lfs pull -I examples/2019-Li-snap/straka_output.nc
- name: create build directory
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DTASK=straka
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j4
- name: run simulation
working-directory: ${{github.workspace}}/build/bin
run: ./straka.release -i straka.inp
- name: combile outputs
working-directory: ${{github.workspace}}/build/bin
run: python3 combine.py -o test
- name: compare result
run: >
python3 ${{github.workspace}}/examples/2019-Li-snap/test_straka.py
${{github.workspace}}/build/bin/straka-test-main.nc
${{github.workspace}}/examples/2019-Li-snap/straka_output.nc
- uses: actions/upload-artifact@v3
if: env.ARTIFACT_EXISTS == 'false'
with:
name: straka_output.nc
path: ${{github.workspace}}/examples/2019-Li-snap/straka_output.nc
robert-2d:
if: github.event.pull_request.draft == false
runs-on: [self-hosted, Linux, 8core]
needs: build-non-hydrostatic
steps:
- uses: actions/checkout@v3
with:
lfs: false
- name: check if artifact exists
run: echo "ARTIFACT_EXISTS=$(./tools/check_artifact.sh robert_output.nc)" >> $GITHUB_ENV
- uses: actions/[email protected]
if: env.ARTIFACT_EXISTS == 'true'
with:
name: robert_output.nc
path: ${{github.workspace}}/examples/2019-Li-snap/
- name: fetch the needed lfs file
if: env.ARTIFACT_EXISTS == 'false'
run: git lfs pull -I examples/2019-Li-snap/robert_output.nc
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DTASK=robert
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j8
- name: run simulation
working-directory: ${{github.workspace}}/build/bin
run: mpiexec -n 8 ./robert.release -i robert2d.inp
- name: combile outputs
working-directory: ${{github.workspace}}/build/bin
run: python3 combine.py -o test
- name: compare result
run: >
python3 ${{github.workspace}}/examples/2019-Li-snap/test_robert.py
${{github.workspace}}/build/bin/robert-test-main.nc
${{github.workspace}}/examples/2019-Li-snap/robert_output.nc
- uses: actions/upload-artifact@v3
if: env.ARTIFACT_EXISTS == 'false'
with:
name: robert_output.nc
path: ${{github.workspace}}/examples/2019-Li-snap/robert_output.nc
robert-3d:
if: github.event.pull_request.draft == false
runs-on: [self-hosted, Linux, 16core]
needs: build-non-hydrostatic
steps:
- uses: actions/checkout@v3
with:
lfs: false
- name: check if artifact exists
run: echo "ARTIFACT_EXISTS=$(./tools/check_artifact.sh robert3d_output.nc)" >> $GITHUB_ENV
- uses: actions/[email protected]
if: env.ARTIFACT_EXISTS == 'true'
with:
name: robert3d_output.nc
path: ${{github.workspace}}/examples/2019-Li-snap/
- name: fetch the needed lfs file
if: env.ARTIFACT_EXISTS == 'false'
run: git lfs pull -I examples/2019-Li-snap/robert3d_output.nc
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DTASK=robert
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j8
- name: run simulation
working-directory: ${{github.workspace}}/build/bin
run: mpiexec -n 8 ./robert.release -i robert3d.inp
- name: combile outputs
working-directory: ${{github.workspace}}/build/bin
run: python3 combine.py -o test
- name: compare result
run: >
python3 ${{github.workspace}}/examples/2019-Li-snap/test_robert.py
${{github.workspace}}/build/bin/robert-test-main.nc
${{github.workspace}}/examples/2019-Li-snap/robert3d_output.nc
- uses: actions/upload-artifact@v3
if: env.ARTIFACT_EXISTS == 'false'
with:
name: robert3d_output.nc
path: ${{github.workspace}}/examples/2019-Li-snap/robert3d_output.nc
bryan-2d:
if: github.event.pull_request.draft == false
runs-on: [self-hosted, Linux, 4core]
needs: [straka-2d]
steps:
- uses: actions/checkout@v3
with:
lfs: false
- name: check if artifact exists
run: echo "ARTIFACT_EXISTS=$(./tools/check_artifact.sh bryan_output.nc)" >> $GITHUB_ENV
- uses: actions/[email protected]
if: env.ARTIFACT_EXISTS == 'true'
with:
name: bryan_output.nc
path: ${{github.workspace}}/examples/2019-Li-snap/
- name: fetch the needed lfs file
if: env.ARTIFACT_EXISTS == 'false'
run: git lfs pull -I examples/2019-Li-snap/bryan_output.nc
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DTASK=bryan
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j4
- name: run simulation
working-directory: ${{github.workspace}}/build/bin
run: mpiexec -n 4 ./bryan.release -i bryan.inp
- name: combile outputs
working-directory: ${{github.workspace}}/build/bin
run: python3 combine.py -o test
- name: compare result
run: >
${{github.workspace}}/examples/2019-Li-snap/test_bryan.py
${{github.workspace}}/build/bin/bryan-test-main.nc
${{github.workspace}}/examples/2019-Li-snap/bryan_output.nc
- uses: actions/upload-artifact@v3
if: env.ARTIFACT_EXISTS == 'false'
with:
name: bryan_output.nc
path: ${{github.workspace}}/examples/2019-Li-snap/bryan_output.nc
shallow-xy:
if: github.event.pull_request.draft == false
runs-on: [self-hosted, Linux, 4core]
needs: build-non-hydrostatic
steps:
- uses: actions/checkout@v3
with:
lfs: false
- name: check if artifact exists
run: echo "ARTIFACT_EXISTS=$(./tools/check_artifact.sh swxy_output.nc)" >> $GITHUB_ENV
- uses: actions/[email protected]
if: env.ARTIFACT_EXISTS == 'true'
with:
name: swxy_output.nc
path: ${{github.workspace}}/examples/2020-Li-polar-vortex/
- name: fetch the needed lfs file
if: env.ARTIFACT_EXISTS == 'false'
run: git lfs pull -I examples/2020-Li-polar-vortex/swxy_output.nc
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DNETCDF=ON -DTASK=vortex
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j4
- name: run simulation
working-directory: ${{github.workspace}}/build/bin
run: mpiexec -n 4 ./shallow_xy.release -i shallow_water.inp
- name: combile outputs
working-directory: ${{github.workspace}}/build/bin
run: python3 combine.py -o test
- name: compare result
run: >
python3 ${{github.workspace}}/examples/2020-Li-polar-vortex/test_shallow_xy.py
${{github.workspace}}/build/bin/sw-test-main.nc
${{github.workspace}}/examples/2020-Li-polar-vortex/swxy_output.nc
- uses: actions/upload-artifact@v3
if: env.ARTIFACT_EXISTS == 'false'
with:
name: swxy_output.nc
path: ${{github.workspace}}/examples/2020-Li-polar-vortex/swxy_output.nc
polar-vortex:
if: github.event.pull_request.draft == false
runs-on: [self-hosted, Linux, 16core]
needs: build-non-hydrostatic
steps:
- uses: actions/checkout@v3
with:
lfs: false
- name: check if artifact exists
run: echo "ARTIFACT_EXISTS=$(./tools/check_artifact.sh intruder_output.nc)" >> $GITHUB_ENV
- uses: actions/[email protected]
if: env.ARTIFACT_EXISTS == 'true'
with:
name: intruder_output.nc
path: ${{github.workspace}}/examples/2020-Li-polar-vortex/
- name: fetch the needed lfs file
if: env.ARTIFACT_EXISTS == 'false'
run: git lfs pull -I examples/2020-Li-polar-vortex/intruder_output.nc
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DTASK=vortex
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j8
- name: run simulation
working-directory: ${{github.workspace}}/build/bin
run: mpiexec -n 12 ./polar_vortex.release -i fig_g_intruder.inp
- name: combile outputs
working-directory: ${{github.workspace}}/build/bin
run: python3 combine.py -o test
- name: compare result
run: >
python3 ${{github.workspace}}/examples/2020-Li-polar-vortex/test_polar_vortex.py
${{github.workspace}}/build/bin/intruder-test-main.nc
${{github.workspace}}/examples/2020-Li-polar-vortex/intruder_output.nc
- uses: actions/upload-artifact@v3
if: env.ARTIFACT_EXISTS == 'false'
with:
name: intruder_output.nc
path: ${{github.workspace}}/examples/2020-Li-polar-vortex/intruder_output.nc
juno-mwr:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: build-hydrostatic
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libnetcdf-dev libeigen3-dev libcfitsio-dev nco
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip3 install -r requirements.txt
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DTASK=juno
- name: build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j2
- name: run simulation
working-directory: ${{github.workspace}}/build/bin
run: ./juno_mwr.release -i juno_mwr.inp
- name: combile outputs
working-directory: ${{github.workspace}}/build/bin
run: python3 combine.py -o test
- name: Test
working-directory: ${{github.workspace}}/examples/2024-JHu-juno-mwr
run: echo "cheers"
cubed-blast:
if: github.event.pull_request.draft == false
runs-on: [self-hosted, Linux, 8core]
needs: build-cubed-sphere-2d
steps:
- uses: actions/checkout@v3
with:
lfs: false
- name: install python modules
run: pip3 install -r requirements.txt
- name: check if artifact exists
run: echo "ARTIFACT_EXISTS=$(./tools/check_artifact.sh test_blast_output.nc)" >> $GITHUB_ENV
- uses: actions/[email protected]
if: env.ARTIFACT_EXISTS == 'true'
with:
name: test_blast_output.nc
path: ${{github.workspace}}/examples/2023-Chen-exo3/
- name: fetch the needed lfs file
if: env.ARTIFACT_EXISTS == 'false'
run: git lfs pull -I examples/2023-Chen-exo3/test_blast_output.nc
- name: create build directory
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DNETCDF=ON -DTASK=exo2
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j4
- name: run simulation
working-directory: ${{github.workspace}}/build/bin
run: mpiexec -n 6 ./test_blast.release -i test_blast.inp
- name: combile outputs
working-directory: ${{github.workspace}}/build/bin
run: python3 combine.py -o test
- name: compare result
run: >
python3 ${{github.workspace}}/examples/2023-Chen-exo3/test_blast.py
${{github.workspace}}/build/bin/blast_48_cubed-test-main.nc
${{github.workspace}}/examples/2023-Chen-exo3/test_blast_output.nc
- uses: actions/upload-artifact@v3
if: env.ARTIFACT_EXISTS == 'false'
with:
name: swxy_output.nc
path: ${{github.workspace}}/examples/2020-Li-polar-vortex/test_blast_output.nc