[PECOBLR-1928] Add AI coding agent detection to User-Agent header #2849
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: Code Quality Checks | |
| on: [pull_request] | |
| permissions: | |
| contents: read | |
| id-token: write | |
| jobs: | |
| run-unit-tests: | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| dependency-version: ["default", "min"] | |
| exclude: | |
| - python-version: "3.12" | |
| dependency-version: "min" | |
| - python-version: "3.13" | |
| dependency-version: "min" | |
| name: "Unit Tests (Python ${{ matrix.python-version }}, ${{ matrix.dependency-version }} deps)" | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Setup Poetry | |
| uses: ./.github/actions/setup-poetry | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache-suffix: "${{ matrix.dependency-version }}-" | |
| - name: Install Python tools for custom versions | |
| if: matrix.dependency-version != 'default' | |
| run: poetry run pip install toml packaging | |
| - name: Generate requirements file | |
| if: matrix.dependency-version != 'default' | |
| run: | | |
| poetry run python scripts/dependency_manager.py ${{ matrix.dependency-version }} --output requirements-${{ matrix.dependency-version }}.txt | |
| echo "Generated requirements for ${{ matrix.dependency-version }} versions:" | |
| cat requirements-${{ matrix.dependency-version }}.txt | |
| - name: Override with custom dependency versions | |
| if: matrix.dependency-version != 'default' | |
| run: poetry run pip install -r requirements-${{ matrix.dependency-version }}.txt | |
| - name: Show installed versions | |
| run: | | |
| echo "=== Dependency Version: ${{ matrix.dependency-version }} ===" | |
| poetry run pip list | |
| - name: Run tests | |
| run: poetry run python -m pytest tests/unit | |
| run-unit-tests-with-arrow: | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| dependency-version: ["default", "min"] | |
| exclude: | |
| - python-version: "3.12" | |
| dependency-version: "min" | |
| - python-version: "3.13" | |
| dependency-version: "min" | |
| name: "Unit Tests + PyArrow (Python ${{ matrix.python-version }}, ${{ matrix.dependency-version }} deps)" | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Install Kerberos system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libkrb5-dev | |
| - name: Setup Poetry | |
| uses: ./.github/actions/setup-poetry | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| install-args: "--all-extras" | |
| cache-path: ".venv-pyarrow" | |
| cache-suffix: "pyarrow-${{ matrix.dependency-version }}-" | |
| - name: Install Python tools for custom versions | |
| if: matrix.dependency-version != 'default' | |
| run: poetry run pip install toml packaging | |
| - name: Generate requirements file with pyarrow | |
| if: matrix.dependency-version != 'default' | |
| run: | | |
| poetry run python scripts/dependency_manager.py ${{ matrix.dependency-version }} --output requirements-${{ matrix.dependency-version }}-arrow.txt | |
| echo "Generated requirements for ${{ matrix.dependency-version }} versions with PyArrow:" | |
| cat requirements-${{ matrix.dependency-version }}-arrow.txt | |
| - name: Override with custom dependency versions | |
| if: matrix.dependency-version != 'default' | |
| run: poetry run pip install -r requirements-${{ matrix.dependency-version }}-arrow.txt | |
| - name: Show installed versions | |
| run: | | |
| echo "=== Dependency Version: ${{ matrix.dependency-version }} with PyArrow ===" | |
| poetry run pip list | |
| - name: Run tests | |
| run: poetry run python -m pytest tests/unit | |
| check-linting: | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Setup Poetry | |
| uses: ./.github/actions/setup-poetry | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Black | |
| run: poetry run black --check src | |
| check-types: | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Setup Poetry | |
| uses: ./.github/actions/setup-poetry | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Mypy | |
| run: | | |
| mkdir .mypy_cache | |
| poetry run mypy --install-types --non-interactive src |