-
Notifications
You must be signed in to change notification settings - Fork 87
132 lines (108 loc) · 3.2 KB
/
test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: Test
on:
push:
branches: ["main"]
pull_request:
concurrency:
group: test-${{ github.head_ref }}
cancel-in-progress: true
jobs:
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: chartboost/ruff-action@v1
tests_matrix:
runs-on: ubuntu-latest
needs: [ ruff ]
strategy:
matrix:
python-version: [3.9, "3.10", 3.11, 3.12, 3.13]
django-version: [4.2, 5.0, 5.1, "main"]
exclude:
# Django 5.0
- python-version: 3.9
django-version: 5.0
# Django 5.1
- python-version: 3.9
django-version: 5.1
# Django main
- python-version: 3.9
django-version: "main"
steps:
- uses: actions/checkout@v4
- name: Update repositories
run: sudo apt-get update
- name: Install GDAL binaries
run: sudo apt-get install binutils libproj-dev gdal-bin
- name: Set up Python with uv
uses: drivendataorg/setup-python-uv-action@main
with:
python-version: ${{ matrix.python-version }}
cache: packages
cache-dependency-path: >-
pyproject.toml
- name: Install dependencies
run: uv sync --all-extras --all-groups --upgrade
- name: Install Django ${{ matrix.django-version }}
run: uv pip install Django==${{ matrix.django-version }}
if: matrix.django-version != 'main'
- name: Install Django main branch
run: uv pip install -U https://github.com/django/django/archive/master.tar.gz
if: matrix.django-version == 'main'
- name: Run tests
run: |
uv run coverage run manage.py test
uv run coverage report
- name: Upload coveralls (parallel)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_PARALLEL: true
run: |
uv pip install coveralls
uv run coveralls --service=github
docs:
runs-on: ubuntu-latest
needs: [ tests_matrix ]
steps:
- uses: actions/checkout@v4
- name: Set up Python with uv
uses: drivendataorg/setup-python-uv-action@main
with:
python-version: 3.12
cache: packages
cache-dependency-path: >-
pyproject.toml
- name: Set up just
uses: extractions/setup-just@v2
- name: Build documentation
run: just docs
build:
runs-on: ubuntu-latest
needs: [ tests_matrix ]
steps:
- uses: actions/checkout@v4
- name: Set up Python with uv
uses: drivendataorg/setup-python-uv-action@main
with:
python-version: 3.12
cache: packages
cache-dependency-path: >-
pyproject.toml
- name: Set up just
uses: extractions/setup-just@v2
- name: Build package
run: just build
tests:
if: always()
runs-on: ubuntu-latest
needs: [ tests_matrix, ruff, docs, build ]
steps:
- name: Check tests matrix status
if: needs.tests_matrix.result != 'success'
run: exit 1
- name: Finish parallel build
uses: coverallsapp/github-action@v2
with:
parallel-finished: true
github-token: ${{ secrets.GITHUB_TOKEN }}