Skip to content

bump: v1.9.19 — comprehensive audit + full modernization #66

bump: v1.9.19 — comprehensive audit + full modernization

bump: v1.9.19 — comprehensive audit + full modernization #66

Workflow file for this run

name: Build
on:
workflow_dispatch:
pull_request:
branches: [main]
push:
branches: [main]
tags:
- 'v*'
permissions:
contents: write
jobs:
build:
strategy:
matrix:
include:
- os: windows-latest
artifact: OpenCut-Server-Windows
- os: ubuntu-latest
artifact: OpenCut-Server-Linux
- os: macos-latest
artifact: OpenCut-Server-macOS
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyinstaller
pip install -e .
- name: Lint with ruff
run: |
pip install ruff
ruff check opencut/ --select E,F,I --ignore E501,E402
- name: Run tests with coverage
run: |
pip install pytest-cov
python -m pytest tests/ -v --tb=short --cov=opencut --cov-report=term-missing --cov-fail-under=50
- name: Check version sync
run: python scripts/sync_version.py --check
- name: Smoke test imports
run: |
python -c "from opencut.server import create_app; app = create_app(); print('Server OK')"
python -c "from opencut.security import get_csrf_token; print('Security OK')"
python -c "from opencut.jobs import _new_job; print('Jobs OK')"
python -c "from opencut.workers import get_pool, JobPriority; print('Workers OK')"
python -c "from opencut.core.repeat_detect import detect_repeated_takes; print('Core OK')"
python -c "from opencut.core.nlp_command import parse_command; print('NLP OK')"
python -c "from opencut.mcp_server import MCP_TOOLS; print(f'MCP: {len(MCP_TOOLS)} tools')"
python -c "from opencut.cli import cli; print(f'CLI: {len(cli.commands)} commands')"
python -c "from opencut.schemas import WorkflowResult; print('Schemas OK')"
- name: Build with PyInstaller
if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch'
run: pyinstaller opencut_server.spec
- name: Archive build output
if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact }}
path: dist/OpenCut-Server/
- name: Upload to release
if: startsWith(github.ref, 'refs/tags/')
run: |
cd dist
tar -czf ${{ matrix.artifact }}.tar.gz OpenCut-Server/
gh release upload ${{ github.ref_name }} ${{ matrix.artifact }}.tar.gz --clobber
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash