After some thorough testing, finally made prettier on PR work. Since an html file can't be used as comment on GitHub, changed to simply point to the action that failed and to the file containing the html diff. Signed-off-by: George Araújo <george.gcac@gmail.com>
46 lines
1.7 KiB
YAML
46 lines
1.7 KiB
YAML
name: Prettier code formatter (PR)
|
|
|
|
on:
|
|
pull_request:
|
|
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: PR comment with diff 💬
|
|
if: ${{ failure() && steps.prettier.conclusion == 'failure' }}
|
|
uses: thollander/actions-comment-pull-request@v2
|
|
with:
|
|
comment_tag: prettier-failed
|
|
message: |
|
|
Failed [prettier code check](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}). Check [this file](${{ steps.artifact-upload.outputs.artifact-url }}) for more information.
|