1
1
environment :
2
2
LINUX_IMAGE : &linux_image Ubuntu2204
3
- MACOS_IMAGE : &macos_image macos-catalina
3
+ MACOS_IMAGE : &macos_image macos-monterey
4
4
WINDOWS_IMAGE : &windows_image Visual Studio 2022
5
- LIBZEN_VERSION : 0.4.41
6
5
MEDIAINFO_VERSION : 24.11
7
- UBUNTU_VERSION : 22.04
6
+ # Python 3.13 is not available everywhere yet, see https://github.com/appveyor/ci/issues/3927
7
+ # Because of this, we can only deploy on 3.12
8
8
QA_PYTHON_VERSION : 3.12
9
- # Python 3.12 is not available everywhere yet, see https://github.com/appveyor/ci/issues/3879
10
- # Because of this, we can only deploy on 3.11
11
- DEPLOY_TOXENV : py311
9
+ DEPLOY_TOXENV : py312
12
10
PYPY_URL : https://downloads.python.org/pypy/pypy3.10-v7.3.13-linux64.tar.bz2
13
11
# Work around https://github.com/tox-dev/tox/issues/1550
14
12
PYTHONIOENCODING : utf-8
@@ -20,10 +18,6 @@ environment:
20
18
APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
21
19
- TOXENV : pypy3
22
20
APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
23
- - TOXENV : py37
24
- APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
25
- - TOXENV : py38
26
- APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
27
21
- TOXENV : py39
28
22
APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
29
23
- TOXENV : py310
@@ -32,26 +26,16 @@ environment:
32
26
APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
33
27
- TOXENV : py312
34
28
APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
35
- - TOXENV : py38
36
- APPVEYOR_BUILD_WORKER_IMAGE : *macos_image
29
+ - TOXENV : py313
30
+ APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
37
31
- TOXENV : py39
38
32
APPVEYOR_BUILD_WORKER_IMAGE : *macos_image
39
33
- TOXENV : py310
40
34
APPVEYOR_BUILD_WORKER_IMAGE : *macos_image
41
35
- TOXENV : py311
42
36
APPVEYOR_BUILD_WORKER_IMAGE : *macos_image
43
- - TOXENV : py37
44
- PYTHON : " C:/Python37"
45
- APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
46
- - TOXENV : py37
47
- PYTHON : " C:/Python37-x64"
48
- APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
49
- - TOXENV : py38
50
- PYTHON : " C:/Python38"
51
- APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
52
- - TOXENV : py38
53
- PYTHON : " C:/Python38-x64"
54
- APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
37
+ - TOXENV : py312
38
+ APPVEYOR_BUILD_WORKER_IMAGE : *macos_image
55
39
- TOXENV : py39
56
40
PYTHON : " C:/Python39"
57
41
APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
@@ -76,6 +60,12 @@ environment:
76
60
- TOXENV : py312
77
61
PYTHON : " C:/Python312-x64"
78
62
APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
63
+ - TOXENV : py313
64
+ PYTHON : " C:/Python313"
65
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
66
+ - TOXENV : py313
67
+ PYTHON : " C:/Python313-x64"
68
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
79
69
for :
80
70
-
81
71
matrix :
85
75
- " SET PATH=%PYTHON%;%PYTHON%/Scripts;%PATH%"
86
76
- " python --version"
87
77
- " IF %PYTHON:~-4% == -x64 (SET ARCH=x64) ELSE (SET ARCH=i386)"
78
+ - " IF %PYTHON:~-4% == -x64 (SET PLATFORM_WHEEL=win_amd64) ELSE (SET PLATFORM_WHEEL=win32)"
88
79
- ps : " Start-FileDownload https://mediaarea.net/download/binary/mediainfo/${Env:MEDIAINFO_VERSION}/MediaInfo_CLI_${Env:MEDIAINFO_VERSION}_Windows_${Env:ARCH}.zip"
89
80
- ps : " unzip -o MediaInfo_CLI_${Env:MEDIAINFO_VERSION}_Windows_${Env:ARCH}.zip LIBCURL.DLL"
90
81
- ps : " Start-FileDownload https://mediaarea.net/download/binary/libmediainfo0/${Env:MEDIAINFO_VERSION}/MediaInfo_DLL_${Env:MEDIAINFO_VERSION}_Windows_${Env:ARCH}_WithoutInstaller.7z"
100
91
deploy_script :
101
92
- ps : |
102
93
If (($env:APPVEYOR_REPO_TAG -eq "true") -and ($env:TOXENV -eq $env:DEPLOY_TOXENV)) {
103
- pip install twine wheel
104
- python setup.py bdist_wheel
94
+ pip install twine wheel pdm
95
+ pdm build --no-sdist
96
+ wheel tags --remove --platform-tag=${Env:PLATFORM_WHEEL} dist/*-py3-none-any.whl
105
97
Invoke-Expression "twine upload --skip-existing dist/*.whl"
106
98
}
107
99
-
125
117
if [[ $APPVEYOR_REPO_TAG == "true" && $TOXENV == $DEPLOY_TOXENV ]]; then
126
118
mv MediaInfoLib/libmediainfo.0.dylib pymediainfo
127
119
mv MediaInfoLib/License.html docs
128
- pip install twine wheel
129
- python setup.py bdist_wheel
120
+ pip install twine wheel pdm
121
+ pdm build --no-sdist
122
+ wheel tags --remove --platform-tag=macosx-10.10-x86_64-macosx-11-universal2 dist/*-py3-none-any.whl
130
123
twine upload --skip-existing dist/*.whl
131
124
fi
132
125
-
@@ -151,28 +144,40 @@ for:
151
144
fi
152
145
# "python -m pip" will work with the unpacked PyPy too, "pip" won't
153
146
python -m pip install tox
154
- pushd /tmp
155
- libzen_deb=libzen0v5_${LIBZEN_VERSION}-1_amd64.xUbuntu_${UBUNTU_VERSION}.deb
156
- mediainfo_deb=libmediainfo0v5_${MEDIAINFO_VERSION}-1_amd64.xUbuntu_${UBUNTU_VERSION}.deb
157
- curl -O "https://mediaarea.net/download/binary/libzen0/${LIBZEN_VERSION}/${libzen_deb}"
158
- curl -O "https://mediaarea.net/download/binary/libmediainfo0/${MEDIAINFO_VERSION}/${mediainfo_deb}"
159
- sudo apt-get -y install libmms0
160
- sudo dpkg -i "${libzen_deb}" "${mediainfo_deb}"
161
- popd
147
+ curl -O https://mediaarea.net/download/binary/libmediainfo0/${MEDIAINFO_VERSION}/MediaInfo_DLL_${MEDIAINFO_VERSION}_Lambda_x86_64.zip
148
+ unzip MediaInfo_DLL_${MEDIAINFO_VERSION}_Lambda_x86_64.zip -d x86_64
149
+ curl -O https://mediaarea.net/download/binary/libmediainfo0/${MEDIAINFO_VERSION}/MediaInfo_DLL_${MEDIAINFO_VERSION}_Lambda_arm64.zip
150
+ unzip MediaInfo_DLL_${MEDIAINFO_VERSION}_Lambda_arm64.zip -d arm64
162
151
fi
163
152
build : off
164
153
test_script : |
165
154
if [[ $TOXENV =~ doc.* ]]; then
166
155
TOX_PARALLEL_NO_SPINNER=1 tox -p
167
156
else
157
+ # Use the previously downloaded library
158
+ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:x86_64/lib/"
168
159
# We want to see the progression of the tests so we can't run
169
160
# tox environments in parallel
170
161
tox
171
162
fi
172
163
deploy_script : |
173
164
set -eo pipefail
174
165
if [[ $APPVEYOR_REPO_TAG == "true" && $TOXENV == $DEPLOY_TOXENV ]]; then
175
- pip install twine
176
- python setup.py sdist
177
- twine upload --skip-existing dist/*.gz
166
+ pip install twine wheel pdm
167
+ # source distribution
168
+ pdm build --no-wheel
169
+
170
+ # wheels
171
+ mv x86_64/LICENSE docs
172
+ # wheel x86_64
173
+ cp x86_64/lib/libmediainfo.so.0 pymediainfo/libmediainfo.so.0
174
+ pdm build --no-sdist
175
+ wheel tags --remove --platform-tag=manylinux_2_34-x86_64 dist/*-py3-none-any.whl
176
+ # wheel arm64
177
+ mv -f arm64/lib/libmediainfo.so.0 pymediainfo/libmediainfo.so.0
178
+ pdm build --no-sdist
179
+ wheel tags --remove --platform-tag=manylinux_2_34-arm64 dist/*-py3-none-any.whl
180
+
181
+ # upload
182
+ twine upload --skip-existing dist/*.gz dist/*.whl
178
183
fi
0 commit comments