name: check_fix_push

on:
  push:
    branches:
      - '**'

permissions: write-all

jobs:
  check:
    runs-on: ubuntu-latest
    if: |
      ${{ github.event.head_commit.message!='chore(actions): check_format_lint' }}
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 22

      - uses: pnpm/action-setup@v4

      - run: pnpm install

      - run: pnpm run check

      - run: pnpm run format

      - run: pnpm run lint

      - name: Git commit
        id: commit
        run: |
          git config --local user.email github-actions[bot]@users.noreply.github.com
          git config --local user.name github-actions[bot]
          git status --porcelain
          git --no-pager diff
          git commit -a -m "chore(actions): check_format_lint"
        continue-on-error: true

      - name: Git push
        uses: ad-m/github-push-action@master
        if: ${{ steps.commit.outcome == 'success' }}
        with:
          branch: ${{ github.ref }}
