Skip to content

Commit 08bbe0c

Browse files
committed
CI: drop Travis, do everything with AppVeyor
And use a token for PyPI upload.
1 parent a7dcb6d commit 08bbe0c

File tree

3 files changed

+153
-146
lines changed

3 files changed

+153
-146
lines changed

.travis.yml

-110
This file was deleted.

README.rst

-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@ pymediainfo
1313
.. image:: https://img.shields.io/pypi/implementation/pymediainfo.svg
1414
:target: https://pypi.org/project/pymediainfo
1515

16-
.. image:: https://travis-ci.com/sbraz/pymediainfo.svg?branch=master
17-
:target: https://travis-ci.com/sbraz/pymediainfo
18-
1916
.. image:: https://ci.appveyor.com/api/projects/status/g15a2daem1oub57n/branch/master?svg=true
2017
:target: https://ci.appveyor.com/project/sbraz/pymediainfo
2118

appveyor.yml

+153-33
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,78 @@
1-
image:
2-
# Currently required to support Python 3.9
3-
- Visual Studio 2019
41
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
513
# Work around https://github.com/tox-dev/tox/issues/1550
614
PYTHONIOENCODING: utf-8
7-
MEDIAINFO_VERSION: 22.09
15+
TOX_PARALLEL_NO_SPINNER: 1
16+
TWINE_USERNAME: "__token__"
817
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+
-
1072
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:
3276
- "SET PATH=%PYTHON%;%PYTHON%/Scripts;%PATH%"
3377
- "python --version"
3478
- "IF %PYTHON:~-4% == -x64 (SET ARCH=x64) ELSE (SET ARCH=i386)"
@@ -40,10 +84,86 @@ install:
4084
- ps: "Copy-Item -Path MediaInfo.dll -Destination ${Env:PYTHON}"
4185
- "move MediaInfo.dll pymediainfo"
4286
- "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

Comments
 (0)