sketch: turn off skaband by default #610
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Code Formatting | |
| on: | |
| workflow_call: | |
| inputs: | |
| auto_fix: | |
| description: "Automatically fix formatting issues instead of just checking" | |
| required: false | |
| type: boolean | |
| default: false | |
| outputs: | |
| commit_sha: | |
| description: "The SHA of the commit with formatting fixes" | |
| value: ${{ jobs.formatting.outputs.commit_sha }} | |
| push: | |
| branches-ignore: | |
| - "queue-main-*" | |
| - "queue-dev-*" | |
| pull_request: | |
| permissions: | |
| contents: write | |
| jobs: | |
| formatting: | |
| outputs: | |
| commit_sha: ${{ steps.get_commit.outputs.commit_sha }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ (inputs.auto_fix == true && (github.head_ref || github.ref)) || (github.event_name == 'pull_request' && github.event.pull_request.head.sha) || github.ref }} | |
| # Need full history for queue-main pushes | |
| fetch-depth: 0 | |
| # Setup for Prettier | |
| # We don't need to do "npm ci" because run-formatters.sh uses "npx prettier" | |
| # and this is speedier than installing everything. | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| cache: "npm" | |
| cache-dependency-path: webui/package-lock.json | |
| - name: Install gofumpt v0.8.0 | |
| run: | | |
| curl -L https://github.com/mvdan/gofumpt/releases/download/v0.8.0/gofumpt_v0.8.0_linux_amd64 -o /tmp/gofumpt | |
| chmod +x /tmp/gofumpt | |
| sudo mv /tmp/gofumpt /usr/local/bin/gofumpt | |
| - name: Check formatting | |
| if: inputs.auto_fix != true | |
| run: bin/run-formatters.sh check | |
| - name: Fix formatting | |
| if: inputs.auto_fix == true | |
| run: bin/run-formatters.sh fix | |
| # Commit formatting fixes if auto_fix is true | |
| - name: Commit and push formatting fixes if needed | |
| if: inputs.auto_fix == true | |
| run: | | |
| # Only proceed if there are changes to commit | |
| if [[ -z $(git status --porcelain) ]]; then | |
| echo "No formatting changes detected, skipping commit" | |
| exit 0 | |
| fi | |
| git config --global user.name "Autoformatter" | |
| git config --global user.email "bot@sketch.dev" | |
| git add . | |
| git fetch origin main | |
| MERGE_BASE=$(git merge-base HEAD origin/main) | |
| COMMIT_COUNT=$(git rev-list --count $MERGE_BASE..HEAD) | |
| if [ "$COMMIT_COUNT" -eq 1 ]; then | |
| echo "Found exactly one commit since merge-base with origin/main. Amending the commit." | |
| git commit --amend --no-edit | |
| else | |
| echo "Found multiple commits ($COMMIT_COUNT) since merge-base with origin/main. Creating a new commit." | |
| git commit -m "all: fix formatting" | |
| fi | |
| git push -f https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git HEAD | |
| - name: Get commit SHA | |
| id: get_commit | |
| run: echo "commit_sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT |