Merge pull request #212 from pytroll/pre-commit-ci-update-config #507
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 | |
| on: [push, pull_request] | |
| env: | |
| CACHE_NUMBER: 1 | |
| 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@v5 | |
| - 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} | |
| # We must get LD_PRELOAD for stdlibc++ or else the manylinux wheels | |
| # may break the conda-forge libraries trying to use newer glibc versions | |
| run: | | |
| 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; \ | |
| python -m pip install \ | |
| --no-deps --upgrade \ | |
| git+https://github.com/dask/dask \ | |
| git+https://github.com/pydata/xarray; | |
| LD_PRELOAD=$(python -c "import sys; print(sys.prefix)")/lib/libstdc++.so | |
| echo "LD_PRELOAD=${LD_PRELOAD}" >> $GITHUB_ENV | |
| - name: Install Pyorbital | |
| 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 --cov=pyorbital pyorbital/tests --cov-report=xml --cov-report= | |
| - name: Upload unittest coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| flags: unittests | |
| files: ./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' | |
| coveralls: | |
| needs: [test] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Coveralls Finished | |
| uses: AndreMiras/coveralls-python-action@develop | |
| with: | |
| parallel-finished: true |