Skip to content

building esmf in workflow #27

building esmf in workflow

building esmf in workflow #27

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: pre-commit
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.13'
cache: 'pip'
- name: Install Poetry
run: |
python -m pip install --upgrade pip
python -m pip install pipx
pipx install poetry
poetry --version
- name: Enable in-project venv for better caching
run: poetry config virtualenvs.in-project true
- name: Cache virtualenv
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-py${{ hashFiles('**/poetry.lock') }}
restore-keys: |
venv-${{ runner.os }}-
- name: Install deps (incl. dev)
run: poetry install --no-interaction --no-ansi
- name: Run pre-commit on all files
run: poetry run pre-commit run --all-files
tests:
name: pytest (matrix)
runs-on: ubuntu-latest
needs: lint
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.x']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install NetCDF
run: sudo apt-get update && sudo apt-get install -y libnetcdf-dev libnetcdff-dev
- name: Install ESMF
uses: esmf-org/install-esmf-action@v1
env:
ESMF_NETCDF: nc-config
with:
version: latest
esmpy: true
- name: Show ESMF info
run: |
echo "ESMFMKFILE=$ESMFMKFILE"
test -f "$ESMFMKFILE" && head -n 20 "$ESMFMKFILE"
- name: Install Poetry
run: |
python -m pip install --upgrade pip
python -m pip install pipx
pipx install poetry
poetry --version
- name: Enable in-project venv for better caching
run: poetry config virtualenvs.in-project true
- name: Cache virtualenv
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-py${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
venv-${{ runner.os }}-py${{ matrix.python-version }}-
venv-${{ runner.os }}-
- name: Install deps (incl. dev)
run: poetry install --no-interaction --no-ansi
# If your tests need environment variables, set them here (example):
# - name: Set test env
# run: echo "CMIP7_PREP_TEST=1" >> $GITHUB_ENV
- name: Run pytest
run: poetry run pytest -q