Nightly tests on main #209
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 | |
SLACK_API_TOKEN: ${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }} | |
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 venv /opt/venv && export PATH="/opt/venv/bin:$PATH" | |
python -m uv pip install -e [quality,test] | |
python -m uv pip install -U transformers@git+https://github.com/huggingface/transformers | |
python -m uv pip install accelerate@git+https://github.com/huggingface/accelerate | |
python -m uv pip install pytest-reportlog | |
- 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 venv /opt/venv && export PATH="/opt/venv/bin:$PATH" | |
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 }} \ | |
--report-log=${{ matrix.config.report }}.log \ | |
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 venv /opt/venv && export PATH="/opt/venv/bin:$PATH" | |
python -m pytest -n 0 \ | |
-s -v -k "Flax" \ | |
--make-reports=tests_${{ matrix.config.report }} \ | |
--report-log=${{ matrix.config.report }}.log \ | |
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 venv /opt/venv && export PATH="/opt/venv/bin:$PATH" | |
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \ | |
-s -v -k "Onnx" \ | |
--make-reports=tests_${{ matrix.config.report }} \ | |
--report-log=${{ matrix.config.report }}.log \ | |
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 | |
- name: Generate Report and Notify Channel | |
if: always() | |
run: | | |
pip install slack_sdk tabulate | |
python scripts/log_reports.py >> $GITHUB_STEP_SUMMARY | |
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 uv | |
${CONDA_RUN} python -m uv pip install -e [quality,test] | |
${CONDA_RUN} python -m uv pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu | |
${CONDA_RUN} python -m uv pip install accelerate@git+https://github.com/huggingface/accelerate | |
${CONDA_RUN} python -m uv pip install pytest-reportlog | |
- 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 \ | |
--report-log=tests_torch_mps.log \ | |
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 | |
- name: Generate Report and Notify Channel | |
if: always() | |
run: | | |
pip install slack_sdk tabulate | |
python scripts/log_reports.py >> $GITHUB_STEP_SUMMARY |