name: Python linting on: push: paths: - '**.py' - '.github/workflows/lint.yaml' - .flake8 - .isort.cfg - lib/galaxy/dependencies/** - mypy.ini - pyproject.toml - tox.ini pull_request: paths: - '**.py' - '.github/workflows/lint.yaml' - .flake8 - .isort.cfg - lib/galaxy/dependencies/** - mypy.ini - pyproject.toml - tox.ini concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test: name: Test runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ['3.10', '3.14'] env: LINT_PATH: 'lib/galaxy/dependencies/pinned-lint-requirements.txt' TYPE_PATH: 'lib/galaxy/dependencies/pinned-typecheck-requirements.txt' CORE_PATH: 'lib/galaxy/dependencies/pinned-requirements.txt' steps: - uses: actions/checkout@v6 with: persist-credentials: false - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@v7 - name: Get full Python version id: full-python-version shell: bash run: echo "version=$(python -c 'import sys; print("-".join(str(v) for v in sys.version_info))')" >> $GITHUB_OUTPUT - name: Install tox run: uv tool install tox --with tox-uv - name: Run linting run: tox -e lint - name: Run docstring linting run: tox -e lint_docstring_include_list - name: Run mypy checks run: tox -e mypy - name: Run format checks run: tox -e format