1
- image :
2
- # Currently required to support Python 3.9
3
- - Visual Studio 2019
4
1
environment :
2
+ LINUX_IMAGE : &linux_image Ubuntu2004
3
+ MACOS_IMAGE : &macos_image macos-monterey
4
+ WINDOWS_IMAGE : &windows_image Visual Studio 2022
5
+ LIBZEN_VERSION : 0.4.39
6
+ MEDIAINFO_VERSION : 22.09
7
+ UBUNTU_VERSION : 20.04
8
+ QA_PYTHON_VERSION : 3.11
9
+ # AppVeyor doesn't offer Python 3.11 on macOS yet
10
+ # https://github.com/appveyor/ci/issues/3858
11
+ DEPLOY_TOXENV : py310
12
+ PYPY_URL : https://downloads.python.org/pypy/pypy3.9-v7.3.9-linux64.tar.bz2
5
13
# Work around https://github.com/tox-dev/tox/issues/1550
6
14
PYTHONIOENCODING : utf-8
7
- MEDIAINFO_VERSION : 22.09
15
+ TOX_PARALLEL_NO_SPINNER : 1
16
+ TWINE_USERNAME : " __token__"
8
17
TWINE_PASSWORD :
9
- secure : /EO8CxTxhQVNsGNZZvU51jjHwPW524rgddNlwOAyLoA=
18
+ secure : Jp2QpmAii1mmAXmotdXmPx5q679oMcRolziuu9m2pawkvOnRJtWMsI4uWiTiSbiw+HMbyyWwVpy+FiaPsHZxtM863PNNJidW1WDam4kn8EM+rznjgZfO9NSCcwZJU5jcTYCwuXo3+FnVNK5rvQ8QJ+Zu6WzH1Ysb+uJSz8e6xt7d7hoZbb9VH5bJC7tYrw+bH+TfA9juVpIYfCavozLLTDLqTcvPfJ+LXMPbiZO+oOztNsLRsviH2QAPXaLspXvCr6qUVH3A84KCdfSXCOZG0g/eYUZ6ilMLESe7DrYZrRc=
19
+ matrix :
20
+ - TOXENV : docs,black,flake8,isort,mypy,pylint
21
+ APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
22
+ - TOXENV : pypy3
23
+ APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
24
+ - TOXENV : py37
25
+ APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
26
+ - TOXENV : py38
27
+ APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
28
+ - TOXENV : py39
29
+ APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
30
+ - TOXENV : py310
31
+ APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
32
+ - TOXENV : py311
33
+ APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
34
+ - TOXENV : py38
35
+ APPVEYOR_BUILD_WORKER_IMAGE : *macos_image
36
+ - TOXENV : py39
37
+ APPVEYOR_BUILD_WORKER_IMAGE : *macos_image
38
+ - TOXENV : py310
39
+ APPVEYOR_BUILD_WORKER_IMAGE : *macos_image
40
+ - TOXENV : py37
41
+ PYTHON : " C:/Python37"
42
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
43
+ - TOXENV : py37
44
+ PYTHON : " C:/Python37-x64"
45
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
46
+ - TOXENV : py38
47
+ PYTHON : " C:/Python38"
48
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
49
+ - TOXENV : py38
50
+ PYTHON : " C:/Python38-x64"
51
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
52
+ - TOXENV : py39
53
+ PYTHON : " C:/Python39"
54
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
55
+ - TOXENV : py39
56
+ PYTHON : " C:/Python39-x64"
57
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
58
+ - TOXENV : py310
59
+ PYTHON : " C:/Python310"
60
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
61
+ - TOXENV : py310
62
+ PYTHON : " C:/Python310-x64"
63
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
64
+ - TOXENV : py311
65
+ PYTHON : " C:/Python311"
66
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
67
+ - TOXENV : py311
68
+ PYTHON : " C:/Python311-x64"
69
+ APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
70
+ for :
71
+ -
10
72
matrix :
11
- - PYTHON : " C:/Python37"
12
- TOXENV : py37
13
- - PYTHON : " C:/Python38"
14
- TOXENV : py38
15
- - PYTHON : " C:/Python39"
16
- TOXENV : py39
17
- - PYTHON : " C:/Python310"
18
- TOXENV : py310
19
- - PYTHON : " C:/Python311"
20
- TOXENV : py311
21
- - PYTHON : " C:/Python37-x64"
22
- TOXENV : py37
23
- - PYTHON : " C:/Python38-x64"
24
- TOXENV : py38
25
- - PYTHON : " C:/Python39-x64"
26
- TOXENV : py39
27
- - PYTHON : " C:/Python310-x64"
28
- TOXENV : py310
29
- - PYTHON : " C:/Python311-x64"
30
- TOXENV : py311
31
- install :
73
+ only :
74
+ - APPVEYOR_BUILD_WORKER_IMAGE : *windows_image
75
+ install :
32
76
- " SET PATH=%PYTHON%;%PYTHON%/Scripts;%PATH%"
33
77
- " python --version"
34
78
- " IF %PYTHON:~-4% == -x64 (SET ARCH=x64) ELSE (SET ARCH=i386)"
@@ -40,10 +84,86 @@ install:
40
84
- ps : " Copy-Item -Path MediaInfo.dll -Destination ${Env:PYTHON}"
41
85
- " move MediaInfo.dll pymediainfo"
42
86
- " move Developers\\ License.html docs"
43
- - " pip install --upgrade setuptools tox twine wheel"
44
- build_script :
45
- - " python setup.py bdist_wheel"
46
- test_script :
47
- - " tox"
48
- deploy_script :
49
- - ps : If ($env:APPVEYOR_REPO_TAG -eq "true") { Invoke-Expression "twine upload --skip-existing -u sbraz dist/*.whl" }
87
+ - " pip install tox"
88
+ build : off
89
+ test_script :
90
+ - " tox"
91
+ deploy_script :
92
+ - ps : |
93
+ If (($env:APPVEYOR_REPO_TAG -eq "true") -and ($env:TOXENV -eq $env:DEPLOY_TOXENV)) {
94
+ pip install twine wheel
95
+ python setup.py bdist_wheel
96
+ Invoke-Expression "twine upload --skip-existing dist/*.whl"
97
+ }
98
+ -
99
+ matrix :
100
+ only :
101
+ - APPVEYOR_BUILD_WORKER_IMAGE : *macos_image
102
+ install : |
103
+ set -eo pipefail
104
+ PYTHON_VERSION="$(sed -E 's/^py(3)(.*)$/\1.\2/' <<< "$TOXENV")"
105
+ source "${HOME}/venv${PYTHON_VERSION}/bin/activate"
106
+ pip install tox
107
+ curl https://mediaarea.net/download/binary/libmediainfo0/${MEDIAINFO_VERSION}/MediaInfo_DLL_${MEDIAINFO_VERSION}_Mac_x86_64+arm64.tar.bz2 \
108
+ | tar xj MediaInfoLib/libmediainfo.0.dylib MediaInfoLib/License.html
109
+ # Required for tests to pass with tox
110
+ cp MediaInfoLib/libmediainfo.0.dylib /usr/local/lib/
111
+ build : off
112
+ test_script :
113
+ - " tox"
114
+ deploy_script : |
115
+ set -eo pipefail
116
+ if [[ $APPVEYOR_REPO_TAG == "true" && $TOXENV == $DEPLOY_TOXENV ]]; then
117
+ mv MediaInfoLib/libmediainfo.0.dylib pymediainfo
118
+ mv MediaInfoLib/License.html docs
119
+ pip install twine wheel
120
+ python setup.py bdist_wheel
121
+ twine upload --skip-existing dist/*.whl
122
+ fi
123
+ -
124
+ matrix :
125
+ only :
126
+ - APPVEYOR_BUILD_WORKER_IMAGE : *linux_image
127
+ install : |
128
+ set -eo pipefail
129
+ if [[ $TOXENV =~ doc.* ]]; then
130
+ source "${HOME}/venv${QA_PYTHON_VERSION}/bin/activate"
131
+ pip install tox
132
+ else
133
+ if [[ $TOXENV == pypy3 ]]; then
134
+ pushd /tmp
135
+ curl -sS "$PYPY_URL" | tar xj
136
+ PATH="$(pwd)/pypy3.9-v7.3.9-linux64/bin/:$PATH"
137
+ python -m ensurepip
138
+ popd
139
+ else
140
+ PYTHON_VERSION="$(sed -E 's/^py(3)(.*)$/\1.\2/' <<< "$TOXENV")"
141
+ source "${HOME}/venv${PYTHON_VERSION}/bin/activate"
142
+ fi
143
+ # "python -m pip" will work with the unpacked PyPy too, "pip" won't
144
+ python -m pip install tox
145
+ pushd /tmp
146
+ libzen_deb=libzen0v5_${LIBZEN_VERSION}-1_amd64.xUbuntu_${UBUNTU_VERSION}.deb
147
+ mediainfo_deb=libmediainfo0v5_${MEDIAINFO_VERSION}-1_amd64.xUbuntu_${UBUNTU_VERSION}.deb
148
+ curl -O "https://mediaarea.net/download/binary/libzen0/${LIBZEN_VERSION}/${libzen_deb}"
149
+ curl -O "https://mediaarea.net/download/binary/libmediainfo0/${MEDIAINFO_VERSION}/${mediainfo_deb}"
150
+ sudo apt-get -y install libmms0
151
+ sudo dpkg -i "${libzen_deb}" "${mediainfo_deb}"
152
+ popd
153
+ fi
154
+ build : off
155
+ test_script : |
156
+ if [[ $TOXENV =~ doc.* ]]; then
157
+ tox -p
158
+ else
159
+ # We want to see the progression of the tests so we can't run
160
+ # tox environments in parallel
161
+ tox
162
+ fi
163
+ deploy_script : |
164
+ set -eo pipefail
165
+ if [[ $APPVEYOR_REPO_TAG == "true" && ! $TOXENV =~ $DEPLOY_TOXENV ]]; then
166
+ pip install twine
167
+ python setup.py sdist
168
+ twine upload --skip-existing dist/*.gz
169
+ fi
0 commit comments