✨ Update Claude plugin to v0.3.0 with full CLI support #144
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
| name: SDK Unit Tests | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| # Detect which SDKs have changes | |
| changes: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| ruby: ${{ steps.filter.outputs.ruby }} | |
| storybook: ${{ steps.filter.outputs.storybook }} | |
| static-site: ${{ steps.filter.outputs.static-site }} | |
| vitest: ${{ steps.filter.outputs.vitest }} | |
| swift: ${{ steps.filter.outputs.swift }} | |
| ember: ${{ steps.filter.outputs.ember }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dorny/paths-filter@v3 | |
| id: filter | |
| with: | |
| filters: | | |
| ruby: | |
| - 'clients/ruby/**' | |
| - '.github/workflows/sdk-unit.yml' | |
| storybook: | |
| - 'clients/storybook/**' | |
| - '.github/workflows/sdk-unit.yml' | |
| static-site: | |
| - 'clients/static-site/**' | |
| - '.github/workflows/sdk-unit.yml' | |
| vitest: | |
| - 'clients/vitest/**' | |
| - '.github/workflows/sdk-unit.yml' | |
| swift: | |
| - 'clients/swift/**' | |
| - '.github/workflows/sdk-unit.yml' | |
| ember: | |
| - 'clients/ember/**' | |
| - '.github/workflows/sdk-unit.yml' | |
| # Ruby SDK - runs on multiple Ruby versions | |
| ruby: | |
| name: Ruby SDK | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: changes | |
| if: needs.changes.outputs.ruby == 'true' | |
| strategy: | |
| matrix: | |
| ruby-version: ['3.0', '3.1', '3.2', '3.3'] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Ruby ${{ matrix.ruby-version }} | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ matrix.ruby-version }} | |
| - name: Use Node.js 22 | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: 'npm' | |
| - name: Install CLI dependencies | |
| run: npm ci | |
| - name: Build CLI | |
| run: npm run build | |
| - name: Install Ruby dependencies | |
| working-directory: ./clients/ruby | |
| run: | | |
| gem install bundler | |
| bundle install | |
| - name: Run RuboCop | |
| working-directory: ./clients/ruby | |
| run: bundle exec rubocop | |
| - name: Run Ruby unit tests | |
| working-directory: ./clients/ruby | |
| run: ruby -Ilib:test test/vizzly_test.rb | |
| # Storybook SDK - runs on multiple Node versions | |
| storybook: | |
| name: Storybook SDK | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: changes | |
| if: needs.changes.outputs.storybook == 'true' | |
| strategy: | |
| matrix: | |
| node-version: [22, 24] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install CLI dependencies | |
| run: npm ci | |
| - name: Build CLI | |
| run: npm run build | |
| - name: Install Storybook client dependencies | |
| working-directory: ./clients/storybook | |
| run: npm install | |
| - name: Run linter | |
| working-directory: ./clients/storybook | |
| run: npm run lint | |
| - name: Run tests | |
| working-directory: ./clients/storybook | |
| run: npm test | |
| env: | |
| CI: true | |
| - name: Build package | |
| working-directory: ./clients/storybook | |
| run: npm run build | |
| # Static-Site SDK - runs on multiple Node versions | |
| static-site: | |
| name: Static-Site SDK | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: changes | |
| if: needs.changes.outputs.static-site == 'true' | |
| strategy: | |
| matrix: | |
| node-version: [22, 24] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install CLI dependencies | |
| run: npm ci | |
| - name: Build CLI | |
| run: npm run build | |
| - name: Install Static-Site client dependencies | |
| working-directory: ./clients/static-site | |
| run: npm install | |
| - name: Run linter | |
| working-directory: ./clients/static-site | |
| run: npm run lint | |
| - name: Run tests | |
| working-directory: ./clients/static-site | |
| run: npm test | |
| env: | |
| CI: true | |
| - name: Build package | |
| working-directory: ./clients/static-site | |
| run: npm run build | |
| # Vitest SDK - runs on multiple Node versions | |
| vitest: | |
| name: Vitest SDK | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: changes | |
| if: needs.changes.outputs.vitest == 'true' | |
| strategy: | |
| matrix: | |
| node-version: [22, 24] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install CLI dependencies | |
| run: npm ci | |
| - name: Build CLI | |
| run: npm run build | |
| - name: Install Vitest client dependencies | |
| working-directory: ./clients/vitest | |
| run: npm install | |
| - name: Get installed Playwright version | |
| working-directory: ./clients/vitest | |
| id: playwright-version | |
| run: echo "version=$(npx playwright --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')" >> $GITHUB_OUTPUT | |
| - name: Cache Playwright browsers | |
| uses: actions/cache@v4 | |
| id: playwright-cache | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: playwright-browsers-${{ steps.playwright-version.outputs.version }}-chromium | |
| - name: Install Playwright browsers | |
| if: steps.playwright-cache.outputs.cache-hit != 'true' | |
| working-directory: ./clients/vitest | |
| run: npx playwright install chromium --with-deps | |
| - name: Run Vitest client linter | |
| working-directory: ./clients/vitest | |
| run: npm run lint | |
| - name: Run Vitest client unit tests | |
| working-directory: ./clients/vitest | |
| run: npm run test:unit | |
| env: | |
| CI: true | |
| # Swift SDK - runs on multiple Xcode versions | |
| swift: | |
| name: Swift SDK | |
| runs-on: macos-latest | |
| timeout-minutes: 8 | |
| needs: changes | |
| if: needs.changes.outputs.swift == 'true' | |
| strategy: | |
| matrix: | |
| xcode-version: ['16.2', '16.4'] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Select Xcode version | |
| run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode-version }}.app | |
| - name: Build Swift package | |
| working-directory: ./clients/swift | |
| run: swift build | |
| - name: Run Swift tests | |
| working-directory: ./clients/swift | |
| run: swift test | |
| # Ember SDK - runs unit and integration tests | |
| ember: | |
| name: Ember SDK | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: changes | |
| if: needs.changes.outputs.ember == 'true' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js 22 | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Install CLI dependencies | |
| run: npm ci | |
| - name: Build CLI | |
| run: npm run build | |
| - name: Install Ember client dependencies | |
| working-directory: ./clients/ember | |
| run: npm install | |
| - name: Get installed Playwright version | |
| working-directory: ./clients/ember | |
| id: playwright-version | |
| run: echo "version=$(npx playwright --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')" >> $GITHUB_OUTPUT | |
| - name: Cache Playwright browsers | |
| uses: actions/cache@v4 | |
| id: playwright-cache | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: playwright-browsers-${{ steps.playwright-version.outputs.version }}-chromium | |
| - name: Install Playwright browsers | |
| if: steps.playwright-cache.outputs.cache-hit != 'true' | |
| working-directory: ./clients/ember | |
| run: npx playwright install chromium --with-deps | |
| - name: Run linter | |
| working-directory: ./clients/ember | |
| run: npm run lint | |
| - name: Run unit tests | |
| working-directory: ./clients/ember | |
| run: npm test | |
| env: | |
| CI: true | |
| - name: Run integration tests | |
| working-directory: ./clients/ember | |
| run: npm run test:integration | |
| env: | |
| CI: true | |
| # Status check for branch protection | |
| check: | |
| name: SDK Unit Status | |
| runs-on: ubuntu-latest | |
| needs: [changes, ruby, storybook, static-site, vitest, swift, ember] | |
| if: always() | |
| steps: | |
| - name: Check SDK unit tests | |
| run: | | |
| # Only check jobs that were supposed to run | |
| if [[ "${{ needs.changes.outputs.ruby }}" == "true" && "${{ needs.ruby.result }}" == "failure" ]]; then | |
| echo "Ruby SDK tests failed" | |
| exit 1 | |
| fi | |
| if [[ "${{ needs.changes.outputs.storybook }}" == "true" && "${{ needs.storybook.result }}" == "failure" ]]; then | |
| echo "Storybook SDK tests failed" | |
| exit 1 | |
| fi | |
| if [[ "${{ needs.changes.outputs.static-site }}" == "true" && "${{ needs.static-site.result }}" == "failure" ]]; then | |
| echo "Static-Site SDK tests failed" | |
| exit 1 | |
| fi | |
| if [[ "${{ needs.changes.outputs.vitest }}" == "true" && "${{ needs.vitest.result }}" == "failure" ]]; then | |
| echo "Vitest SDK tests failed" | |
| exit 1 | |
| fi | |
| if [[ "${{ needs.changes.outputs.swift }}" == "true" && "${{ needs.swift.result }}" == "failure" ]]; then | |
| echo "Swift SDK tests failed" | |
| exit 1 | |
| fi | |
| if [[ "${{ needs.changes.outputs.ember }}" == "true" && "${{ needs.ember.result }}" == "failure" ]]; then | |
| echo "Ember SDK tests failed" | |
| exit 1 | |
| fi | |
| echo "All SDK unit tests passed (or skipped)" |