bavix/laravel-wallet

View on GitHub
.github/workflows/autofix.yaml

Summary

Maintainability
Test Coverage
name: fixer

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  autofix:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: 8.2
          extensions: mbstring, pgsql, mysql, sqlite, redis, memcached, bcmath
          coverage: pcov
        env:
          runner: self-hosted

      - name: Validate composer.json and composer.lock
        run: composer validate --strict

      - name: Cache Composer packages
        id: composer-cache
        uses: actions/cache@v4
        with:
          path: vendor
          key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
          restore-keys: |
            ${{ runner.os }}-php-

      - name: Install dependencies
        run: composer install --prefer-dist --no-progress

      - name: Run rector-fix
        run: composer rector-fix

      - name: Run ecs-fix
        run: composer ecs-fix

      - name: Run rector
        run: composer rector

      - name: Run ecs
        run: composer ecs

      - name: Run parabench
        run: composer parabench

      - name: "Check if build has changed"
        if: success()
        id: has-changes
        run: |
          echo "stdout<<EOF" >> $GITHUB_OUTPUT
          echo "$(git diff  --stat)" >> $GITHUB_OUTPUT
          echo 'EOF' >> $GITHUB_OUTPUT

      - name: Import GPG key
        if: ${{ steps.has-changes.outputs.stdout }}
        uses: crazy-max/ghaction-import-gpg@v6
        with:
          gpg_private_key: ${{ secrets.GPG_BOT }}
          passphrase: ${{ secrets.GPG_PASSPHRASE }}
          fingerprint: ${{ secrets.GPG_FINGERPRINT }}
          git_config_global: true
          git_user_signingkey: true
          git_commit_gpgsign: true
          git_committer_name: Github bot
          git_committer_email: bot@babichev.net

      - name: "Commit files"
        if: ${{ steps.has-changes.outputs.stdout }}
        env:
          GH_TOKEN: ${{ secrets.BOT_TOKEN }}
        run: |
          gh pr checkout ${{ github.event.pull_request.number }}
          git commit -S -m "autofix" -a

      - name: "Push changes"
        if: ${{ steps.has-changes.outputs.stdout }}
        env:
          GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
        run: git push -u origin HEAD