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 patches - 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: Generate token id: app-token uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 with: app-id: ${{ secrets.GH_AUTOFIX_APP_ID }} private-key: ${{ secrets.GH_AUTOFIX_PRIVATE_KEY }} - name: Decrease ESLint ratchet baselines and open PR env: GH_TOKEN: ${{ steps.app-token.outputs.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