5454 build-platform: "python-build-package"
5555 build-command: "BUILD_AGAINST_ALL_FFMPEG_FROM_S3=1 ${CONDA_RUN} python3 -m build --wheel -vvv --no-isolation"
5656
57- validate-binaries :
58- uses : pytorch/test-infra/.github/workflows/validate-domain-library.yml@main
59- with :
60- package_type : " wheel"
61- os : " macos-arm64"
62- channel : " nightly"
63- repository : " pytorch/torchcodec"
64- smoke_test : " source ./packaging/validate_wheel.sh"
65- install_torch : true
66-
6757 install-and-test:
6858 runs-on: macos-m1-stable
6959 strategy:
@@ -82,57 +72,106 @@ jobs:
8272 uses: pytorch/test-infra/.github/actions/setup-miniconda@macbuildwheel
8373 with:
8474 python-version: ${{ matrix.python-version }}
85- - name : Update pip
75+ - name: Check out torchcodec repo
76+ uses: actions/checkout@v3
77+ - name: Check out tet-infra repo
78+ uses: actions/checkout@v3
79+ repository: pytorch/test-infra
80+ ref : macbuildwheel
81+ path: test-infra
82+
83+ # # start copying from test-infra/.github/actions/setup-binary-builds/action.yaml
84+ - name: Clean conda environment
85+ shell: bash -l {0}
86+ run: |
87+ set -euxo pipefail
88+ conda info | grep -i 'base environment'
89+ conda clean --all --quiet --yes
90+ - name: Reset channel priority
91+ shell: bash -l {0}
92+ run: |
93+ set -euxo pipefail
94+ conda config --set channel_priority false
95+ - name: Discover dir structure
96+ shell: bash -l {0}
97+ run: |
98+ echo "pwd"
99+ pwd
100+ echo "ls -lh"
101+ ls -lh
102+ - name: Generate file from pytorch_pkg_helpers
103+ # below does not seem necessary in our context
104+ # working-directory: "pytorch/torchcodec"
105+ shell: bash -l {0}
106+ run: |
107+ set -euxo pipefail
108+ CONDA_ENV="${RUNNER_TEMP}/pytorch_pkg_helpers_${GITHUB_RUN_ID}"
109+ conda create \
110+ --yes --quiet \
111+ --prefix "${CONDA_ENV}" \
112+ "python=3.9"
113+ CONDA_ENV="${CONDA_ENV}"
114+ CONDA_RUN="conda run -p ${CONDA_ENV}"
115+ ${CONDA_RUN} python -m pip install ${GITHUB_WORKSPACE}/test-infra/tools/pkg-helpers
116+ BUILD_ENV_FILE="${RUNNER_TEMP}/build_env_${GITHUB_RUN_ID}"
117+ ${CONDA_RUN} python -m pytorch_pkg_helpers > "${BUILD_ENV_FILE}"
118+ cat "${BUILD_ENV_FILE}"
119+ echo "BUILD_ENV_FILE=${BUILD_ENV_FILE}" >> "${GITHUB_ENV}"
120+ - name: Setup conda environment for build
121+ shell: bash -l {0}
122+ env:
123+ PYTHON_VERSION: ${{ matrix.python-version }}
86124 run: |
87- python3 -m pip install --upgrade pip
125+ set -euxo pipefail
126+ CONDA_ENV="${RUNNER_TEMP}/conda_environment_${GITHUB_RUN_ID}"
127+ if [[ "${PACKAGE_TYPE:-}" == "conda" ]]; then
128+ # For conda package host python version is irrelevant
129+ export PYTHON_VERSION=3.9
130+ export CONDA_BUILD_EXTRA="conda=24.4.0 conda-build=24.3.0 python-libarchive-c=2.9"
131+ else
132+ # For wheel builds we don't need neither conda nor conda-build
133+ export CONDA_BUILD_EXTRA=""
134+ fi
135+
136+ conda create \
137+ --yes --quiet \
138+ --prefix "${CONDA_ENV}" \
139+ "python=${PYTHON_VERSION}" \
140+ cmake=3.26 \
141+ ninja=1.10 \
142+ pkg-config=0.29 \
143+ ${CONDA_BUILD_EXTRA} \
144+ wheel=0.37
145+
146+ echo "CONDA_ENV=${CONDA_ENV}" >> "${GITHUB_ENV}"
147+ echo "CONDA_RUN=conda run -p ${CONDA_ENV}" >> "${GITHUB_ENV}"
148+ # # end copying
149+
150+ - name: Update pip
151+ run: python -m pip install --upgrade pip
88152 - name: Install PyTorch
89153 run: |
90- python3 -m pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cpu
154+ ${CONDA_RUN} python -m pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cpu
91155 - name: Install torchcodec from the wheel
92156 run: |
93157 wheel_path=`find pytorch/torchcodec/dist -type f -name "*.whl"`
94158 echo Installing $wheel_path
95- python3 -m pip install $wheel_path -vvv
96-
97- - name : Check out repo
98- uses : actions/checkout@v3
159+ ${CONDA_RUN} python -m pip install $wheel_path -vvv
99160 - name: Install ffmpeg, post build
100161 run: |
101- # Ideally we would have checked for that before installing the wheel,
102- # but we need to checkout the repo to access this file, and we don't
103- # want to checkout the repo before installing the wheel to avoid any
104- # side-effect. It's OK.
105- source packaging/helpers.sh
106-
107- # below was failing, but when I just try to call "ffmpeg -version" that also fails?
108- #assert_ffmpeg_not_installed
109-
110162 conda install "ffmpeg=${{ matrix.ffmpeg-version-for-tests }}" -c conda-forge
111163 ffmpeg -version
112-
113164 - name: Install test dependencies
114165 run: |
115- python3 -m pip install --pre torchvision --index-url https://download.pytorch.org/whl/nightly/cpu
116- # Ideally we would find a way to get those dependencies from pyproject.toml
117- python3 -m pip install numpy pytest pillow
118-
166+ ${CONDA_RUN} python -m pip install --pre torchvision --index-url https://download.pytorch.org/whl/nightly/cpu
167+ ${CONDA_RUN} python -m pip install numpy pytest pillow
119168 - name: Delete the src/ folder just for fun
120169 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.
131170 rm -r src/
132171 ls
133172 - name: Smoke test
134173 run: |
135- python3 test/decoders/manual_smoke_test.py
174+ ${CONDA_RUN} python test/decoders/manual_smoke_test.py
136175 - name: Run Python tests
137176 run: |
138- pytest test
177+ ${CONDA_RUN} pytest test
0 commit comments