feat(core): ctx.raw.argv, render helpers, dynamic fullscreen #65
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 Integration Tests | |
| # ────────────────────────────────────────────────────────────── | |
| # | |
| # Platform notes: | |
| # | |
| # macos-15-intel — Paid runner ($0.062/min, no free tier). | |
| # This is the last Intel macOS image GitHub | |
| # will offer, available until August 2027. | |
| # After that, x86_64 macOS is unsupported. | |
| # | |
| # Missing platforms (not testable with standard GitHub runners): | |
| # | |
| # linux-arm64 — GitHub does not offer ARM64 Linux runners | |
| # in the standard tier. Available only as | |
| # "larger runners" which require a paid | |
| # GitHub Teams or Enterprise plan. | |
| # | |
| # linux-x64-musl — Standard ubuntu-latest runners use glibc. | |
| # Testing musl would require a container-based | |
| # job (e.g. alpine:latest), but kidd produces | |
| # a standalone binary so the glibc test on | |
| # ubuntu-latest provides sufficient coverage | |
| # for the Linux x64 code path. The musl | |
| # binary is a link-time variant, not a | |
| # separate code path. | |
| # ────────────────────────────────────────────────────────────── | |
| name: 'ci-integration' | |
| on: | |
| pull_request: | |
| types: [synchronize, opened, reopened, ready_for_review] | |
| paths: | |
| - packages/** | |
| - examples/** | |
| - tests/** | |
| - vitest.config.ts | |
| - package.json | |
| - pnpm-lock.yaml | |
| - turbo.json | |
| - .github/workflows/ci-integration.yml | |
| push: | |
| branches: [main] | |
| paths: | |
| - packages/** | |
| - examples/** | |
| - tests/** | |
| - vitest.config.ts | |
| - package.json | |
| - pnpm-lock.yaml | |
| - turbo.json | |
| - .github/workflows/ci-integration.yml | |
| concurrency: | |
| group: ci-integration-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| build: | |
| name: 'Setup & Build' | |
| runs-on: macos-latest | |
| if: ${{ !github.event.pull_request.draft }} | |
| timeout-minutes: 15 | |
| env: | |
| TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
| TURBO_TEAM: ${{ vars.TURBO_TEAM }} | |
| steps: | |
| - name: 'Checkout code' | |
| uses: actions/checkout@v5 | |
| - name: 'Setup pnpm' | |
| uses: pnpm/action-setup@v4 | |
| - name: 'Setup Node.js' | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: '24' | |
| cache: 'pnpm' | |
| - name: 'Setup Bun' | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: 'Install dependencies' | |
| run: pnpm install --frozen-lockfile | |
| - name: 'Build packages' | |
| run: pnpm build | |
| - name: 'Rebuild bin links' | |
| run: pnpm install --frozen-lockfile | |
| - name: 'Build examples (all platforms)' | |
| run: pnpm turbo run build --filter='./examples/*' | |
| - name: 'Upload build artifacts' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: examples-dist | |
| retention-days: 1 | |
| path: | | |
| examples/*/dist | |
| examples/*/cli/dist | |
| test-os: | |
| name: 'Integration / ${{ matrix.name }}' | |
| needs: build | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| include: | |
| - os: macos-latest | |
| name: macOS ARM | |
| - os: macos-15-intel | |
| name: macOS Intel | |
| - os: ubuntu-latest | |
| name: Linux x64 | |
| - os: windows-latest | |
| name: Windows x64 | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: 'Checkout code' | |
| uses: actions/checkout@v5 | |
| - name: 'Setup pnpm' | |
| uses: pnpm/action-setup@v4 | |
| - name: 'Setup Node.js' | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: '24' | |
| cache: 'pnpm' | |
| - name: 'Install dependencies' | |
| run: pnpm install --frozen-lockfile | |
| - name: 'Download build artifacts' | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: examples-dist | |
| path: examples | |
| - name: 'Restore binary permissions' | |
| if: runner.os != 'Windows' | |
| run: | | |
| find examples -path '*/dist/*' -type f ! -name '*.mjs' ! -name '*.map' ! -name '*.exe' -exec chmod +x {} + | |
| find examples -name '*.mjs' -path '*/dist/*' -type f -exec chmod +x {} + | |
| - name: 'Run integration tests' | |
| run: pnpm test:integration |