|
56 | 56 | architecture: aarch64 |
57 | 57 | build-platform: "python-build-package" |
58 | 58 | build-command: "BUILD_AGAINST_ALL_FFMPEG_FROM_S3=1 ENABLE_CUDA=1 python -m build --wheel -vvv --no-isolation" |
59 | | - |
60 | | - install-and-test: |
61 | | - runs-on: linux.arm64.2xlarge |
62 | | - container: |
63 | | - image: pytorch/manylinuxaarch64-builder:cuda12.6 |
64 | | - env: |
65 | | - cuda_version_without_periods: "126" |
66 | | - strategy: |
67 | | - fail-fast: false |
68 | | - matrix: |
69 | | - python-version: ['3.10'] |
70 | | - ffmpeg-version-for-tests: ['4.4.2', '5.1.2', '6.1.1', '7.0.1', '8.0'] |
71 | | - needs: build |
72 | | - steps: |
73 | | - - uses: actions/download-artifact@v4 |
74 | | - with: |
75 | | - name: meta-pytorch_torchcodec__${{ matrix.python-version }}_cu${{ env.cuda_version_without_periods }}_aarch64 |
76 | | - path: pytorch/torchcodec/dist/ |
77 | | - - name: Setup conda env |
78 | | - uses: conda-incubator/setup-miniconda@v3 |
79 | | - with: |
80 | | - auto-update-conda: true |
81 | | - # Using miniforge instead of miniconda ensures that the default |
82 | | - # conda channel is conda-forge instead of main/default. This ensures |
83 | | - # ABI consistency between dependencies: |
84 | | - # https://conda-forge.org/docs/user/transitioning_from_defaults/ |
85 | | - miniforge-version: latest |
86 | | - activate-environment: test |
87 | | - python-version: ${{ matrix.python-version }} |
88 | | - - name: Update pip |
89 | | - run: python -m pip install --upgrade pip |
90 | | - - name: Install PyTorch |
91 | | - run: | |
92 | | - ${CONDA_RUN} python -m pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cu${{ env.cuda_version_without_periods }} |
93 | | - - name: Install torchcodec from the wheel |
94 | | - run: | |
95 | | - wheel_path=`find pytorch/torchcodec/dist -type f -name "*.whl"` |
96 | | - echo Installing $wheel_path |
97 | | - python -m pip install $wheel_path -vvv |
98 | | -
|
99 | | - - name: Check out repo |
100 | | - uses: actions/checkout@v3 |
101 | | - - name: Install ffmpeg, post build |
102 | | - run: | |
103 | | - # Ideally we would have checked for that before installing the wheel, |
104 | | - # but we need to checkout the repo to access this file, and we don't |
105 | | - # want to checkout the repo before installing the wheel to avoid any |
106 | | - # side-effect. It's OK. |
107 | | - source packaging/helpers.sh |
108 | | - assert_ffmpeg_not_installed |
109 | | -
|
110 | | - conda install "ffmpeg=${{ matrix.ffmpeg-version-for-tests }}" -c conda-forge |
111 | | - ffmpeg -version |
112 | | - echo LD_LIBRARY_PATH=$CONDA_PREFIX/lib:/usr/local/cuda/lib64/:${LD_LIBRARY_PATH} >> $GITHUB_ENV |
113 | | -
|
114 | | - - name: Install test dependencies |
115 | | - run: | |
116 | | - # Ideally we would find a way to get those dependencies from pyproject.toml |
117 | | - python -m pip install numpy pytest pillow |
118 | | -
|
119 | | - - name: Delete the src/ folder just for fun |
120 | | - run: | |
121 | | - # The only reason we checked-out the repo is to get access to the |
122 | | - # tests. We don't care about the rest. Out of precaution, we delete |
123 | | - # the src/ folder to be extra sure that we're running the code from |
124 | | - # the installed wheel rather than from the source. |
125 | | - # This is just to be extra cautious and very overkill because a) |
126 | | - # there's no way the `torchcodec` package from src/ can be found from |
127 | | - # the PythonPath: the main point of `src/` is precisely to protect |
128 | | - # against that and b) if we ever were to execute code from |
129 | | - # `src/torchcodec`, it would fail loudly because the built .so files |
130 | | - # aren't present there. |
131 | | - rm -r src/ |
132 | | - ls |
133 | | - - name: Run Python tests |
134 | | - run: | |
135 | | - pytest --override-ini="addopts=-v" test |
136 | | -
|
0 commit comments