@@ -17,12 +17,25 @@ jobs:
17
17
pre-commit :
18
18
name : Rerun pre-commit checks
19
19
runs-on : ubuntu-latest
20
+ outputs :
21
+ dist-base : ${{ steps.paths.outputs.dist }}
22
+ docs-base : ${{ steps.paths.outputs.docs }}
20
23
steps :
21
- - uses : actions/checkout@v4
22
- - uses : actions/setup-python@v4
24
+ - name : Check out repo
25
+ uses : actions/checkout@v4
26
+ - name : Set up Python
27
+ uses : actions/setup-python@v4
23
28
with :
24
29
python-version : ' 3.12'
25
- -
uses :
pre-commit/[email protected]
30
+ - name : Run pre-commit hooks
31
+ uses :
pre-commit/[email protected]
32
+ - name : Define artifact paths
33
+ id : paths
34
+ run : |
35
+ suffix="$GITHUB_RUN_NUMBER-$(echo $GITHUB_SHA | cut -c-10)"
36
+ echo "dist=openslide-python-dist-$suffix" >> $GITHUB_OUTPUT
37
+ echo "docs=openslide-python-docs-$suffix" >> $GITHUB_OUTPUT
38
+
26
39
tests :
27
40
name : Tests
28
41
needs : pre-commit
83
96
brew install openslide
84
97
;;
85
98
esac
86
- - name : Build wheel
99
+ - name : Build dist
87
100
run : |
88
101
if [ -z "${{ matrix.sdist }}" ]; then
89
102
wheel_only=-w
@@ -102,25 +115,27 @@ jobs:
102
115
exit 1
103
116
fi
104
117
esac
105
- basename=openslide-python-wheels-$GITHUB_RUN_NUMBER-$(echo $GITHUB_SHA | cut -c-10)
106
- mkdir -p "artifacts/${basename}"
107
- mv dist/* "artifacts/${basename}"
108
- echo "basename=${basename}" >> $GITHUB_ENV
118
+ mkdir -p "artifacts/${{ needs.pre-commit.outputs.dist-base }}"
119
+ mv dist/* "artifacts/${{ needs.pre-commit.outputs.dist-base }}"
109
120
# save version-specific wheels and oldest abi3 wheel
110
121
python -c 'import sys
111
122
if sys.version_info < (3, 12): print("archive_wheel=1")' >> $GITHUB_ENV
112
123
- name : Install
113
- run : pip install artifacts/${basename }/*.whl
124
+ run : pip install artifacts/${{ needs.pre-commit.outputs.dist-base } }/*.whl
114
125
- name : Run tests
115
126
run : pytest -v
116
127
- name : Tile slide
117
128
run : python examples/deepzoom/deepzoom_tile.py --viewer -o tiled tests/fixtures/small.svs
118
- - name : Archive wheel
119
- if : env.archive_wheel
129
+ - name : Remove wheel from upload
130
+ if : matrix.sdist && ! env.archive_wheel
131
+ run : rm artifacts/${{ needs.pre-commit.outputs.dist-base }}/*.whl
132
+ - name : Archive dist
133
+ if : matrix.sdist || env.archive_wheel
120
134
uses : actions/upload-artifact@v3
121
135
with :
122
- name : ${{ env.basename }}
136
+ name : ${{ needs.pre-commit.outputs.dist-base }}
123
137
path : artifacts
138
+
124
139
windows :
125
140
name : Windows
126
141
needs : pre-commit
@@ -155,15 +170,13 @@ jobs:
155
170
- name : Build wheel
156
171
run : |
157
172
python -m build -w
158
- basename=openslide-python-wheels-$GITHUB_RUN_NUMBER-$(echo $GITHUB_SHA | cut -c-10)
159
- mkdir -p "artifacts/${basename}"
160
- mv dist/*.whl "artifacts/${basename}"
161
- echo "basename=${basename}" >> $GITHUB_ENV
173
+ mkdir -p "artifacts/${{ needs.pre-commit.outputs.dist-base }}"
174
+ mv dist/*.whl "artifacts/${{ needs.pre-commit.outputs.dist-base }}"
162
175
# save version-specific wheels and oldest abi3 wheel
163
176
python -c 'import sys
164
177
if sys.version_info < (3, 12): print("archive_wheel=1")' >> $GITHUB_ENV
165
178
- name : Install
166
- run : pip install artifacts/${basename }/*.whl
179
+ run : pip install artifacts/${{ needs.pre-commit.outputs.dist-base } }/*.whl
167
180
- name : Run tests
168
181
# Reads OPENSLIDE_PATH
169
182
run : pytest -v
@@ -180,8 +193,9 @@ jobs:
180
193
if : env.archive_wheel
181
194
uses : actions/upload-artifact@v3
182
195
with :
183
- name : ${{ env.basename }}
196
+ name : ${{ needs.pre-commit.outputs.dist-base }}
184
197
path : artifacts
198
+
185
199
docs :
186
200
name : Docs
187
201
needs : pre-commit
@@ -198,12 +212,9 @@ jobs:
198
212
python -m pip install --upgrade pip
199
213
pip install sphinx
200
214
- name : Build
201
- run : |
202
- basename=openslide-python-docs-$GITHUB_RUN_NUMBER-$(echo $GITHUB_SHA | cut -c-10)
203
- sphinx-build -d doctrees doc artifact/${basename}
204
- echo "basename=${basename}" >> $GITHUB_ENV
215
+ run : sphinx-build -d doctrees doc artifact/${{ needs.pre-commit.outputs.docs-base }}
205
216
- name : Archive
206
217
uses : actions/upload-artifact@v3
207
218
with :
208
- name : ${{ env.basename }}
219
+ name : ${{ needs.pre-commit.outputs.docs-base }}
209
220
path : artifact
0 commit comments