fix(policies): bind the capability picker to the array parameters #76
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] | |
| tags: | |
| - '@constructive-io/ui@*' | |
| - '@constructive-io/data@*' | |
| - '@constructive-io/sheets@*' | |
| - '@constructive-io/command-palette@*' | |
| - '@constructive-io/schema-builder@*' | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: {} | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| permissions: | |
| contents: read | |
| jobs: | |
| quality: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: '24' | |
| cache: pnpm | |
| - name: Setup uv for Agent Skills validation | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Check supply-chain policy | |
| run: pnpm run policy:check | |
| - name: Validate Agent Skills specification | |
| run: pnpm check:agent-skill-spec | |
| - name: Check types and tests | |
| run: pnpm check | |
| delivery: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: '24' | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Verify packed packages in clean consumers | |
| run: pnpm pack:check | |
| - name: Build shadcn registry | |
| run: pnpm build:registry | |
| - name: Verify representative registry installs | |
| env: | |
| SMOKE_CASE: ai,command-palette,sheets,schema-builder,storage-browser,billing-settings-page,feature-pack-data,preset-full | |
| SMOKE_DISCOVERY: '1' | |
| SMOKE_REUSE_PACKED_ARTIFACTS: '1' | |
| SMOKE_SHADCN_LATEST: '1' | |
| run: pnpm --filter @constructive-io/registry smoke:install | |
| - name: Build static Blocks site | |
| run: pnpm --filter blocks build:pages | |
| - name: Assemble Pages artifact | |
| run: pnpm pages:artifact | |
| - name: Upload Pages artifact | |
| if: github.ref == 'refs/heads/main' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') | |
| uses: actions/upload-pages-artifact@v5 | |
| with: | |
| path: .artifacts/pages | |
| deploy: | |
| if: github.ref == 'refs/heads/main' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') | |
| needs: [quality, delivery] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pages: write | |
| id-token: write | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Deploy GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v5 | |
| - name: Verify public registry and agent entrypoint | |
| env: | |
| BLOCKS_PAGES_URL: ${{ steps.deployment.outputs.page_url }} | |
| run: | | |
| blocks_pages_base="${BLOCKS_PAGES_URL%/}" | |
| curl --fail --silent --show-error --retry 8 --retry-all-errors --retry-delay 5 "$blocks_pages_base/r/registry.json" | grep -q '"items"' | |
| curl --fail --silent --show-error --retry 8 --retry-all-errors --retry-delay 5 "$blocks_pages_base/llms.txt" | grep -q 'npx skills add constructive-io/blocks' | |
| # Package tags validate publishable tarballs and Pages inputs, but npm | |
| # publication remains a manual maintainer action. |