Skip to content

Make ErrorType a proper Enum #420

Make ErrorType a proper Enum

Make ErrorType a proper Enum #420

Workflow file for this run

name: smoke
on:
push:
branches: main
paths-ignore:
- '**.md'
- '**.rst'
- '**.txt'
pull_request:
branches: main
paths-ignore:
- '**.md'
- '**.rst'
- '**.txt'
jobs:
style:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Linters
run: make lint
nix:
name: "py-${{ matrix.config.python }} lib-${{ matrix.config.ffmpeg }} ${{matrix.config.os}}"
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- {os: ubuntu-latest, python: "3.9", ffmpeg: "7.1", extras: true}
- {os: ubuntu-latest, python: "3.9", ffmpeg: "7.0.2"}
- {os: ubuntu-latest, python: pypy3.9, ffmpeg: "7.1"}
- {os: macos-14, python: "3.9", ffmpeg: "7.1"}
- {os: macos-14, python: "3.9", ffmpeg: "7.0.2"}
env:
PYAV_PYTHON: python${{ matrix.config.python }}
PYAV_LIBRARY: ffmpeg-${{ matrix.config.ffmpeg }}
steps:
- uses: actions/checkout@v4
name: Checkout
- name: Python ${{ matrix.config.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.config.python }}
- name: OS Packages
run: |
case ${{ matrix.config.os }} in
ubuntu-latest)
sudo apt-get update
sudo apt-get install autoconf automake build-essential cmake \
libtool pkg-config nasm zlib1g-dev libvorbis-dev libx264-dev
if [[ "${{ matrix.config.extras }}" ]]; then
sudo apt-get install doxygen wget
fi
;;
macos-14)
brew install automake libtool nasm pkg-config libpng libvorbis libvpx opus x264
;;
esac
- name: Pip and FFmpeg
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
scripts/build-deps
- name: Build
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
scripts/build
- name: Test
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
python -m av --version # Assert it can import.
make test
- name: Docs
if: matrix.config.extras
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
make -C docs html
- name: Doctest
if: matrix.config.extras
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
make -C docs test
- name: Examples
if: matrix.config.extras
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
scripts/test examples
windows:
name: "py-${{ matrix.config.python }} lib-${{ matrix.config.ffmpeg }} ${{matrix.config.os}}"
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- {os: windows-latest, python: "3.9", ffmpeg: "7.1"}
- {os: windows-latest, python: "3.9", ffmpeg: "7.0"}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Conda
shell: bash
run: |
. $CONDA/etc/profile.d/conda.sh
conda config --set always_yes true
conda config --add channels conda-forge
conda create -q -n pyav \
cython \
numpy \
pillow \
pytest \
python=${{ matrix.config.python }} \
setuptools
- name: Build
shell: bash
run: |
. $CONDA/etc/profile.d/conda.sh
conda activate pyav
python scripts\\fetch-vendor.py --config-file scripts\\ffmpeg-${{ matrix.config.ffmpeg }}.json $CONDA_PREFIX\\Library
python scripts\\comptime.py ${{ matrix.config.ffmpeg }}
python setup.py build_ext --inplace --ffmpeg-dir=$CONDA_PREFIX\\Library
- name: Test
shell: bash
run: |
. $CONDA/etc/profile.d/conda.sh
conda activate pyav
python -m pytest