← Files Meme Marketing AgentARCHIVED FILE

.github/workflows/ci.yml

2.1 KB · Sep 30, 2026 · 23:17 UTC

↓ Download file

name: CI

on:
  push:
    branches: [ main, master ]
  pull_request:
    branches: [ main, master ]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up Bun
        uses: oven-sh/setup-bun@v2
        with:
          bun-version: latest

      - name: Install dependencies
        run: bun install

      - name: Run Anti-Slop Lint Check (Oxlint)
        run: bun run lint

      - name: Verify CLI Execution
        run: |
          bun ./bin/cli.js --help
          bun ./bin/cli.js list

      - name: Test Meme Rendering
        run: |
          bun ./bin/cli.js render --template distracted \
            --new "Agentic Skills" \
            --user "Engineer" \
            --current "Manual Writing" \
            --caption "Automation win" \
            --out test-output.svg
          test -f test-output.svg

      - name: Test JSON Contract Validation
        run: |
          bun ./bin/cli.js validate evals/fixtures/valid.json

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

      - name: Run Python Unit Tests
        run: |
          python3 scripts/test_validate.py
          python3 scripts/validate.py evals/fixtures/valid.json

      - name: Run Claude Plugin Tests (manifests, agents, commands, hooks, tune)
        run: python3 scripts/test_plugin.py

      - name: Set up Node
        uses: actions/setup-node@v4
        with:
          node-version: '22'

      - name: Validate Claude Code Plugin & Marketplace Manifests
        run: |
          npx -y @anthropic-ai/claude-code plugin validate --strict .claude-plugin/plugin.json
          npx -y @anthropic-ai/claude-code plugin validate --strict .claude-plugin/marketplace.json

      - name: Validate SKILL.md Frontmatter
        run: |
          python3 -c "
          content = open('SKILL.md').read()
          assert content.startswith('---'), 'Missing YAML frontmatter'
          assert 'name: meme-marketing' in content, 'Missing correct name'
          print('✅ SKILL.md validated successfully!')
          "

SHA-256: db78b2552717bb042360221109c12179c089e2a0aedd3ea73d0278d69ce5cce1