Simplify CI for easier debugging Windows rasterio failure #7046
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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.12"] | |
| experimental: [false] | |
| include: | |
| - python-version: "3.13" | |
| os: "windows-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@v6 | |
| - name: Setup Conda Environment | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| miniforge-version: latest | |
| python-version: ${{ matrix.python-version }} | |
| activate-environment: test-environment | |
| environment-file: continuous_integration/environment.yaml | |
| channels: conda-forge | |
| conda-remove-defaults: true | |
| channel-priority: strict | |
| - 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 \ | |
| --only-binary ":all:" \ | |
| --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 satpy/tests/writer_tests/test_core/test_base.py |