| | name: Run basic features tests on CPU |
| |
|
| | on: |
| | - push |
| | - pull_request |
| |
|
| | jobs: |
| | build: |
| | runs-on: ubuntu-latest |
| | steps: |
| | - name: Checkout Code |
| | uses: actions/checkout@v3 |
| | with: |
| | repository: 'AUTOMATIC1111/stable-diffusion-webui' |
| | path: 'stable-diffusion-webui' |
| | ref: '4afaaf8a020c1df457bcf7250cb1c7f609699fa7' |
| | - name: Checkout Code |
| | uses: actions/checkout@v3 |
| | with: |
| | repository: 'Mikubill/sd-webui-controlnet' |
| | path: 'stable-diffusion-webui/extensions/sd-webui-controlnet' |
| | - name: Set up Python 3.10 |
| | uses: actions/setup-python@v4 |
| | with: |
| | python-version: 3.10.6 |
| | cache: pip |
| | cache-dependency-path: | |
| | **/requirements*txt |
| | launch.py |
| | - name: Install test dependencies |
| | run: | |
| | pip install wait-for-it |
| | pip install -r requirements-test.txt |
| | working-directory: stable-diffusion-webui |
| | env: |
| | PIP_DISABLE_PIP_VERSION_CHECK: "1" |
| | PIP_PROGRESS_BAR: "off" |
| | - name: Setup environment |
| | run: python launch.py --skip-torch-cuda-test --exit |
| | working-directory: stable-diffusion-webui |
| | env: |
| | PIP_DISABLE_PIP_VERSION_CHECK: "1" |
| | PIP_PROGRESS_BAR: "off" |
| | TORCH_INDEX_URL: https://download.pytorch.org/whl/cpu |
| | WEBUI_LAUNCH_LIVE_OUTPUT: "1" |
| | PYTHONUNBUFFERED: "1" |
| | - name: Cache ControlNet models |
| | uses: actions/cache@v3 |
| | with: |
| | path: stable-diffusion-webui/extensions/sd-webui-controlnet/models/ |
| | key: controlnet-models-v3 |
| | - name: Cache Preprocessor models |
| | uses: actions/cache@v3 |
| | with: |
| | path: stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/downloads/ |
| | key: preprocessor-models-v1 |
| | - name: Download controlnet model for testing |
| | run: | |
| | declare -a urls=( |
| | "https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.pth" |
| | "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-full-face_sd15.safetensors" |
| | "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus-face_sd15.safetensors" |
| | "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd15v2.pth" |
| | "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_lora_rank128_v11p_sd15_canny_fp16.safetensors" |
| | ) |
| | |
| | for url in "${urls[@]}"; do |
| | filename="extensions/sd-webui-controlnet/models/${url##*/}" |
| | if [ ! -f "$filename" ]; then |
| | curl -Lo "$filename" "$url" |
| | fi |
| | done |
| | working-directory: stable-diffusion-webui |
| | - name: Start test server |
| | run: > |
| | python -m coverage run |
| | --data-file=.coverage.server |
| | launch.py |
| | --skip-prepare-environment |
| | --skip-torch-cuda-test |
| | --test-server |
| | --do-not-download-clip |
| | --no-half |
| | --disable-opt-split-attention |
| | --use-cpu all |
| | --api-server-stop |
| | 2>&1 | tee output.txt & |
| | working-directory: stable-diffusion-webui |
| | - name: Run tests |
| | run: | |
| | wait-for-it --service 127.0.0.1:7860 -t 600 |
| | python -m pytest -vv --junitxml=test/results.xml --cov ./extensions/sd-webui-controlnet --cov-report=xml --verify-base-url ./extensions/sd-webui-controlnet/tests |
| | working-directory: stable-diffusion-webui |
| | - name: Kill test server |
| | if: always() |
| | run: curl -vv -XPOST http://127.0.0.1:7860/sdapi/v1/server-stop && sleep 10 |
| | - name: Show coverage |
| | run: | |
| | python -m coverage combine .coverage* |
| | python -m coverage report -i |
| | python -m coverage html -i |
| | working-directory: stable-diffusion-webui |
| | - name: Upload main app output |
| | uses: actions/upload-artifact@v3 |
| | if: always() |
| | with: |
| | name: output |
| | path: stable-diffusion-webui/output.txt |
| | - name: Upload coverage HTML |
| | uses: actions/upload-artifact@v3 |
| | if: always() |
| | with: |
| | name: htmlcov |
| | path: stable-diffusion-webui/htmlcov |
| |
|