diff --git a/.github/workflows/prettier-fixes.yml b/.github/workflows/prettier-fixes.yml new file mode 100644 index 0000000..d2bf64f --- /dev/null +++ b/.github/workflows/prettier-fixes.yml @@ -0,0 +1,49 @@ +name: Auto formatter + +on: + push: + branches-ignore: + - main + - gh-readonly-queue/main/** + +jobs: + prettier: + name: Prettier + runs-on: ubuntu-latest + # Circuit breaker: Avoid a hayewire bot infinitely committing changes if something goes wrong + if: ${{ github.event.head_commit.message != '[Bot] Prettier fixes' }} + steps: + - uses: actions/checkout@v4 + with: + # This makes git push to work and other workflows to run + token: ${{ secrets.GIT_TOKEN }} + + - uses: pnpm/action-setup@v2 + with: + version: 8 + + - name: Install Node.js dependencies + run: pnpm install + + - name: Prettier format changed files + continue-on-error: true + env: + GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} + run: | + # Check for changed files in the PR and fallback to previous commit if direct push + CHANGED_FILES=$(gh pr diff --name-only 2> /dev/null || git diff --name-only HEAD^ HEAD) + echo "Changed Files:" + echo $CHANGED_FILES + if [ -n "$CHANGED_FILES" ]; then + pnpm exec prettier --write $CHANGED_FILES + fi + + - name: Commit files + continue-on-error: true + run: | + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + git commit -a -m "[Bot] Prettier fixes" + + - name: Push changes + run: git push