29
29
30
30
31
31
jobs :
32
- build_wheels :
33
- name : Build wheels on ${{ matrix.os }}
32
+ build_svn_artifacts :
33
+ name : Build artifacts for SVN on ${{ matrix.os }}
34
+ runs-on : ${{ matrix.os }}
35
+ strategy :
36
+ matrix :
37
+ os : [ ubuntu-22.04, windows-2022, macos-13, macos-14, macos-15 ]
38
+
39
+ steps :
40
+ - uses : actions/checkout@v4
41
+ with :
42
+ fetch-depth : 0
43
+
44
+ - uses : actions/setup-python@v5
45
+ with :
46
+ python-version : |
47
+ 3.9
48
+ 3.10
49
+ 3.11
50
+ 3.12
51
+
52
+ - name : Install poetry
53
+ run : pip install poetry
54
+
55
+ # Publish the source distribution with the version that's in
56
+ # the repository, otherwise the tests will fail
57
+ - name : Compile source distribution
58
+ run : python3 -m poetry build --format=sdist
59
+ if : startsWith(matrix.os, 'ubuntu')
60
+
61
+ - name : Build wheels
62
+
63
+ with :
64
+ output-dir : svn_wheelhouse
65
+ config-file : " pyproject.toml"
66
+ env :
67
+ # Ignore 32 bit architectures
68
+ CIBW_ARCHS : " auto64"
69
+ CIBW_PROJECT_REQUIRES_PYTHON : " >=3.9,<3.13"
70
+ CIBW_TEST_REQUIRES : " pytest==7.4.2 moto==5.0.1"
71
+ CIBW_TEST_EXTRAS : " s3fs,glue"
72
+ CIBW_TEST_COMMAND : " pytest {project}/tests/avro/test_decoder.py"
73
+ # There is an upstream issue with installing on MacOSX
74
+ # https://github.com/pypa/cibuildwheel/issues/1603
75
+ # Ignore tests for pypy since not all dependencies are compiled for it
76
+ # and would require a local rust build chain
77
+ CIBW_TEST_SKIP : " pp* *macosx*"
78
+
79
+ - name : Add source distribution
80
+ if : startsWith(matrix.os, 'ubuntu')
81
+ run : ls -lah dist/* && cp dist/* svn_wheelhouse/
82
+
83
+ - uses : actions/upload-artifact@v4
84
+ with :
85
+ name : " release-svn-${{ matrix.os }}"
86
+ path : ./svn_wheelhouse/*
87
+
88
+ build_pypi_artifacts : # pypi `tag` as version
89
+ name : Build artifacts for PyPi on ${{ matrix.os }}
34
90
runs-on : ${{ matrix.os }}
35
91
strategy :
36
92
matrix :
53
109
run : pip install poetry
54
110
55
111
- name : Set version
56
- run : python -m poetry version "${{ inputs.version }}"
57
- if : " ${{ github.event.inputs.version != 'main' }}"
112
+ run : python -m poetry version "${{ inputs.version }}" # CHANGE TO current TAG
58
113
59
114
# Publish the source distribution with the version that's in
60
115
# the repository, otherwise the tests will fail
65
120
- name : Build wheels
66
121
67
122
with :
68
- output-dir : wheelhouse
123
+ output-dir : pypi_wheelhouse
69
124
config-file : " pyproject.toml"
70
125
env :
71
126
# Ignore 32 bit architectures
@@ -82,19 +137,31 @@ jobs:
82
137
83
138
- name : Add source distribution
84
139
if : startsWith(matrix.os, 'ubuntu')
85
- run : ls -lah dist/* && cp dist/* wheelhouse /
140
+ run : ls -lah dist/* && cp dist/* pypi_wheelhouse /
86
141
87
142
- uses : actions/upload-artifact@v4
88
143
with :
89
- name : " release-${{ matrix.os }}"
90
- path : ./wheelhouse/*
91
- merge :
144
+ name : " release-pypi-${{ matrix.os }}"
145
+ path : ./pypi_wheelhouse/*
146
+
147
+ merge_svn_artifacts :
148
+ runs-on : ubuntu-latest
149
+ needs : build_svn_artifacts
150
+ steps :
151
+ - name : Merge Artifacts
152
+ uses : actions/upload-artifact/merge@v4
153
+ with :
154
+ name : " release-svn-${{ github.event.inputs.version }}"
155
+ pattern : release-svn*
156
+ delete-merged : true
157
+
158
+ merge_pypi_artifacts :
92
159
runs-on : ubuntu-latest
93
- needs : build_wheels
160
+ needs : build_pypi_artifacts
94
161
steps :
95
162
- name : Merge Artifacts
96
163
uses : actions/upload-artifact/merge@v4
97
164
with :
98
- name : " release-${{ github.event.inputs.version }}"
99
- pattern : release-*
165
+ name : " release-pypi- ${{ github.event.inputs.version }}"
166
+ pattern : release-pypi *
100
167
delete-merged : true
0 commit comments