Containerized CI and added reusable workflow capability #48
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: "Translate test" | |
on: | |
workflow_call: | |
inputs: | |
fv3_trigger: | |
type: boolean | |
default: false | |
required: false | |
ndsl_trigger: | |
type: boolean | |
default: false | |
required: false | |
pull_request: | |
types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled] | |
# cancel running jobs if theres a newer push | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
github_repository: ${{github.event.repository.name}} | |
jobs: | |
all_tests: | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/noaa-gfdl/miniforge:mpich | |
steps: | |
- name: Checkout repository for externally triggered workflow | |
if: ${{inputs.ndsl_trigger || inputs.fv3_trigger}} | |
uses: actions/checkout@v4 | |
with: | |
repository: 'noaa-gfdl/PySHiELD' | |
submodules: 'recursive' | |
path: PySHiELD | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
path: ${{env.github_repository}} | |
- name: prep directory for externally triggered workflow | |
if: ${{inputs.ndsl_trigger || inputs.fv3_trigger}} | |
run : | | |
cd ${GITHUB_WORKSPACE} | |
mv ${{env.github_repository}} PySHiELD/. | |
- name: Install packages for ndsl_trigger | |
if : ${{inputs.ndsl_trigger}} | |
run : | | |
cd ${GITHUB_WORKSPACE}/PySHiELD/ | |
pip3 install --upgrade pip setuptools wheel | |
cd NDSL && pip3 install .[test] | |
cd ../ && pip3 install .[pyFV3,test] | |
- name: Install packages for pyFV3 trigger | |
if: ${{inputs.fv3_trigger}} | |
run: | | |
cd ${GITHUB_WORKSPACE}/PySHiELD | |
pip3 install --upgrade pip setuptools wheel | |
cd PyFV3 && pip3 install .[test] | |
cd ../ && pip3 install .[ndsl,test] | |
- name: Install PySHiELD Python packages | |
if: ${{ !inputs.fv3_trigger && !inputs.ndsl_trigger}} | |
run: | | |
cd ${GITHUB_WORKSPACE}/PySHiELD | |
pip3 install --upgrade pip setuptools wheel | |
pip3 install .[ndsl,pyFV3,test] | |
- name: Download data | |
run: | | |
cd ${GITHUB_WORKSPACE}/PySHiELD | |
mkdir -p test_data | |
cd test_data | |
wget https://portal.nccs.nasa.gov/datashare/astg/smt/pace-regression-data/8.1.3_c12_6ranks_baroclinic.physics.tar.gz | |
tar -xzvf 8.1.3_c12_6ranks_baroclinic.physics.tar.gz | |
- name: Numpy Translate Test | |
run: | | |
cd ${GITHUB_WORKSPACE}/PySHiELD | |
pytest \ | |
-v -s --data_path=./test_data/8.1.3/c12_6ranks_baroclinic/physics \ | |
--backend=numpy \ | |
--threshold_overrides_file=./tests/savepoint/translate/overrides/standard.yaml \ | |
./tests/savepoint | |
- name: Orchestrated dace:cpu Translate Test | |
run: | | |
cd ${GITHUB_WORKSPACE}/PySHiELD | |
export FV3_DACEMODE=BuildAndRun | |
export PACE_FLOAT_PRECISION=64 | |
export PACE_TEST_N_THRESHOLD_SAMPLES=0 | |
export OMP_NUM_THREADS=10 | |
export PACE_LOGLEVEL=Debug | |
pytest \ | |
-vvv -x -s --data_path=./test_data/8.1.3/c12_6ranks_baroclinic/physics \ | |
--backend=dace:cpu \ | |
--threshold_overrides_file=./tests/savepoint/translate/overrides/standard.yaml \ | |
./tests/savepoint |