Merge changes #78
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: Fast tests for PRs - PEFT backend | |
on: | |
pull_request: | |
branches: | |
- main | |
paths: | |
- "src/diffusers/**.py" | |
- "tests/**.py" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
DIFFUSERS_IS_CI: yes | |
OMP_NUM_THREADS: 4 | |
MKL_NUM_THREADS: 4 | |
PYTEST_TIMEOUT: 60 | |
jobs: | |
check_code_quality: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install .[quality] | |
- name: Check quality | |
run: make quality | |
- name: Check if failure | |
if: ${{ failure() }} | |
run: | | |
echo "Quality check failed. Please ensure the right dependency versions are installed with 'pip install -e .[quality]' and run 'make style && make quality'" >> $GITHUB_STEP_SUMMARY | |
check_repository_consistency: | |
needs: check_code_quality | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install .[quality] | |
- name: Check repo consistency | |
run: | | |
python utils/check_copies.py | |
python utils/check_dummies.py | |
make deps_table_check_updated | |
- name: Check if failure | |
if: ${{ failure() }} | |
run: | | |
echo "Repo consistency check failed. Please ensure the right dependency versions are installed with 'pip install -e .[quality]' and run 'make fix-copies'" >> $GITHUB_STEP_SUMMARY | |
run_fast_tests: | |
needs: [check_code_quality, check_repository_consistency] | |
strategy: | |
fail-fast: false | |
matrix: | |
lib-versions: ["main", "latest"] | |
name: LoRA - ${{ matrix.lib-versions }} | |
runs-on: | |
group: aws-general-8-plus | |
container: | |
image: diffusers/diffusers-pytorch-cpu | |
options: --shm-size "16gb" --ipc host -v /mnt/hf_cache:/mnt/cache/ | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout diffusers | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 2 | |
- name: Install dependencies | |
run: | | |
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH" | |
python -m uv pip install -e [quality,test] | |
# TODO (sayakpaul, DN6): revisit `--no-deps` | |
if [ "${{ matrix.lib-versions }}" == "main" ]; then | |
python -m pip install -U peft@git+https://github.com/huggingface/peft.git --no-deps | |
python -m uv pip install -U transformers@git+https://github.com/huggingface/transformers.git --no-deps | |
pip uninstall accelerate -y && python -m uv pip install -U accelerate@git+https://github.com/huggingface/accelerate.git --no-deps | |
else | |
python -m uv pip install -U peft --no-deps | |
python -m uv pip install -U transformers accelerate --no-deps | |
fi | |
- name: Environment | |
run: | | |
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH" | |
python utils/print_env.py | |
- name: Run fast PyTorch LoRA CPU tests with PEFT backend | |
run: | | |
python -m venv /opt/venv && export PATH="/opt/venv/bin:$PATH" | |
python -m pytest -n 4 --max-worker-restart=0 --dist=loadfile \ | |
-s -v \ | |
--make-reports=tests_${{ matrix.lib-versions }} \ | |
tests/lora/ | |
python -m pytest -n 4 --max-worker-restart=0 --dist=loadfile \ | |
-s -v \ | |
--make-reports=tests_models_lora_${{ matrix.lib-versions }} \ | |
tests/models/ -k "lora" | |
- name: Failure short reports | |
if: ${{ failure() }} | |
run: | | |
cat reports/tests_${{ matrix.lib-versions }}_failures_short.txt | |
cat reports/tests_models_lora_${{ matrix.lib-versions }}_failures_short.txt | |
- name: Test suite reports artifacts | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pr_${{ matrix.lib-versions }}_test_reports | |
path: reports |