Spaces:
Running
Running
| name: Code Formatting Check | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| permissions: | |
| contents: write | |
| jobs: | |
| format-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v2 | |
| - name: Set up Python | |
| uses: actions/setup-python@v2 | |
| with: | |
| python-version: '3.x' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install black isort | |
| - name: Run isort | |
| run: | | |
| isort . | |
| - name: Run black | |
| run: | | |
| black --line-length=120 . | |
| - name: Configure Git | |
| run: | | |
| git config user.name "GitHub Actions" | |
| git config user.email "actions@github.com" | |
| - name: Check if any files were modified | |
| run: | | |
| git diff --exit-code || git commit -am "Auto-format code with isort and black" | |
| - name: Pull latest changes | |
| run: | | |
| if [ "${{ github.event_name }}" = "pull_request" ]; then | |
| git pull --no-rebase origin ${{ github.event.pull_request.head.ref }} | |
| else | |
| git pull --no-rebase origin main | |
| fi | |
| - name: Push changes | |
| if: success() | |
| run: | | |
| if [ "${{ github.event_name }}" = "pull_request" ]; then | |
| git push origin HEAD:${{ github.event.pull_request.head.ref }}; | |
| else | |
| git push origin HEAD:main; | |
| fi | |