Replace flake8 with ruff in pre-commit and ci linting #4236
Workflow file for this run
This file contains 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.type }} | |
cancel-in-progress: true | |
on: [push, pull_request] | |
env: | |
CACHE_NUMBER: 0 | |
jobs: | |
lint: | |
name: lint and style checks | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout source | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.9 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install ruff pytest | |
- name: Install Satpy | |
run: | | |
pip install -e . | |
- name: Run linting | |
run: | | |
ruff satpy/ | |
test: | |
runs-on: ${{ matrix.os }} | |
continue-on-error: ${{ matrix.experimental }} | |
needs: [lint] | |
strategy: | |
fail-fast: true | |
matrix: | |
os: ["windows-latest", "ubuntu-latest", "macos-latest"] | |
python-version: ["3.9", "3.10", "3.11"] | |
experimental: [false] | |
include: | |
- python-version: "3.11" | |
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@v2 | |
with: | |
miniforge-variant: Mambaforge | |
miniforge-version: latest | |
use-mamba: true | |
python-version: ${{ matrix.python-version }} | |
activate-environment: test-environment | |
- 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@v3 | |
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: Update environment - libnetcdf | |
run: mamba install -y -n test-environment libnetcdf=4.9.2=nompi_h5902ca5_107 | |
if: runner.os == 'Windows' | |
- 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 \ | |
--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/dask/distributed \ | |
git+https://github.com/zarr-developers/zarr \ | |
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/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 --cov=satpy satpy/tests --cov-report=xml --cov-report= | |
- name: Upload unittest coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
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@v3 | |
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 |