mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
118d5b387b
Currently we use some workflow trigger conditionals to run either a real test workflow (installing the app and running it) or a fake workflow, disguised as the real one, that just auto-passes. This change refactors the workflow to use a single workflow that can be skipped, using another github action to determine which things to run depending on the paths changed.
130 lines
3.8 KiB
YAML
130 lines
3.8 KiB
YAML
name: Test invoke.py pip
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
pull_request:
|
|
types:
|
|
- 'ready_for_review'
|
|
- 'opened'
|
|
- 'synchronize'
|
|
merge_group:
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
matrix:
|
|
if: github.event.pull_request.draft == false
|
|
strategy:
|
|
matrix:
|
|
python-version:
|
|
# - '3.9'
|
|
- '3.10'
|
|
pytorch:
|
|
- linux-cuda-11_7
|
|
- linux-rocm-5_2
|
|
- linux-cpu
|
|
- macos-default
|
|
- windows-cpu
|
|
include:
|
|
- pytorch: linux-cuda-11_7
|
|
os: ubuntu-22.04
|
|
github-env: $GITHUB_ENV
|
|
- pytorch: linux-rocm-5_2
|
|
os: ubuntu-22.04
|
|
extra-index-url: 'https://download.pytorch.org/whl/rocm5.2'
|
|
github-env: $GITHUB_ENV
|
|
- pytorch: linux-cpu
|
|
os: ubuntu-22.04
|
|
extra-index-url: 'https://download.pytorch.org/whl/cpu'
|
|
github-env: $GITHUB_ENV
|
|
- pytorch: macos-default
|
|
os: macOS-12
|
|
github-env: $GITHUB_ENV
|
|
- pytorch: windows-cpu
|
|
os: windows-2022
|
|
github-env: $env:GITHUB_ENV
|
|
name: ${{ matrix.pytorch }} on ${{ matrix.python-version }}
|
|
runs-on: ${{ matrix.os }}
|
|
env:
|
|
PIP_USE_PEP517: '1'
|
|
steps:
|
|
- name: Checkout sources
|
|
id: checkout-sources
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Check for changed python files
|
|
id: changed-files
|
|
uses: tj-actions/changed-files@v37
|
|
with:
|
|
files_yaml: |
|
|
python:
|
|
- 'pyproject.toml'
|
|
- 'invokeai/**'
|
|
- '!invokeai/frontend/web/**'
|
|
- 'tests/**'
|
|
|
|
- name: set test prompt to main branch validation
|
|
if: steps.changed-files.outputs.python_any_changed == 'true'
|
|
run: echo "TEST_PROMPTS=tests/validate_pr_prompt.txt" >> ${{ matrix.github-env }}
|
|
|
|
- name: setup python
|
|
if: steps.changed-files.outputs.python_any_changed == 'true'
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
cache: pip
|
|
cache-dependency-path: pyproject.toml
|
|
|
|
- name: install invokeai
|
|
if: steps.changed-files.outputs.python_any_changed == 'true'
|
|
env:
|
|
PIP_EXTRA_INDEX_URL: ${{ matrix.extra-index-url }}
|
|
run: >
|
|
pip3 install
|
|
--editable=".[test]"
|
|
|
|
- name: run pytest
|
|
if: steps.changed-files.outputs.python_any_changed == 'true'
|
|
id: run-pytest
|
|
run: pytest
|
|
|
|
# - name: run invokeai-configure
|
|
# env:
|
|
# HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGINGFACE_TOKEN }}
|
|
# run: >
|
|
# invokeai-configure
|
|
# --yes
|
|
# --default_only
|
|
# --full-precision
|
|
# # can't use fp16 weights without a GPU
|
|
|
|
# - name: run invokeai
|
|
# id: run-invokeai
|
|
# env:
|
|
# # Set offline mode to make sure configure preloaded successfully.
|
|
# HF_HUB_OFFLINE: 1
|
|
# HF_DATASETS_OFFLINE: 1
|
|
# TRANSFORMERS_OFFLINE: 1
|
|
# INVOKEAI_OUTDIR: ${{ github.workspace }}/results
|
|
# run: >
|
|
# invokeai
|
|
# --no-patchmatch
|
|
# --no-nsfw_checker
|
|
# --precision=float32
|
|
# --always_use_cpu
|
|
# --use_memory_db
|
|
# --outdir ${{ env.INVOKEAI_OUTDIR }}/${{ matrix.python-version }}/${{ matrix.pytorch }}
|
|
# --from_file ${{ env.TEST_PROMPTS }}
|
|
|
|
# - name: Archive results
|
|
# env:
|
|
# INVOKEAI_OUTDIR: ${{ github.workspace }}/results
|
|
# uses: actions/upload-artifact@v3
|
|
# with:
|
|
# name: results
|
|
# path: ${{ env.INVOKEAI_OUTDIR }}
|