diff --git a/.github/workflows/linux_cuda_wheel.yaml b/.github/workflows/linux_cuda_wheel.yaml index a4b001c2..27d7a7a4 100644 --- a/.github/workflows/linux_cuda_wheel.yaml +++ b/.github/workflows/linux_cuda_wheel.yaml @@ -66,7 +66,7 @@ jobs: # For the actual release we should add that label and change this to # include more python versions. python-version: ['3.9'] - cuda-version: ['12.6'] + cuda-version: ['11.8', '12.4', '12.6'] ffmpeg-version-for-tests: ['5', '6', '7'] container: image: "pytorch/manylinux2_28-builder:cuda${{ matrix.cuda-version }}" diff --git a/.github/workflows/linux_wheel.yaml b/.github/workflows/linux_wheel.yaml index be5c1b0c..38f25733 100644 --- a/.github/workflows/linux_wheel.yaml +++ b/.github/workflows/linux_wheel.yaml @@ -24,6 +24,7 @@ defaults: shell: bash -l -eo pipefail {0} jobs: + generate-matrix: uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@main with: @@ -55,76 +56,74 @@ jobs: build-platform: "python-build-package" build-command: "BUILD_AGAINST_ALL_FFMPEG_FROM_S3=1 python -m build --wheel -vvv --no-isolation" -# TODO: Put this back!!!! -# See https://github.com/pytorch/torchcodec/issues/415 -# install-and-test: -# runs-on: ubuntu-latest -# strategy: -# fail-fast: false -# matrix: -# python-version: ['3.9'] -# ffmpeg-version-for-tests: ['4.4.2', '5.1.2', '6.1.1', '7.0.1'] -# needs: build -# steps: -# - uses: actions/download-artifact@v3 -# with: -# name: pytorch_torchcodec__${{ matrix.python-version }}_cpu_x86_64 -# path: pytorch/torchcodec/dist/ -# - 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 PyTorch -# run: | -# python -m pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cpu -# - name: Install torchcodec from the wheel -# run: | -# wheel_path=`find pytorch/torchcodec/dist -type f -name "*.whl"` -# echo Installing $wheel_path -# python -m pip install $wheel_path -vvv + install-and-test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ['3.9'] + ffmpeg-version-for-tests: ['4.4.2', '5.1.2', '6.1.1', '7.0.1'] + needs: build + steps: + - uses: actions/download-artifact@v3 + with: + name: pytorch_torchcodec__${{ matrix.python-version }}_cpu_x86_64 + path: pytorch/torchcodec/dist/ + - 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 PyTorch + run: | + python -m pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cpu + - name: Install torchcodec from the wheel + run: | + wheel_path=`find pytorch/torchcodec/dist -type f -name "*.whl"` + echo Installing $wheel_path + python -m pip install $wheel_path -vvv -# - name: Check out repo -# uses: actions/checkout@v3 -# - name: Install ffmpeg, post build -# run: | -# # Ideally we would have checked for that before installing the wheel, -# # but we need to checkout the repo to access this file, and we don't -# # want to checkout the repo before installing the wheel to avoid any -# # side-effect. It's OK. -# source packaging/helpers.sh -# assert_ffmpeg_not_installed + - name: Check out repo + uses: actions/checkout@v3 + - name: Install ffmpeg, post build + run: | + # Ideally we would have checked for that before installing the wheel, + # but we need to checkout the repo to access this file, and we don't + # want to checkout the repo before installing the wheel to avoid any + # side-effect. It's OK. + source packaging/helpers.sh + assert_ffmpeg_not_installed -# conda install "ffmpeg=${{ matrix.ffmpeg-version-for-tests }}" -c conda-forge -# ffmpeg -version + conda install "ffmpeg=${{ matrix.ffmpeg-version-for-tests }}" -c conda-forge + ffmpeg -version -# - name: Install test dependencies -# run: | -# python -m pip install --pre torchvision --index-url https://download.pytorch.org/whl/nightly/cpu -# # Ideally we would find a way to get those dependencies from pyproject.toml -# python -m pip install numpy pytest pillow + - name: Install test dependencies + run: | + python -m pip install --pre torchvision --index-url https://download.pytorch.org/whl/nightly/cpu + # Ideally we would find a way to get those dependencies from pyproject.toml + python -m pip install numpy pytest pillow -# - name: Delete the src/ folder just for fun -# run: | -# # The only reason we checked-out the repo is to get access to the -# # tests. We don't care about the rest. Out of precaution, we delete -# # the src/ folder to be extra sure that we're running the code from -# # the installed wheel rather than from the source. -# # This is just to be extra cautious and very overkill because a) -# # there's no way the `torchcodec` package from src/ can be found from -# # the PythonPath: the main point of `src/` is precisely to protect -# # against that and b) if we ever were to execute code from -# # `src/torchcodec`, it would fail loudly because the built .so files -# # aren't present there. -# rm -r src/ -# ls -# - name: Smoke test -# run: | -# python -X faulthandler test/decoders/manual_smoke_test.py -# - name: Run Python tests -# run: | -# pytest test -vvv + - name: Delete the src/ folder just for fun + run: | + # The only reason we checked-out the repo is to get access to the + # tests. We don't care about the rest. Out of precaution, we delete + # the src/ folder to be extra sure that we're running the code from + # the installed wheel rather than from the source. + # This is just to be extra cautious and very overkill because a) + # there's no way the `torchcodec` package from src/ can be found from + # the PythonPath: the main point of `src/` is precisely to protect + # against that and b) if we ever were to execute code from + # `src/torchcodec`, it would fail loudly because the built .so files + # aren't present there. + rm -r src/ + ls + - name: Smoke test + run: | + python -X faulthandler test/decoders/manual_smoke_test.py + - name: Run Python tests + run: | + pytest test -vvv