PyTorch version tests #1590
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PyTorch version tests | |
on: | |
# https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#onschedule | |
schedule: | |
# Run at 00:00 UTC Every Day | |
- cron: "0 0 * * *" | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
timeout-minutes: 85 | |
strategy: | |
max-parallel: 5 | |
fail-fast: false | |
matrix: | |
python-version: [3.8, 3.9, "3.10"] | |
pytorch-version: | |
[2.3.1, 2.2.2, 2.1.2, 2.0.1, 1.13.1, 1.12.1, 1.10.0, 1.8.1, 1.5.1] | |
exclude: | |
- pytorch-version: 1.5.1 | |
python-version: 3.9 | |
- pytorch-version: 1.5.1 | |
python-version: "3.10" | |
# disabling python 3.9 support with PyTorch 1.7.1 and 1.8.1, to stop repeated pytorch-version test fail. | |
# https://github.com/pytorch/ignite/issues/2383 | |
- pytorch-version: 1.8.1 | |
python-version: 3.9 | |
- pytorch-version: 1.8.1 | |
python-version: "3.10" | |
- pytorch-version: 1.10.0 | |
python-version: "3.10" | |
- pytorch-version: 1.11.0 | |
python-version: "3.10" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get year & week number | |
id: get-date | |
run: echo "date=$(/bin/date "+%Y-%U")" >> $GITHUB_OUTPUT | |
shell: bash -l {0} | |
- name: Get pip cache dir | |
id: pip-cache | |
run: | | |
python3 -m pip install -U pip | |
echo "pip_cache=$(python3 -m pip cache dir)" >> $GITHUB_OUTPUT | |
shell: bash -l {0} | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/conda_pkgs_dir | |
${{ steps.pip-cache.outputs.pip_cache }} | |
key: ${{ steps.get-date.outputs.date }}-pytorch-${{ runner.os }}-${{ matrix.python-version }}-${{ matrix.pytorch-version }}-${{ hashFiles('requirements-dev.txt') }} | |
restore-keys: | | |
${{ steps.get-date.outputs.date }}-pytorch-${{ runner.os }}-${{ matrix.python-version }}-${{ matrix.pytorch-version }}- | |
- name: Setup Miniconda | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
miniconda-version: "latest" | |
python-version: ${{ matrix.python-version }} | |
use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! | |
- name: Install dependencies | |
shell: bash -l {0} | |
run: | | |
conda install pytorch=${{ matrix.pytorch-version }} torchvision cpuonly python=${{ matrix.python-version }} -c pytorch | |
pip install -r requirements-dev.txt | |
python setup.py install | |
# pytorch>=1.9.0,<1.11.0 is using "from setuptools import distutils; distutils.version.LooseVersion" anti-pattern | |
# which raises the error: AttributeError: module 'distutils' has no attribute 'version' for setuptools>59 | |
bad_pth_version=$(python -c "import torch; print('.'.join(torch.__version__.split('.')[:2]) in ['1.9', '1.10'])") | |
if [ "${bad_pth_version}" == "True" ]; then | |
pip install --upgrade "setuptools<59" | |
python -c "from setuptools import distutils; distutils.version.LooseVersion" | |
fi | |
- name: Download MNIST | |
uses: pytorch-ignite/download-mnist-github-action@master | |
with: | |
target_dir: /tmp | |
- name: Run Tests | |
uses: nick-fields/retry@v3 | |
with: | |
max_attempts: 5 | |
timeout_minutes: 15 | |
shell: bash | |
command: bash -l tests/run_cpu_tests.sh "not test_time_profilers" | |
new_command_on_retry: USE_LAST_FAILED=1 bash -l tests/run_cpu_tests.sh "not test_time_profilers" | |
create-issue: | |
runs-on: ubuntu-latest | |
# https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#needs-context | |
needs: build | |
if: always() && needs.build.result == 'failure' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: JasonEtco/create-an-issue@v2 | |
name: Create issue if pytorch version tests failed | |
with: | |
filename: .github/failed_schedule_issue_template.md | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |