ruff: FBT and TD compliance #3297
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
# Reference: | |
# - https://github.com/actions/checkout | |
# - https://github.com/actions/download-artifact | |
# - https://github.com/actions/setup-python | |
# - https://github.com/actions/upload-artifact | |
# - https://github.com/awalsh128/cache-apt-pkgs-action | |
# - https://github.com/codecov/codecov-action | |
# - https://github.com/conda-incubator/setup-miniconda | |
name: ci-tests | |
on: | |
pull_request: | |
push: | |
branches: | |
- "main" | |
- "v*x" | |
- "!conda-lock-auto-update" | |
- "!pre-commit-ci-update-config" | |
- "!dependabot/*" | |
tags: | |
- "v*" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
defaults: | |
run: | |
shell: bash -l {0} | |
jobs: | |
tests: | |
name: "${{ matrix.session }} ${{ matrix.marker }} (${{ matrix.version }})" | |
runs-on: ${{ matrix.os }} | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
ENV_NAME: "ci-tests" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ubuntu-latest"] | |
version: ["py311", "py312"] | |
session: ["tests"] | |
marker: ["image", "not image"] | |
posargs: ["--xvfb-backend xvfb --durations=10"] | |
include: | |
- version: "py312" | |
coverage: "--cov-report= --cov=geovista" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: "environment configure" | |
env: | |
# Maximum cache period (in weeks) before forcing a cache refresh. | |
CACHE_WEEKS: 2 | |
run: | | |
echo "CACHE_PERIOD=$(date +%Y).$(expr $(date +%U) / ${CACHE_WEEKS})" >> ${GITHUB_ENV} | |
echo "LOCK_FILE=requirements/locks/${{ matrix.version }}-lock-linux-64.txt" >> ${GITHUB_ENV} | |
- name: "conda package cache" | |
uses: ./.github/workflows/composite/conda-pkg-cache | |
with: | |
cache_period: ${{ env.CACHE_PERIOD }} | |
env_name: ${{ env.ENV_NAME }} | |
- name: "conda install" | |
uses: conda-incubator/setup-miniconda@d2e6a045a86077fb6cad6f5adf368e9076ddaa8d | |
with: | |
miniforge-version: latest | |
activate-environment: ${{ env.ENV_NAME }} | |
use-only-tar-bz2: false | |
- name: "conda environment cache" | |
uses: ./.github/workflows/composite/conda-env-cache | |
with: | |
cache_period: ${{ env.CACHE_PERIOD }} | |
env_name: ${{ env.ENV_NAME }} | |
install_packages: "cartopy pip 'tox<4'" | |
- name: "conda info" | |
run: | | |
conda info | |
conda list | |
- name: "cartopy cache" | |
uses: ./.github/workflows/composite/cartopy-cache | |
with: | |
cache_period: ${{ env.CACHE_PERIOD }} | |
env_name: ${{ env.ENV_NAME }} | |
- name: "tox cache" | |
uses: ./.github/workflows/composite/tox-cache | |
with: | |
lock_file: ${{ env.LOCK_FILE }} | |
- name: "apt cache" | |
uses: awalsh128/cache-apt-pkgs-action@a6c3917cc929dd0345bfb2d3feaf9101823370ad | |
with: | |
packages: libgl1-mesa-glx xvfb | |
version: 1.0 | |
- name: "geovista cache" | |
uses: ./.github/workflows/composite/geovista-cache | |
with: | |
cache_period: ${{ env.CACHE_PERIOD }} | |
- name: "${{ matrix.session }} ${{ matrix.marker }} (${{ matrix.version }})" | |
env: | |
PY_COLORS: "1" | |
run: | | |
tox -e ${{ matrix.version }}-${{ matrix.session }} -- -m "${{ matrix.marker }}" ${{ matrix.coverage }} ${{ matrix.posargs }} | |
- name: "upload test images" | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-images-${{ github.job }}-${{ strategy.job-index }} | |
path: ${{ github.workspace }}/test_images | |
- name: "prepare coverage" | |
if: ${{ matrix.coverage }} | |
run: | | |
mv .coverage ci-test-coverage${{ strategy.job-index }} | |
- if: ${{ matrix.coverage }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-artifacts-${{ github.job }}-${{ strategy.job-index }} | |
path: ${{ github.workspace }}/ci-test-coverage* | |
coverage: | |
name: "upload coverage" | |
needs: tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- run: | | |
python -m pip install --upgrade pip | |
pip install coverage | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: coverage-artifacts-* | |
merge-multiple: true | |
- name: "create coverage report" | |
run: | | |
coverage combine ci-test-coverage* | |
coverage xml --omit=*/_version.py | |
- name: "upload coverage report" | |
uses: codecov/codecov-action@5c47607acb93fed5485fdbf7232e8a31425f672a | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} |