Nightly and release tests on main/release branch #341
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: Nightly tests on main | |
on: | |
schedule: | |
- cron: "0 0 * * *" # every day at midnight | |
env: | |
DIFFUSERS_IS_CI: yes | |
HF_HOME: /mnt/cache | |
OMP_NUM_THREADS: 8 | |
MKL_NUM_THREADS: 8 | |
PYTEST_TIMEOUT: 600 | |
RUN_SLOW: yes | |
RUN_NIGHTLY: yes | |
jobs: | |
run_nightly_tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: Nightly PyTorch CUDA tests on Ubuntu | |
framework: pytorch | |
runner: docker-gpu | |
image: diffusers/diffusers-pytorch-cuda | |
report: torch_cuda | |
- name: Nightly Flax TPU tests on Ubuntu | |
framework: flax | |
runner: docker-tpu | |
image: diffusers/diffusers-flax-tpu | |
report: flax_tpu | |
- name: Nightly ONNXRuntime CUDA tests on Ubuntu | |
framework: onnxruntime | |
runner: docker-gpu | |
image: diffusers/diffusers-onnxruntime-cuda | |
report: onnx_cuda | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.runner }} | |
container: | |
image: ${{ matrix.config.image }} | |
options: --shm-size "16gb" --ipc host -v /mnt/hf_cache:/mnt/cache/ ${{ matrix.config.runner == 'docker-tpu' && '--privileged' || '--gpus 0'}} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout diffusers | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 2 | |
- name: NVIDIA-SMI | |
if: ${{ matrix.config.runner == 'docker-gpu' }} | |
run: | | |
nvidia-smi | |
- name: Install dependencies | |
run: | | |
python -m pip install -e .[quality,test] | |
python -m pip install -U git+https://github.com/huggingface/transformers | |
python -m pip install git+https://github.com/huggingface/accelerate | |
- name: Environment | |
run: | | |
python utils/print_env.py | |
- name: Run nightly PyTorch CUDA tests | |
if: ${{ matrix.config.framework == 'pytorch' }} | |
env: | |
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }} | |
run: | | |
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \ | |
-s -v -k "not Flax and not Onnx" \ | |
--make-reports=tests_${{ matrix.config.report }} \ | |
tests/ | |
- name: Run nightly Flax TPU tests | |
if: ${{ matrix.config.framework == 'flax' }} | |
env: | |
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }} | |
run: | | |
python -m pytest -n 0 \ | |
-s -v -k "Flax" \ | |
--make-reports=tests_${{ matrix.config.report }} \ | |
tests/ | |
- name: Run nightly ONNXRuntime CUDA tests | |
if: ${{ matrix.config.framework == 'onnxruntime' }} | |
env: | |
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }} | |
run: | | |
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \ | |
-s -v -k "Onnx" \ | |
--make-reports=tests_${{ matrix.config.report }} \ | |
tests/ | |
- name: Failure short reports | |
if: ${{ failure() }} | |
run: cat reports/tests_${{ matrix.config.report }}_failures_short.txt | |
- name: Test suite reports artifacts | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ matrix.config.report }}_test_reports | |
path: reports | |
run_nightly_tests_apple_m1: | |
name: Nightly PyTorch MPS tests on MacOS | |
runs-on: [ self-hosted, apple-m1 ] | |
steps: | |
- name: Checkout diffusers | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 2 | |
- name: Clean checkout | |
shell: arch -arch arm64 bash {0} | |
run: | | |
git clean -fxd | |
- name: Setup miniconda | |
uses: ./.github/actions/setup-miniconda | |
with: | |
python-version: 3.9 | |
- name: Install dependencies | |
shell: arch -arch arm64 bash {0} | |
run: | | |
${CONDA_RUN} python -m pip install --upgrade pip | |
${CONDA_RUN} python -m pip install -e .[quality,test] | |
${CONDA_RUN} python -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu | |
${CONDA_RUN} python -m pip install git+https://github.com/huggingface/accelerate | |
- name: Environment | |
shell: arch -arch arm64 bash {0} | |
run: | | |
${CONDA_RUN} python utils/print_env.py | |
- name: Run nightly PyTorch tests on M1 (MPS) | |
shell: arch -arch arm64 bash {0} | |
env: | |
HF_HOME: /System/Volumes/Data/mnt/cache | |
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }} | |
run: | | |
${CONDA_RUN} python -m pytest -n 1 -s -v --make-reports=tests_torch_mps tests/ | |
- name: Failure short reports | |
if: ${{ failure() }} | |
run: cat reports/tests_torch_mps_failures_short.txt | |
- name: Test suite reports artifacts | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: torch_mps_test_reports | |
path: reports |