Skip to content

Add option to build against installed FFmpeg and re-enable C++ tests #89

Add option to build against installed FFmpeg and re-enable C++ tests

Add option to build against installed FFmpeg and re-enable C++ tests #89

Workflow file for this run

name: Unit Test
on:
push:
branches: [ main ]
pull_request:
concurrency:
group: unit-test${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_number || github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash -l -eo pipefail {0}
jobs:
unit_tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.8', '3.12']
ffmpeg-version-for-tests: ['4.4.2', '5.1.2', '6.1.1', '7.0.1']
steps:
- name: Check out repo
uses: actions/checkout@v3
- name: Setup conda env
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
miniconda-version: "latest"
activate-environment: test
python-version: ${{ matrix.python-version }}
- name: Update pip
run: python -m pip install --upgrade pip
- name: Install dependencies
run: |
python -m pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cpu
- name: Build and install torchcodec
run: |
if command -v "ffmpeg" &> /dev/null
then
echo "ffmpeg is installed, but it shouldn't! Exiting!!"
exit 1
fi
# TODO: should we pass -DCMAKE_BUILD_TYPE=Debug here? That's what we
# do for the C++ tests.
python -m pip install -e ".[dev]" --no-build-isolation -vvv
# list the built so files, for debugging.
find src | grep ".so"
- name: Install ffmpeg, post build
run: |
conda install "ffmpeg=${{ matrix.ffmpeg-version-for-tests }}" -c conda-forge
ffmpeg -version
- name: Smoke test
run: |
python test/decoders/manual_smoke_test.py
# TODO: diff the output frame with its expeceted value
- name: Run Python tests
run: |
pytest test
- name: Build and run C++ tests
run: |
conda install pkg-config -c conda-forge
mkdir -p build
pushd build
TORCH_PATH=$(python -c "import pathlib, torch; print(pathlib.Path(torch.__path__[0]))")
Torch_DIR="${TORCH_PATH}/share/cmake/Torch"
export BUILD_AGAINST_INSTALLED_FFMPEG=1
cmake .. -DTorch_DIR=$Torch_DIR -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build .
ctest
popd