name: Pull Request on: pull_request: branches: - main jobs: unit-tests: runs-on: ubuntu-latest container: image: docker.notsosm.art/euchre-camp/ci-base:latest options: --user root steps: - name: Checkout code uses: actions/checkout@v4 - name: Install dependencies run: bun install - name: Generate Prisma client run: bun x prisma generate env: DATABASE_URL: postgresql://user:pass@localhost:5432/dummy - name: Run unit tests run: bun test src/__tests__/unit/ src/__tests__/*.test.tsx src/__tests__/auth-simple.test.ts acceptance-tests: runs-on: ubuntu-latest container: image: docker.notsosm.art/euchre-camp/ci-base:latest options: --user root steps: - name: Checkout code uses: actions/checkout@v4 - name: Install dependencies run: bun install - name: Generate Prisma client run: bun x prisma generate env: DATABASE_URL: postgresql://user:pass@localhost:5432/dummy - name: Run acceptance tests run: DATABASE_URL="${{ secrets.CI_DATABASE_URL }}" bun test:acceptance env: CI: true analyze-bump-type: runs-on: ubuntu-latest needs: unit-tests steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Analyze commits for bump type id: bump_type run: | # Get the merge base and PR commits git fetch origin main:main 2>/dev/null || true MERGE_BASE=$(git merge-base HEAD main 2>/dev/null || echo "HEAD~1") # Analyze commits in this PR COMMITS=$(git log --oneline ${MERGE_BASE}..HEAD 2>/dev/null || git log --oneline -10) echo "Commits in this PR:" echo "$COMMITS" echo "" # Determine bump type if echo "$COMMITS" | grep -qE "(BREAKING CHANGE|!:)"; then BUMP="major" REASON="Breaking change detected in commit messages" elif echo "$COMMITS" | grep -qE "^feat"; then BUMP="minor" REASON="Feature commits detected" else BUMP="patch" REASON="Defaulting to patch (fixes or other changes)" fi echo "Suggested bump type: $BUMP" echo "Reason: $REASON" echo "bump=$BUMP" >> $GITHUB_OUTPUT echo "reason=$REASON" >> $GITHUB_OUTPUT - name: Comment bump type on PR uses: actions/github-script@v7 with: script: | const bump = '${{ steps.bump_type.outputs.bump }}'; const reason = '${{ steps.bump_type.outputs.reason }}'; const comment = ` ## 🏷️ Version Bump Analysis **Suggested bump type:** \`${bump.toUpperCase()}\` **Reason:** ${reason} This PR will bump the version to the next ${bump} version when merged. `; github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: comment });