fix: extract blog draft from stdout via frontmatter marker #216
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| jobs: | |
| python: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - uses: astral-sh/setup-uv@v8.0.0 | |
| - name: Lint | |
| run: uv run ruff check skill/ mcp-local/ mcp-server/ shared/ api/ | |
| - name: Test | |
| run: uv run pytest tests/ -v | |
| web-ui: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: "20" | |
| cache: npm | |
| cache-dependency-path: web-ui/package-lock.json | |
| - name: Install | |
| run: npm ci | |
| working-directory: web-ui | |
| - name: Lint | |
| run: npm run lint | |
| working-directory: web-ui | |
| - name: Check for undefined references | |
| run: | | |
| # Catch "Cannot find name" errors that cause runtime crashes | |
| # Full tsc --noEmit is not yet clean; this targets the most critical class | |
| ERRORS=$(npx tsc --noEmit 2>&1 | grep "Cannot find name" || true) | |
| if [ -n "$ERRORS" ]; then | |
| echo "$ERRORS" | |
| echo "::error::Undefined references found — these will crash at runtime" | |
| exit 1 | |
| fi | |
| working-directory: web-ui | |
| - name: Build | |
| run: npm run build | |
| working-directory: web-ui | |
| infra: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: "20" | |
| cache: npm | |
| cache-dependency-path: infra/package-lock.json | |
| - name: Install | |
| run: npm ci | |
| working-directory: infra | |
| - name: Type check | |
| run: npx tsc --noEmit | |
| working-directory: infra | |
| guard: | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Deny cdk.context.json | |
| run: | | |
| if [ -f "infra/cdk.context.json" ]; then | |
| echo "::error::infra/cdk.context.json must not be committed" | |
| exit 1 | |
| fi | |
| - name: Deny .env files | |
| run: | | |
| if compgen -G "**/.env" > /dev/null || compgen -G "**/.env.*" > /dev/null; then | |
| echo "::error::.env files must not be committed" | |
| exit 1 | |
| fi |