name: CI — Common Platform on: push: branches: [main] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build-and-test: name: Build, Test & Typecheck runs-on: ubuntu-latest timeout-minutes: 15 defaults: run: working-directory: /Users/sd9235/code/mygh/learning_ai_common_plat steps: - name: Reset and pull latest run: git reset --hard HEAD && git clean -fd && git pull --ff-only origin main || true - name: Build all packages run: pnpm -r --filter './packages/**' build - name: Lint run: pnpm lint - name: Typecheck run: pnpm typecheck - name: Test run: pnpm test token-drift: name: Check design token drift runs-on: ubuntu-latest timeout-minutes: 5 defaults: run: working-directory: /Users/sd9235/code/mygh/learning_ai_common_plat steps: - name: Reset and pull latest run: git reset --hard HEAD && git clean -fd && git pull --ff-only origin main || true - name: Regenerate tokens run: npx tsx packages/design-tokens/scripts/generate.ts - name: Check for drift run: | if git diff --exit-code packages/design-tokens/generated/; then echo "✅ No token drift detected" else echo "❌ Token drift detected — run 'npx tsx packages/design-tokens/scripts/generate.ts' and commit" git diff packages/design-tokens/generated/ exit 1 fi publish-packages: name: Publish @bytelyst/* to Gitea npm registry runs-on: ubuntu-latest needs: [build-and-test] timeout-minutes: 10 defaults: run: working-directory: /Users/sd9235/code/mygh/learning_ai_common_plat steps: - name: Reset and pull latest run: git reset --hard HEAD && git clean -fd && git pull --ff-only origin main || true - name: Build all packages run: pnpm -r --filter './packages/**' build - name: Publish to local Gitea registry run: bash ./scripts/publish-local-gitea-packages.sh