feat(retry): ✨ Add model-switch retry for task/page flows #143
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: CI | |
| on: | |
| pull_request: | |
| branches: | |
| - master | |
| jobs: | |
| commitlint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Validate commit message | |
| run: | | |
| # Get commit message(s) to validate | |
| # Use --no-merges to exclude merge commits (auto-generated by GitHub) | |
| if [ "${{ github.event_name }}" = "pull_request" ]; then | |
| COMMITS=$(git log --no-merges --format=%s origin/${{ github.base_ref }}..HEAD) | |
| else | |
| COMMITS=$(git log -1 --format=%s) | |
| fi | |
| # Conventional commit pattern: type(scope): emoji description | |
| # type is required, scope is optional, emoji after colon is optional | |
| PATTERN='^(feat|fix|docs|style|refactor|perf|test|chore|ci|build|revert)(\([a-zA-Z0-9_-]+\))?: .+' | |
| echo "Validating commit messages..." | |
| FAILED=0 | |
| while IFS= read -r MSG; do | |
| if [ -n "$MSG" ]; then | |
| if echo "$MSG" | grep -qE "$PATTERN"; then | |
| echo "✅ $MSG" | |
| else | |
| echo "❌ $MSG" | |
| echo " Expected format: type(scope): description" | |
| echo " Example: feat(auth): ✨ add login feature" | |
| FAILED=1 | |
| fi | |
| fi | |
| done <<< "$COMMITS" | |
| if [ $FAILED -eq 1 ]; then | |
| echo "" | |
| echo "Commit message validation failed!" | |
| echo "Please follow Conventional Commits: https://www.conventionalcommits.org/" | |
| exit 1 | |
| fi | |
| ci: | |
| runs-on: ubuntu-latest | |
| needs: commitlint | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| cache: "npm" | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Generate Prisma client | |
| run: npm run generate | |
| - name: Type check | |
| run: npm run typecheck | |
| - name: Lint | |
| run: npm run lint | |
| - name: Run tests | |
| run: npm run test:unit | |
| - name: Run renderer tests | |
| run: npm run test:renderer | |
| - name: Generate merged coverage report | |
| run: npm run test:coverage:all | |
| - name: Build | |
| run: npm run build |