Add option to build against installed FFmpeg and re-enable C++ tests #89
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |