feat(cloud): ✨ add checkout integration and payment callback flow #124
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: Build | |
| run: npm run build |