diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 23a63e6d..a768fdb9 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.11.9 + - name: Step Python 3.11.7 uses: actions/setup-python@v4.6.0 with: - python-version: '3.11.9' + python-version: '3.11.7' - name: Install OpenMPI for gt4py run: | sudo apt-get install libopenmpi-dev diff --git a/.github/workflows/main_unit_tests.yaml b/.github/workflows/main_unit_tests.yaml new file mode 100644 index 00000000..9165727e --- /dev/null +++ b/.github/workflows/main_unit_tests.yaml @@ -0,0 +1,82 @@ +name: "Pace main unit tests" +on: + workflow_call: + inputs: + ndsl_trigger: + type: boolean + default: false + required: false + fv3_trigger: + type: boolean + default: false + required: false + shield_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: + main_unit_tests: + runs-on: ubuntu-latest + container: + image: ghcr.io/noaa-gfdl/miniforge:mpich + steps: + - name: Checkout pace if externally triggered + if: ${{ inputs.fv3_trigger || inputs.ndsl_trigger || inputs.shield_trigger }} + uses: actions/checkout@v4 + with: + submodules: 'recursive' + repository: NOAA-GFDL/pace + path: pace + + - name: Checkout repo that triggered the workflow + uses: actions/checkout@v4 + with: + submodules: 'recursive' + path: ${{ env.github_repository }} + + - name: mv PyFV3 to pace + if: ${{inputs.fv3_trigger}} + run: | + rm -r ${GITHUB_WORKSPACE}/pace/pyFV3 + mv ${GITHUB_WORKSPACE}/${{env.github_repository}} ${GITHUB_WORKSPACE}/pace/pyFV3 + + - name: mv NDSL to pace + if: ${{inputs.ndsl_trigger}} + run: | + rm -r ${GITHUB_WORKSPACE}/pace/NDSL + mv ${GITHUB_WORKSPACE}/${{env.github_repository}} ${GITHUB_WORKSPACE}/pace/NDSL + + - name: mv pyShield to pace + if: ${{inputs.shield_trigger}} + run: | + rm -r ${GITHUB_WORKSPACE}/pace/pySHiELD + mv ${GITHUB_WORKSPACE}/${{env.github_repository}} ${GITHUB_WORKSPACE}/pace/pySHiELD + + - name: install packages + run: | + cd ${GITHUB_WORKSPACE}/pace + pip3 install --upgrade pip setuptools wheel + pip3 install -r requirements_dev.txt -c constraints.txt + + - name: prepare input files + run: | + cd ${GITHUB_WORKSPACE}/pace + python3 examples/generate_eta_files.py + mkdir tests/main/input && mv eta*.nc tests/main/input/. + + - name: run tests + run: | + cd ${GITHUB_WORKSPACE}/pace + pytest -x tests/main diff --git a/.github/workflows/main_unit_tests_mpich.yaml b/.github/workflows/main_unit_tests_mpich.yaml deleted file mode 100644 index 7fa3af70..00000000 --- a/.github/workflows/main_unit_tests_mpich.yaml +++ /dev/null @@ -1,30 +0,0 @@ -name: "Main unit tests with mpich" -on: - push: - 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: - main_unit_tests: - runs-on: ubuntu-latest - container: - image: ghcr.io/noaa-gfdl/miniforge:mpich - steps: - - name: Checkout Pace repository - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - name: setup env and generate input files - run: | - pip3 install --upgrade pip setuptools wheel - pip3 install -r requirements_dev.txt -c constraints.txt - cd tests/main && mkdir -p input && cd input - python3 ../../../examples/generate_eta_files.py - cd ../../../ - - name: - run: pytest -x tests/main