Skip to content

update oci l2 BGC file pattern, make netCDF version optional in the file ext format #5942

update oci l2 BGC file pattern, make netCDF version optional in the file ext format

update oci l2 BGC file pattern, make netCDF version optional in the file ext format #5942

Workflow file for this run

name: CI
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency
# https://docs.github.com/en/developers/webhooks-and-events/events/github-event-types#pullrequestevent
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.event.ref }}-${{ github.event.type }}
cancel-in-progress: true
on: [push, pull_request]
env:
CACHE_NUMBER: 0
jobs:
test:
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: true
matrix:
os: ["windows-latest", "ubuntu-latest", "macos-latest"]
python-version: ["3.10", "3.11", "3.12"]
experimental: [false]
include:
- python-version: "3.12"
os: "ubuntu-latest"
experimental: true
env:
PYTHON_VERSION: ${{ matrix.python-version }}
OS: ${{ matrix.os }}
UNSTABLE: ${{ matrix.experimental }}
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Setup Conda Environment
uses: conda-incubator/setup-miniconda@v3
with:
miniforge-version: latest
python-version: ${{ matrix.python-version }}
activate-environment: test-environment
channels: conda-forge
conda-remove-defaults: true
channel-priority: strict
- name: Set cache environment variables
shell: bash -l {0}
run: |
echo "DATE=$(date +'%Y%m%d')" >> $GITHUB_ENV
CONDA_PREFIX=$(python -c "import sys; print(sys.prefix)")
echo "CONDA_PREFIX=$CONDA_PREFIX" >> $GITHUB_ENV
- uses: actions/cache@v4
with:
path: ${{ env.CONDA_PREFIX }}
key: ${{ matrix.os }}-${{matrix.python-version}}-conda-${{ hashFiles('continuous_integration/environment.yaml') }}-${{ env.DATE }}-${{matrix.experimental}}-${{ env.CACHE_NUMBER }}
id: cache
- name: Update environment
run: mamba env update -n test-environment -f continuous_integration/environment.yaml
if: steps.cache.outputs.cache-hit != 'true'
- name: Install unstable dependencies
if: matrix.experimental == true
shell: bash -l {0}
# Install pykdtree with --no-build-isolation so it builds with numpy 2.0
# We must get LD_PRELOAD for stdlibc++ or else the manylinux wheels
# may break the conda-forge libraries trying to use newer glibc versions
# NOTE: Many of the packages removed and then reinstalled below are to avoid
# compatibility issues with numpy 2. When conda-forge has numpy 2 available
# this shouldn't be needed.
run: |
python -m pip install versioneer extension-helpers setuptools-scm configobj pkgconfig hatchling hatch-vcs
python -m pip install \
--index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/ \
--trusted-host pypi.anaconda.org \
--no-deps --pre --upgrade \
matplotlib \
numpy \
pandas \
scipy
conda remove --force-remove -y pykdtree pyresample python-geotiepoints pyhdf netcdf4 h5py cftime astropy pyerfa || true
python -m pip install --upgrade --no-deps --pre --no-build-isolation \
pyerfa \
git+https://github.com/storpipfugl/pykdtree \
git+https://github.com/pytroll/pyresample \
git+https://github.com/pytroll/trollimage \
git+https://github.com/pytroll/python-geotiepoints \
git+https://github.com/fhs/pyhdf \
git+https://github.com/h5py/h5py \
git+https://github.com/h5netcdf/h5netcdf \
git+https://github.com/Unidata/netcdf4-python \
git+https://github.com/dask/dask \
git+https://github.com/dask/distributed \
git+https://github.com/Unidata/cftime \
git+https://github.com/rasterio/rasterio \
git+https://github.com/pydata/bottleneck \
git+https://github.com/pydata/xarray \
git+https://github.com/shapely/shapely \
git+https://github.com/astropy/astropy
LD_PRELOAD=$(python -c "import sys; print(sys.prefix)")/lib/libstdc++.so
echo "LD_PRELOAD=${LD_PRELOAD}" >> $GITHUB_ENV
- name: Install satpy
shell: bash -l {0}
run: |
python -m pip install --no-deps -e .
- name: Run unit tests
shell: bash -l {0}
run: |
export LD_PRELOAD=${{ env.LD_PRELOAD }};
pytest -n auto --cov=satpy satpy/tests --cov-report=xml --cov-report=
- name: Upload unittest coverage to Codecov
uses: codecov/codecov-action@v4
with:
flags: unittests
file: ./coverage.xml
env_vars: OS,PYTHON_VERSION,UNSTABLE
- name: Coveralls Parallel
uses: AndreMiras/coveralls-python-action@develop
with:
flag-name: run-${{ matrix.test_number }}
parallel: true
if: runner.os == 'Linux'
- name: Run behaviour tests
shell: bash -l {0}
run: |
export LD_PRELOAD=${{ env.LD_PRELOAD }};
coverage run --source=satpy -m behave satpy/tests/features --tags=-download
coverage xml
- name: Upload behaviour test coverage to Codecov
uses: codecov/codecov-action@v4
with:
flags: behaviourtests
file: ./coverage.xml
env_vars: OS,PYTHON_VERSION,UNSTABLE
coveralls:
needs: [test]
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: AndreMiras/coveralls-python-action@develop
with:
parallel-finished: true