Skip to content

Containerized CI and reusable workflow implementation #95

Containerized CI and reusable workflow implementation

Containerized CI and reusable workflow implementation #95

Workflow file for this run

name: "Translate test (subset)"
on:
workflow_call:
inputs:
ndsl_hash:
type: string
default: ''
required: true
trigger:
type: boolean
default: false
required: true
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
jobs:
all_tests:
runs-on: ubuntu-latest
container:
image: ghcr.io/noaa-gfdl/miniforge:mpich
steps:
- name: Checkout repository for workflow_call
if: ${{inputs.trigger}}
uses: actions/checkout@v4
with:
repository: 'noaa-gfdl/pyFV3'
submodules: 'recursive'
- name: Checkout repository for not workflow call
if: ${{ ! inputs.trigger }}
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: checkout NDSL hash to be tested
if: ${{inputs.trigger}}
run: sed -i "s/NDSL\.git\@[0-9.]*/NDSL\.git\@${{inputs.ndsl_hash}}/" setup.py
- name: Install Python packages
run: |
python -m pip install --upgrade pip setuptools wheel
pip install .[ndsl,test]
- name: Prepare test_data
run: |
mkdir -p test_data && cd test_data
wget https://portal.nccs.nasa.gov/datashare/astg/smt/pace-regression-data/8.1.3_c12_6ranks_standard.tar.gz
tar -xzvf 8.1.3_c12_6ranks_standard.tar.gz --no-same-owner
cd ..
- name: Numpy FvTp2d
run: |
pytest \
-v -s --data_path=./test_data/8.1.3/c12_6ranks_standard/dycore \
--backend=numpy \
--which_modules=FvTp2d \
--threshold_overrides_file=./tests/savepoint/translate/overrides/standard.yaml \
./tests/savepoint
- name: Numpy D_SW
run: |
pytest \
-v -s --data_path=./test_data/8.1.3/c12_6ranks_standard/dycore \
--backend=numpy \
--which_modules=D_SW \
--threshold_overrides_file=./tests/savepoint/translate/overrides/standard.yaml \
./tests/savepoint
- name: Numpy Remapping
run: |
pytest \
-v -s --data_path=./test_data/8.1.3/c12_6ranks_standard/dycore \
--backend=numpy \
--which_modules=Remapping \
--threshold_overrides_file=./tests/savepoint/translate/overrides/standard.yaml \
./tests/savepoint
- name: Orchestrated dace-cpu Acoustics
run: |
export FV3_DACEMODE=BuildAndRun
export PACE_FLOAT_PRECISION=64
export PACE_TEST_N_THRESHOLD_SAMPLES=0
export OMP_NUM_THREADS=1
export PACE_LOGLEVEL=Debug
mpiexec -mca orte_abort_on_non_zero_status 1 -np 6 --oversubscribe pytest \
-v -s --data_path=./test_data/8.1.3/c12_6ranks_standard/dycore \
--backend=dace:cpu \
-m parallel \
--which_rank=0 \
--which_modules=DynCore \
--threshold_overrides_file=./tests/savepoint/translate/overrides/standard.yaml \
./tests/savepoint