File: smoke.yml

package info (click to toggle)
python-av 16.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,684 kB
  • sloc: python: 7,607; sh: 182; ansic: 174; makefile: 135
file content (149 lines) | stat: -rw-r--r-- 4,075 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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-24.04
    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-24.04, python: "3.14t", ffmpeg: "8.0", extras: true}
          - {os: ubuntu-24.04, python: "3.12", ffmpeg: "8.0", extras: true}
          - {os: ubuntu-24.04, python: "pypy3.10", ffmpeg: "8.0"}
          - {os: macos-14, python: "3.10", ffmpeg: "8.0"}

    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 }}
        allow-prereleases: true

    - name: OS Packages
      run: |
        case ${{ matrix.config.os }} in
          ubuntu-24.04)
            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 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.10", ffmpeg: "latest"}

    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 config --add channels scientific-python-nightly-wheels
        conda create -q -n pyav \
          numpy \
          pillow \
          pytest \
          python=${{ matrix.config.python }} \
          setuptools \
          cython

    - 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