PYTHON-4579 Stop gossiping $clusterTime on SDAM connections (#1925) #6696
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: Python Tests | |
on: | |
push: | |
branches: ["master", "v**"] | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: tests-${{ github.ref }} | |
cancel-in-progress: true | |
defaults: | |
run: | |
shell: bash -eux {0} | |
jobs: | |
static: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install just | |
uses: extractions/setup-just@v2 | |
- name: Install uv | |
uses: astral-sh/setup-uv@v5 | |
with: | |
enable-cache: true | |
python-version: "3.9" | |
- name: Install Python dependencies | |
run: | | |
just install | |
- name: Run linters | |
run: | | |
just lint-manual | |
- name: Run compilation | |
run: | | |
export PYMONGO_C_EXT_MUST_BUILD=1 | |
pip install -v -e . | |
python tools/fail_if_no_c.py | |
- name: Run typecheck | |
run: | | |
just typing | |
- run: | | |
sudo apt-get install -y cppcheck | |
- run: | | |
cppcheck --force bson | |
cppcheck pymongo | |
build: | |
# supercharge/mongodb-github-action requires containers so we don't test other platforms | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04] | |
python-version: ["3.9", "pypy-3.10", "3.13", "3.13t"] | |
name: CPython ${{ matrix.python-version }}-${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install just | |
uses: extractions/setup-just@v2 | |
- name: Install uv | |
uses: astral-sh/setup-uv@v5 | |
with: | |
enable-cache: true | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: just install | |
- name: Start MongoDB | |
uses: supercharge/[email protected] | |
with: | |
mongodb-version: 6.0 | |
- name: Run tests | |
run: just test | |
doctest: | |
runs-on: ubuntu-latest | |
name: DocTest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install just | |
uses: extractions/setup-just@v2 | |
- name: Install uv | |
uses: astral-sh/setup-uv@v5 | |
with: | |
enable-cache: true | |
python-version: "3.9" | |
- name: Start MongoDB | |
uses: supercharge/[email protected] | |
with: | |
mongodb-version: '8.0.0-rc4' | |
- name: Install dependencies | |
run: just install | |
- name: Run tests | |
run: just docs-test | |
docs: | |
name: Docs Checks | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install uv | |
uses: astral-sh/setup-uv@v5 | |
with: | |
enable-cache: true | |
python-version: "3.9" | |
- name: Install just | |
uses: extractions/setup-just@v2 | |
- name: Install dependencies | |
run: just install | |
- name: Build docs | |
run: just docs | |
linkcheck: | |
name: Link Check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install uv | |
uses: astral-sh/setup-uv@v5 | |
with: | |
enable-cache: true | |
python-version: "3.9" | |
- name: Install just | |
uses: extractions/setup-just@v2 | |
- name: Install dependencies | |
run: just install | |
- name: Build docs | |
run: just docs-linkcheck | |
typing: | |
name: Typing Tests | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python: ["3.9", "3.11"] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install uv | |
uses: astral-sh/setup-uv@v5 | |
with: | |
enable-cache: true | |
python-version: "${{matrix.python}}" | |
- name: Install just | |
uses: extractions/setup-just@v2 | |
- name: Install dependencies | |
run: | | |
just install | |
- name: Run typecheck | |
run: | | |
just typing | |
make_sdist: | |
runs-on: ubuntu-latest | |
name: "Make an sdist" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: actions/setup-python@v5 | |
with: | |
cache: 'pip' | |
cache-dependency-path: 'pyproject.toml' | |
# Build sdist on lowest supported Python | |
python-version: '3.9' | |
- name: Build SDist | |
shell: bash | |
run: | | |
pip install build | |
python -m build --sdist | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: "sdist" | |
path: dist/*.tar.gz | |
test_sdist: | |
runs-on: ubuntu-latest | |
needs: [make_sdist] | |
name: Install from SDist and Test | |
timeout-minutes: 20 | |
steps: | |
- name: Download sdist | |
uses: actions/download-artifact@v4 | |
- name: Unpack SDist | |
shell: bash | |
run: | | |
cd sdist | |
ls | |
mkdir test | |
tar --strip-components=1 -zxf *.tar.gz -C ./test | |
ls test | |
- uses: actions/setup-python@v5 | |
with: | |
cache: 'pip' | |
cache-dependency-path: 'sdist/test/pyproject.toml' | |
# Test sdist on lowest supported Python | |
python-version: '3.9' | |
- name: Start MongoDB | |
uses: supercharge/[email protected] | |
- name: Run connect test from sdist | |
shell: bash | |
run: | | |
cd sdist/test | |
ls | |
which python | |
pip install -e ".[test]" | |
PYMONGO_MUST_CONNECT=1 pytest -v -k client_context |