mirror of
https://github.com/kkroening/ffmpeg-python.git
synced 2025-05-19 04:19:17 +08:00
Use GitHub Actions for CI. (#641)
This sets up GitHub Actions (GHA) to run in place of the currently broken Travis CI. Initially, this only covers running tox/pytest and Black, but may eventually be extended to run pylint, mypy, flake8, etc. - see #605, for example. Notes: * Python 3.10 is not yet supported due to the `collections.Iterable` issue discussed in #330, #624, etc. * The Black CI step acts as a linting step, rather than attempting to have the GHA job automatically update/commit/push the reformarted code. * Black is currently pinned to an older version that supports `--target-version py27` until Python 2 compatibility can be dropped in the final Python 2 compatibility release of ffmpeg-python. * Only the main source directory (`ffmpeg/`) is checked with Black at the moment. The `examples/` directory should also be checked, but will be done as a separate PR. Co-authored by: Christian Clauss <cclauss@me.com>
This commit is contained in:
parent
fd1da13f11
commit
29b6f09298
44
.github/workflows/ci.yml
vendored
Normal file
44
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
python-version:
|
||||||
|
- "2.7"
|
||||||
|
- "3.5"
|
||||||
|
- "3.6"
|
||||||
|
- "3.7"
|
||||||
|
- "3.8"
|
||||||
|
- "3.9"
|
||||||
|
# - "3.10" # FIXME: broken due to `collections.Iterable` issue; see #330 / #624 / etc.
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
- name: Install ffmpeg
|
||||||
|
run: |
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install ffmpeg
|
||||||
|
- name: Setup pip + tox
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade \
|
||||||
|
"pip==20.3.4; python_version < '3.6'" \
|
||||||
|
"pip==21.3.1; python_version >= '3.6'"
|
||||||
|
python -m pip install tox==3.24.5 tox-gh-actions==2.9.1
|
||||||
|
- name: Test with tox
|
||||||
|
run: tox
|
||||||
|
black:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: psf/black@21.12b0 # TODO: upgrade after dropping Python 2 support.
|
||||||
|
with:
|
||||||
|
src: ffmpeg # TODO: also format `examples`.
|
||||||
|
version: 21.12b0
|
32
.travis.yml
32
.travis.yml
@ -1,32 +0,0 @@
|
|||||||
language: python
|
|
||||||
before_install:
|
|
||||||
- >
|
|
||||||
[ -f ffmpeg-release/ffmpeg ] || (
|
|
||||||
curl -O https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz &&
|
|
||||||
mkdir -p ffmpeg-release &&
|
|
||||||
tar Jxf ffmpeg-release-amd64-static.tar.xz --strip-components=1 -C ffmpeg-release
|
|
||||||
)
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- python: 2.7
|
|
||||||
env: TOX_ENV=py27
|
|
||||||
- python: 3.4
|
|
||||||
env: TOX_ENV=py34
|
|
||||||
- python: 3.5
|
|
||||||
env: TOX_ENV=py35
|
|
||||||
- python: 3.6
|
|
||||||
env: TOX_ENV=py36
|
|
||||||
- python: 3.7
|
|
||||||
dist: xenial # required for Python >= 3.7
|
|
||||||
env: TOX_ENV=py37
|
|
||||||
- python: pypy
|
|
||||||
env: TOX_ENV=pypy
|
|
||||||
install:
|
|
||||||
- pip install tox
|
|
||||||
script:
|
|
||||||
- export PATH=$(readlink -f ffmpeg-release):$PATH
|
|
||||||
- tox -e $TOX_ENV
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- .tox
|
|
||||||
- ffmpeg-release
|
|
@ -1,6 +1,9 @@
|
|||||||
# ffmpeg-python: Python bindings for FFmpeg
|
# ffmpeg-python: Python bindings for FFmpeg
|
||||||
|
|
||||||
[](https://travis-ci.org/kkroening/ffmpeg-python)
|
[![CI][ci-badge]][ci]
|
||||||
|
|
||||||
|
[ci-badge]: https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml/badge.svg
|
||||||
|
[ci]: https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml
|
||||||
|
|
||||||
<img src="https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png" alt="ffmpeg-python logo" width="60%" />
|
<img src="https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png" alt="ffmpeg-python logo" width="60%" />
|
||||||
|
|
||||||
|
@ -40,7 +40,6 @@ if sys.version_info.major >= 3:
|
|||||||
class basestring(with_metaclass(BaseBaseString)):
|
class basestring(with_metaclass(BaseBaseString)):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# noinspection PyUnresolvedReferences,PyCompatibility
|
# noinspection PyUnresolvedReferences,PyCompatibility
|
||||||
from builtins import basestring
|
from builtins import basestring
|
||||||
|
2
setup.py
2
setup.py
@ -60,8 +60,6 @@ keywords = misc_keywords + file_formats
|
|||||||
setup(
|
setup(
|
||||||
name='ffmpeg-python',
|
name='ffmpeg-python',
|
||||||
packages=['ffmpeg'],
|
packages=['ffmpeg'],
|
||||||
setup_requires=['pytest-runner'],
|
|
||||||
tests_require=['pytest', 'pytest-mock'],
|
|
||||||
version=version,
|
version=version,
|
||||||
description='Python bindings for FFmpeg - with complex filtering support',
|
description='Python bindings for FFmpeg - with complex filtering support',
|
||||||
author='Karl Kroening',
|
author='Karl Kroening',
|
||||||
|
11
tox.ini
11
tox.ini
@ -4,7 +4,16 @@
|
|||||||
# and then run "tox" from this directory.
|
# and then run "tox" from this directory.
|
||||||
|
|
||||||
[tox]
|
[tox]
|
||||||
envlist = py27, py34, py35, py36, py37, pypy
|
envlist = py27, py35, py36, py37, py38, py39
|
||||||
|
|
||||||
|
[gh-actions]
|
||||||
|
python =
|
||||||
|
2.7: py27
|
||||||
|
3.5: py35
|
||||||
|
3.6: py36
|
||||||
|
3.7: py37
|
||||||
|
3.8: py38
|
||||||
|
3.9: py39
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
commands = py.test -vv
|
commands = py.test -vv
|
||||||
|
Loading…
x
Reference in New Issue
Block a user