42 lines
1.1 KiB
YAML
42 lines
1.1 KiB
YAML
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
|