name: Unit-tests on Linux CPU on: pull_request: push: branches: - nightly - main - release/* workflow_dispatch: env: CHANNEL: "nightly" jobs: tests: name: "Unit-tests on Linux CPU" runs-on: [self-hosted, linux.12xlarge] container: image: pytorch/conda-builder:cpu strategy: matrix: py_vers: ["3.7", "3.8", "3.9", "3.10"] fail-fast: false steps: - name: Checkout repository uses: actions/checkout@v2 - name: Set Release CHANNEL (for release) if: ${{ (github.event_name == 'pull_request' && startsWith(github.base_ref, 'release')) || startsWith(github.ref, 'refs/heads/release') }} run: | echo "CHANNEL=test" >> "$GITHUB_ENV" - name: Setup Conda shell: bash -l {0} env: ENV_NAME: conda-env-${{ github.run_id }} PY_VERS: ${{ matrix.py_vers }} run: | git config --global --add safe.directory /__w/vision/vision . ~/miniconda3/etc/profile.d/conda.sh conda create -yp ${ENV_NAME} python=${PY_VERS} numpy libpng jpeg scipy echo "CONDA_RUN=conda run -p ${ENV_NAME}" >> "$GITHUB_ENV" - name: Install TorchVision shell: bash -l {0} env: VERSION: cpu CUDATOOLKIT: cpuonly run: | # Needed for JPEG library detection as setup.py detects conda presence # by running `shutil.which('conda')` export PATH=~/miniconda3/bin:$PATH set -ex ${CONDA_RUN} conda install \ --yes \ -c "pytorch-${CHANNEL}" \ -c nvidia "pytorch-${CHANNEL}"::pytorch[build="*${VERSION}*"] \ "${CUDATOOLKIT}" ${CONDA_RUN} python3 setup.py develop ${CONDA_RUN} python3 -m pip install pytest pytest-mock 'av<10' - name: Run tests shell: bash -l {0} env: ENV_NAME: conda-env-${{ github.run_id }} PY_VERS: ${{ matrix.py_vers }} run: | . ~/miniconda3/etc/profile.d/conda.sh set -ex ${CONDA_RUN} python3 -m torch.utils.collect_env ${CONDA_RUN} python3 -m pytest --junitxml=test-results/junit.xml -v --durations 20 conda env remove -p ${ENV_NAME}