Skip to content

chore(deps): update googleapis to v159 #2082

chore(deps): update googleapis to v159

chore(deps): update googleapis to v159 #2082

name: Changeset Check
on:
pull_request:
types: [opened, reopened, synchronize, labeled, unlabeled]
permissions:
pull-requests: read
contents: read
packages: read
jobs:
check:
name: Check for Changeset
runs-on: arc-happyvertical
# Skip for automated PRs (Renovate, changeset-release)
# This prevents pnpm install from failing on dependency issues
if: |
!startsWith(github.event.pull_request.head.ref, 'renovate/') &&
!startsWith(github.event.pull_request.head.ref, 'changeset-release/')
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
fetch-depth: 0
- name: Check for skip conditions
id: skip-check
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Check for skip-changeset label
PR_NUM="${{ github.event.pull_request.number }}"
if gh pr view "$PR_NUM" --json labels \
--jq '.labels[].name' | grep -q 'skip-changeset'; then
echo "skip=true" >> $GITHUB_OUTPUT
echo "✅ Will skip (skip-changeset label present)"
else
echo "skip=false" >> $GITHUB_OUTPUT
fi
- name: Setup Environment
if: steps.skip-check.outputs.skip != 'true'
uses: ./.github/actions/setup-environment
with:
node-version: '24'
install-deps: 'true'
- name: Check for changeset
if: steps.skip-check.outputs.skip != 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Skip if PR has 'skip-changeset' label
PR_NUM="${{ github.event.pull_request.number }}"
if gh pr view "$PR_NUM" --json labels \
--jq '.labels[].name' | grep -q 'skip-changeset'; then
echo "✅ Skipping changeset check" \
"(skip-changeset label present)"
exit 0
fi
# Skip if PR is from changeset-release branch
# (automated version packages PR)
PR_BRANCH="${{ github.event.pull_request.head.ref }}"
if echo "$PR_BRANCH" | grep -q '^changeset-release/'; then
echo "✅ Skipping changeset check" \
"(changesets release PR from $PR_BRANCH)"
exit 0
fi
# Skip if PR is from renovate bot
# (automated dependency update PR)
if echo "$PR_BRANCH" | grep -q '^renovate/'; then
echo "✅ Skipping changeset check" \
"(Renovate dependency update PR from $PR_BRANCH)"
exit 0
fi
# Skip if PR title starts with 'chore: version packages'
PR_TITLE="${{ github.event.pull_request.title }}"
if echo "$PR_TITLE" | \
grep -qi '^chore: version packages'; then
echo "✅ Skipping changeset check (version packages PR)"
exit 0
fi
# Check if PR has conventional commits that will
# trigger auto-changeset
echo ""
echo "🔍 Checking for conventional commits..."
# Get commits in this PR
BASE_SHA="${{ github.event.pull_request.base.sha }}"
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
# Check for releaseable conventional commits
# (feat, fix, perf, breaking changes)
RELEASEABLE_COMMITS=$(git log \
$BASE_SHA..$HEAD_SHA --pretty=format:"%s" --no-merges | \
grep -E '^(feat|fix|perf)(\(.+\))?!?:|BREAKING CHANGE' \
|| true)
if [ -n "$RELEASEABLE_COMMITS" ]; then
echo "✅ Found conventional commits that will" \
"trigger auto-changeset on merge:"
echo "$RELEASEABLE_COMMITS"
echo ""
echo "🔍 Validating changeset:auto script can" \
"generate changesets..."
# Run changeset:auto to validate it works
# (don't commit the result)
if pnpm run changeset:auto; then
echo "✅ changeset:auto validation passed"
echo ""
echo "Generated changesets will be created" \
"automatically when this PR merges to main."
exit 0
else
echo "❌ ERROR: changeset:auto script failed"
echo ""
echo "The auto-changeset generation script" \
"encountered an error."
echo "Please check the script or add a" \
"manual changeset."
exit 1
fi
fi
echo "ℹ️ No releaseable conventional commits found"
echo "(feat, fix, perf, or breaking changes)"
echo ""
# Check if changeset files exist (excluding README.md)
changeset_count=$(find .changeset -name '*.md' \
! -name 'README.md' 2>/dev/null | wc -l)
if [ "$changeset_count" -eq 0 ]; then
echo "❌ No changeset found"
echo ""
echo "Please add a changeset by running:"
echo " npx changeset"
echo ""
echo "Or add the 'skip-changeset' label if this PR" \
"doesn't require a version bump"
echo "(e.g., documentation changes, test updates," \
"workflow changes)"
exit 1
fi
echo "✅ Found $changeset_count changeset(s)"
find .changeset -name '*.md' ! -name 'README.md' \
-exec basename {} \;
# Validate no major version bumps
echo ""
echo "🔍 Validating changeset types..."
if find .changeset -name '*.md' ! -name 'README.md' \
-type f -exec grep -l '"major"' {} + 2>/dev/null | \
grep -q .; then
echo "❌ ERROR: Major version bump detected" \
"in changeset!"
echo ""
echo "Files with major bumps:"
find .changeset -name '*.md' ! -name 'README.md' \
-type f -exec grep -l '"major"' {} + \
2>/dev/null || true
echo ""
echo "Major version releases (1.0.0+) must be" \
"manually approved and coordinated."
echo "Please change the version bump type to" \
"'minor' or 'patch'."
echo ""
echo "If you truly need a major version bump," \
"coordinate with maintainers first."
exit 1
fi
echo "✅ No major version bumps detected"