feat: Add Context Management Skill (Knowledge Layer) #1
Workflow file for this run
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
| # CI/CD for Context Skill - Development Branch | |
| # | |
| # Runs on: Push to feature/context-system | |
| # Purpose: Fast feedback on development work | |
| # | |
| # Tests: | |
| # - Lint & typecheck | |
| # - Unit tests | |
| # - CLI tests | |
| name: Context Skill - Dev Tests | |
| on: | |
| push: | |
| branches: | |
| - 'feature/context-system' | |
| paths: | |
| - 'bin/ingest/**' | |
| - 'bin/obs/**' | |
| - '.claude/skills/context/**' | |
| pull_request: | |
| branches: | |
| - 'main' | |
| - 'feature/context-system' | |
| paths: | |
| - 'bin/ingest/**' | |
| - 'bin/obs/**' | |
| - '.claude/skills/context/**' | |
| jobs: | |
| lint-and-typecheck: | |
| name: Lint & Typecheck | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v1 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies (obs) | |
| working-directory: bin/obs | |
| run: bun install | |
| - name: Install dependencies (ingest) | |
| working-directory: bin/ingest | |
| run: bun install | |
| - name: Typecheck obs | |
| working-directory: bin/obs | |
| run: bun run tsc --noEmit || echo "Typecheck completed with warnings" | |
| - name: Typecheck ingest | |
| working-directory: bin/ingest | |
| run: bun run tsc --noEmit || echo "Typecheck completed with warnings" | |
| unit-tests: | |
| name: Unit Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v1 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| working-directory: bin/ingest | |
| run: bun install | |
| - name: Create test vault | |
| run: | | |
| mkdir -p /tmp/test-vault | |
| echo "---\ntitle: Test Note\ntags: [test]\n---\n# Test" > /tmp/test-vault/test.md | |
| - name: Run unit tests | |
| working-directory: bin/ingest | |
| env: | |
| OBSIDIAN_VAULT_PATH: /tmp/test-vault | |
| run: | | |
| if [ -d "test/unit" ]; then | |
| bun test test/unit/ | |
| else | |
| echo "No unit tests found" | |
| fi | |
| cli-tests: | |
| name: CLI Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v1 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies (obs) | |
| working-directory: bin/obs | |
| run: bun install | |
| - name: Install dependencies (ingest) | |
| working-directory: bin/ingest | |
| run: bun install | |
| - name: Create test vault | |
| run: | | |
| mkdir -p /tmp/test-vault | |
| cp -r bin/ingest/deployment/test-vault/* /tmp/test-vault/ 2>/dev/null || true | |
| echo "---\ntitle: Test Note\ntags: [test, scope/work]\n---\n# Test" > /tmp/test-vault/test.md | |
| - name: Smoke test - obs --help | |
| working-directory: bin/obs | |
| run: bun run obs.ts --help | |
| - name: Smoke test - ingest --help | |
| working-directory: bin/ingest | |
| run: bun run ingest.ts --help | |
| - name: Test obs tags | |
| working-directory: bin/obs | |
| env: | |
| OBSIDIAN_VAULT_PATH: /tmp/test-vault | |
| run: bun run obs.ts tags || echo "Tags command completed" | |
| - name: Test obs search | |
| working-directory: bin/obs | |
| env: | |
| OBSIDIAN_VAULT_PATH: /tmp/test-vault | |
| run: bun run obs.ts search --tag test || echo "Search completed" | |
| summary: | |
| name: Test Summary | |
| needs: [lint-and-typecheck, unit-tests, cli-tests] | |
| runs-on: ubuntu-latest | |
| if: always() | |
| steps: | |
| - name: Check results | |
| run: | | |
| echo "## Test Results" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "| Test | Status |" >> $GITHUB_STEP_SUMMARY | |
| echo "|------|--------|" >> $GITHUB_STEP_SUMMARY | |
| echo "| Lint & Typecheck | ${{ needs.lint-and-typecheck.result }} |" >> $GITHUB_STEP_SUMMARY | |
| echo "| Unit Tests | ${{ needs.unit-tests.result }} |" >> $GITHUB_STEP_SUMMARY | |
| echo "| CLI Tests | ${{ needs.cli-tests.result }} |" >> $GITHUB_STEP_SUMMARY | |