# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json name: Backend Tests # # This workflow is a test of the python package build. # Install Python dependencies across different Python versions. # on: [ push ] jobs: build_and_execute_macos: environment: "Testing" if: false name: Installation, Unit and Workflow Tests for macOS runs-on: ${{ matrix.runner.labels }} strategy: fail-fast: false matrix: runner: - labels: [ self-hosted, m1-8gb ] steps: - uses: actions/checkout@v4 - run: | python3 -m venv source venv/bin/activate python -m pip install setuptools pip --upgrade pip install --no-build-isolation .[dev] - name: Run unit tests run: | source venv/bin/activate pytest -v tests/unit - name: Run all other supported tests run: | source venv/bin/activate pytest -v tests/inference env: HF_TOKEN: ${{ secrets.HF_TOKEN }} - name: Lint for errors run: | source venv/bin/activate pylint -j 8 --rcfile=.pylintrc comfy/ pylint -j 8 --rcfile=.pylintrc comfy_extras/ build_and_execute_linux: environment: "Testing" name: Installation, Unit and Workflow Tests for Linux runs-on: ${{ matrix.runner.labels }} container: ${{ matrix.runner.container }} strategy: fail-fast: false matrix: runner: - labels: [self-hosted, Linux, X64, cpu] container: "ubuntu:22.04" - labels: [self-hosted, Linux, X64, rocm-7600-8gb] container: "rocm/pytorch:rocm6.1.3_ubuntu22.04_py3.10_pytorch_release-2.1.2" - labels: [self-hosted, Linux, X64, cuda-3060-12gb] container: "nvcr.io/nvidia/pytorch:24.03-py3" steps: - run: | apt update apt install -y nodejs python3 python3-pip git build-essential ffmpeg libsm6 libxext6 pip uninstall -y $(pip list --format=freeze | grep opencv) && rm -rf /usr/local/lib/python3.10/dist-packages/cv2/ || rm -rf /usr/local/lib/python3.11/dist-packages/cv2/ || rm -rf /usr/local/lib/python3.12/dist-packages/cv2/ ln -s `which python3` /usr/bin/python || true ln -s `which pip3` /usr/bin/pip || true name: Prepare Python - uses: actions/checkout@v4 name: Checkout git repo - name: Install ComfyUI run: | python -m pip install setuptools pip --upgrade --break-system-packages || python -m pip install pip --upgrade || true pip install --break-system-packages --no-build-isolation .[dev] || pip install --no-build-isolation .[dev] - name: Run tests run: | export HSA_OVERRIDE_GFX_VERSION=11.0.0 export PYTORCH_HIP_ALLOC_CONF=expandable_segments:True export NUMBA_THREADING_LAYER=omp export AMD_SERIALIZE_KERNEL=1 pytest -v tests/unit - name: Lint for errors run: | pylint --rcfile=.pylintrc comfy/ pylint --rcfile=.pylintrc comfy_extras/