diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..d0d646e --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,41 @@ +name: Build + +on: + push: + branches: + - '**' # every branch + tags-ignore: + - 'v*' # skip tag pushes (handled by release.yml) + pull_request: + +jobs: + build: + name: Lint & Test + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + # Syntax-check every plugin index.js with Node's parser (no install needed) + - name: Syntax check all plugins + run: | + echo "=== Checking plugin syntax ===" + ERRORS=0 + for f in LocalFlowPlugins/*/*/1.0.0/index.js FlowHelpers/1.0.0/*.js; do + node --check "$f" \ + && echo " ✓ $f" \ + || { echo " ✗ SYNTAX ERROR: $f"; ERRORS=$((ERRORS+1)); } + done + [[ $ERRORS -eq 0 ]] || { echo ""; echo "❌ $ERRORS file(s) failed syntax check."; exit 1; } + echo "" + echo "✅ All files passed syntax check." + + # Run the logic test suite (no FFmpeg needed) + - name: Run logic tests + run: node tests/quick-logic-test.js