Skip to content

Build wheels on test-infra machines #55

Build wheels on test-infra machines

Build wheels on test-infra machines #55

Workflow file for this run

name: Build and test Linux wheels
on:
pull_request:
push:
branches:
- nightly
- main
- release/*
tags:
- v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref_name }}-${{ github.ref_type == 'branch' && github.sha }}-${{ github.event_name == 'workflow_dispatch' }}
cancel-in-progress: true
permissions:
id-token: write
contents: write
jobs:
# generate-matrix:
# uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@main
# with:
# package-type: wheel
# os: linux
# test-infra-repository: pytorch/test-infra
# test-infra-ref: main
# with-xpu: disable
# with-rocm: disable
# with-cuda: disable
# build:
# needs: generate-matrix
# strategy:
# fail-fast: false
# name: Build and Upload wheel
# uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@main
# with:
# repository: pytorch/torchcodec
# ref: ""
# test-infra-repository: pytorch/test-infra
# test-infra-ref: main
# build-matrix: ${{ needs.generate-matrix.outputs.matrix }}
# post-script: packaging/post_build_script.sh
# env-var-script: packaging/env_var_script.sh
# smoke-test-script: packaging/fake_smoke_test.py
# package-name: torchcodec
# trigger-event: ${{ github.event_name }}
# build-platform: "python-build-package"
# wheel-build-extra-args: "--no-isolation"
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']
if: ${{ always() }}
# 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: |
echo $CONDA_PREFIX
python --version
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.
# .github/scripts/assert_ffmpeg_not_installed.sh
# 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: 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 test/decoders/manual_smoke_test.py
# - name: Run Python tests
# run: |
# pytest test