name: Pull Request on: pull_request: branches: - main jobs: unit-tests: runs-on: ubuntu-latest container: image: docker.notsosm.art/euchre-camp-ci-runner:latest options: --user root steps: - name: Checkout code uses: actions/checkout@v4 - name: Run unit tests run: npm run test:run acceptance-tests: runs-on: ubuntu-latest needs: unit-tests container: image: docker.notsosm.art/euchre-camp-ci-runner:latest options: --user root env: DATABASE_PROVIDER: sqlite DATABASE_URL: file:./prisma/ci.db BETTER_AUTH_SECRET: test-secret-key-for-ci-only steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup SQLite database run: | # Create SQLite database file mkdir -p prisma npx prisma migrate deploy - name: Run acceptance tests run: npm run test:acceptance env: DATABASE_PROVIDER: sqlite DATABASE_URL: file:./prisma/ci.db BETTER_AUTH_SECRET: test-secret-key-for-ci-only analyze-bump-type: runs-on: ubuntu-latest needs: acceptance-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 });