|
name: Dependency packages |
|
|
|
on: |
|
push: |
|
branches: [main] |
|
pull_request: |
|
workflow_dispatch: |
|
|
|
permissions: |
|
contents: read |
|
|
|
jobs: |
|
test: |
|
runs-on: ${{ matrix.os || 'ubuntu-latest' }} |
|
strategy: |
|
fail-fast: false |
|
matrix: |
|
project: [smmap, gitdb] |
|
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.13t"] |
|
include: |
|
# setup-python has no builds of these versions for Ubuntu 26.04. |
|
- python-version: "3.8" |
|
os: ubuntu-24.04 |
|
- python-version: "3.9" |
|
os: ubuntu-24.04 |
|
|
|
env: |
|
PROJECT: ${{ matrix.project }} |
|
|
|
steps: |
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
|
with: |
|
persist-credentials: false |
|
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0 |
|
with: |
|
python-version: ${{ matrix.python-version }} |
|
allow-prereleases: true |
|
- name: Install test dependencies |
|
run: | |
|
python -m pip install --upgrade pip |
|
python -m pip install pytest flake8 ./smmap |
|
if test "$PROJECT" = gitdb; then python -m pip install ./gitdb; fi |
|
- name: Lint |
|
run: flake8 "$PROJECT/$PROJECT" --count --select=E9,F63,F7,F82 --show-source --statistics |
|
- name: Test |
|
run: | |
|
rm -rf .git |
|
if test "$PROJECT" = gitdb; then |
|
pytest -o addopts= -v gitdb/gitdb/test |
|
else |
|
pytest -o addopts= -v smmap/smmap/test |
|
fi |
|
uv-sync: |
|
runs-on: ubuntu-slim |
|
steps: |
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
|
with: |
|
persist-credentials: false |
|
|
|
- name: Install uv |
|
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2 |
|
with: |
|
enable-cache: false |
|
version: "0.12.13" # Released on 2026-09-10 |
|
|
|
# Ensure that dependencies and dependency groups are consistent and resolvable. |
|
- run: uv sync --all-extras --all-groups --dry-run |