diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index c41e59c..a638648 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -11,10 +11,10 @@ jobs: uses: actions/checkout@v3.5.2 with: submodules: 'recursive' - - name: Step Python 3.8.12 + - name: Step Python 3.11.7 uses: actions/setup-python@v4.6.0 with: - python-version: '3.8.12' + python-version: '3.11.7' - name: Install OpenMPI for gt4py run: | sudo apt-get install libopenmpi-dev diff --git a/.github/workflows/pace_tests.yaml b/.github/workflows/pace_tests.yaml new file mode 100644 index 0000000..1c6ed89 --- /dev/null +++ b/.github/workflows/pace_tests.yaml @@ -0,0 +1,10 @@ +name: "Pace unit tests" +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled] + +jobs: + pace_unit_tests: + uses: NOAA-GFDL/pace/.github/workflows/main_unit_tests.yaml@develop + with: + shield_trigger: true diff --git a/.github/workflows/translate.yaml b/.github/workflows/translate.yaml new file mode 100644 index 0000000..bf286b7 --- /dev/null +++ b/.github/workflows/translate.yaml @@ -0,0 +1,103 @@ +name: "pySHiELD 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: + pyshield_translate_tests: + runs-on: ubuntu-latest + container: + image: ghcr.io/noaa-gfdl/miniforge:mpich + steps: + + - name: Checkout pyshield 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 that triggers workflow + 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 diff --git a/.github/workflows/translate.yml b/.github/workflows/translate.yml deleted file mode 100644 index 1b1de6d..0000000 --- a/.github/workflows/translate.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: "Translate test" -on: - push: - pull_request: - types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled] - -jobs: - all: - runs-on: ubuntu-latest - strategy: - matrix: - python: [3.8.12, 3.11.7] - steps: - - name: Checkout repository - uses: actions/checkout@v3.5.2 - with: - submodules: 'recursive' - - name: Setup Python - uses: actions/setup-python@v4.6.0 - with: - python-version: ${{ matrix.python }} - - name: Install OpenMPI & Boost for gt4py - run: | - sudo apt-get install libopenmpi-dev libboost1.74-dev - - name: Install Python packages - run: | - python -m pip install --upgrade pip setuptools wheel - pip install .[ndsl,pyFV3,test] - - name: Download 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_baroclinic.physics.tar.gz - tar -xzvf 8.1.3_c12_6ranks_baroclinic.physics.tar.gz - cd - - - name: Numpy Translate Test - run: | - 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: | - 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 diff --git a/setup.py b/setup.py index 597e7b3..0ea2a99 100755 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ requirements = [ "f90nml>=1.1.0", - "numpy", + "numpy==1.26.4", "xarray", ]