Decrease studio lint ratchet baselines #3
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: Decrease studio lint ratchet baselines | |
| on: | |
| schedule: | |
| - cron: '0 0 * * SUN' | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| decrease-baselines: | |
| runs-on: blacksmith-4vcpu-ubuntu-2404 | |
| steps: | |
| - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
| with: | |
| sparse-checkout: | | |
| .github | |
| apps/studio | |
| packages | |
| - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 | |
| name: Install pnpm | |
| with: | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: 'pnpm' | |
| - name: Install deps | |
| run: pnpm install --frozen-lockfile | |
| - name: Decrease ESLint ratchet baselines and open PR | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} | |
| run: | | |
| set -eo pipefail | |
| DEFAULT_BRANCH=${DEFAULT_BRANCH:-master} | |
| BRANCH="bot/decrease-eslint-ratchet-baselines" | |
| git fetch origin "$DEFAULT_BRANCH" --depth=1 | |
| if git ls-remote --exit-code --heads origin "$BRANCH" > /dev/null 2>&1; then | |
| git fetch origin "$BRANCH":"$BRANCH" --depth=1 | |
| git switch "$BRANCH" | |
| git reset --hard "origin/$DEFAULT_BRANCH" | |
| else | |
| git switch --create "$BRANCH" "origin/$DEFAULT_BRANCH" | |
| fi | |
| pnpm --filter studio run lint:ratchet --decrease-baselines | |
| if git diff --quiet; then | |
| echo "No baseline updates detected." | |
| exit 0 | |
| fi | |
| git config user.name 'github-actions[bot]' | |
| git config user.email 'github-actions[bot]@users.noreply.github.com' | |
| git add apps/studio/.github/eslint-rule-baselines.json | |
| git commit --message "chore: decrease ESLint ratchet baselines" | |
| git push --force origin "$BRANCH" | |
| pr_url=$(gh pr list --state open --head "$BRANCH" --json url --jq '.[0].url // ""' 2>/dev/null || echo "") | |
| if [ -z "$pr_url" ]; then | |
| gh pr create \ | |
| --title "[bot] Decrease ESLint ratchet baselines" \ | |
| --body "Automated weekly decrease of ESLint ratchet baselines." \ | |
| --base "$DEFAULT_BRANCH" \ | |
| --head "$BRANCH" | |
| else | |
| gh pr comment "$pr_url" --body "Updated ESLint ratchet baselines with the latest weekly decreases." | |
| fi |