diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 23f19eb1..ec06b27a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,16 +13,25 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Check if OpenAPI changed + id: openapi-changed + uses: tj-actions/changed-files@v44 + with: + files: openapi.yaml + - name: Setup Node.js + if: steps.openapi-changed.outputs.any_changed == 'true' uses: actions/setup-node@v4 with: node-version: '18' - name: Install Redoc CLI + if: steps.openapi-changed.outputs.any_changed == 'true' run: | npm install -g @redocly/cli - name: Validate OpenAPI specification + if: steps.openapi-changed.outputs.any_changed == 'true' run: | redocly lint openapi.yaml @@ -31,47 +40,31 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history for proper diff + - name: Get changed Python files + id: changed-py-files + uses: tj-actions/changed-files@v44 + with: + files: | + **/*.py + files_ignore: | + comfyui_manager/legacy/** + - name: Setup Python + if: steps.changed-py-files.outputs.any_changed == 'true' uses: actions/setup-python@v5 with: python-version: '3.9' - name: Install dependencies + if: steps.changed-py-files.outputs.any_changed == 'true' run: | - pip install ruff ast + pip install ruff - - name: Run ruff linting + - name: Run ruff linting on changed files + if: steps.changed-py-files.outputs.any_changed == 'true' run: | - ruff check comfyui_manager/glob/manager_server.py - - - name: Check Python syntax (AST parsing) - run: | - python -c " - import ast - import sys - try: - with open('comfyui_manager/glob/manager_server.py', 'r') as f: - ast.parse(f.read()) - print('Python syntax is valid') - except SyntaxError as e: - print(f'Syntax error: {e}') - sys.exit(1) - " - - - name: Check imports and basic compilation - run: | - cd comfyui_manager/glob && python -c " - import sys - sys.path.insert(0, '../..') - try: - import manager_server - print('Module imports successfully') - except ImportError as e: - print(f'Import warning: {e}') - # Don't fail on import errors since dependencies may not be available - except SyntaxError as e: - print(f'Syntax error: {e}') - sys.exit(1) - " - + echo "Changed files: ${{ steps.changed-py-files.outputs.all_changed_files }}" + echo "${{ steps.changed-py-files.outputs.all_changed_files }}" | xargs -r ruff check \ No newline at end of file