name: Prettier code formatter on: pull_request: branches: - master - main push: branches: - master - main jobs: check: # available images: https://github.com/actions/runner-images#available-images runs-on: ubuntu-latest steps: - name: Checkout 🛎️ uses: actions/checkout@v4 - name: Setup Node.js ⚙️ uses: actions/setup-node@v4 - name: Install Prettier 💾 run: npm install --save-dev --save-exact prettier @shopify/prettier-plugin-liquid - name: Prettier Check 🔎 id: prettier run: npx prettier . --check - name: Create diff 📝 # https://docs.github.com/en/actions/learn-github-actions/expressions#failure if: ${{ failure() }} run: | npx prettier . --write git diff -- . ':(exclude)package-lock.json' ':(exclude)package.json' > diff.txt npm install -g diff2html-cli diff2html -i file -s side -F diff.html -- diff.txt - name: Upload html diff ⬆️ id: artifact-upload if: ${{ failure() && steps.prettier.conclusion == 'failure' }} uses: actions/upload-artifact@v4 with: name: HTML Diff path: diff.html retention-days: 7 - name: Dispatch information to repository 🗣️ if: ${{ failure() && steps.prettier.conclusion == 'failure' && github.event_name == 'pull_request' }} uses: peter-evans/repository-dispatch@v2 with: event-type: prettier-failed-on-pr client-payload: '{"pr_number": "${{ github.event.number }}", "artifact_url": "${{ steps.artifact-upload.outputs.artifact-url }}", "run_id": "${{ github.run_id }}"}'