name: formatter-all

on:
  push:
    branches: [ main ]
  pull_request:
    types: [ labeled ]

jobs:
  formatter:
    name: formatter
    runs-on: ubuntu-latest
    permissions:
      contents: write
    if: ${{ github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.label.name == 'format_all') }}
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    steps:
      - uses: actions/checkout@v3
        with:
          ref: ${{ github.head_ref }}
          fetch-depth: 0
      - uses: actions/setup-node@v3
        with:
          node-version: "16"
      - name: Install stylua and format files
        uses: JohnnyMorganz/stylua-action@v3
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          version: v0.18.0
          args: -- .
      - name: Format files with Prettier
        run: |
            npx prettier --write '**/*.{ts,js,css,html}'
      - name: Update repo before push
        run: |
          git pull
      - name: Commit changes and push current branch
        uses: stefanzweifel/git-auto-commit-action@v4
        with:
          commit_user_name: ESX GITHUB ACTIONS BOT
          commit_user_email: esx-github-actions-bot@users.noreply.github.com
          commit_message: :art:Code formatted in all files
