diff --git a/.github/workflows/prettier-on-pr.yml b/.github/workflows/prettier-on-pr.yml new file mode 100644 index 000000000000..5bb850ddf361 --- /dev/null +++ b/.github/workflows/prettier-on-pr.yml @@ -0,0 +1,37 @@ +name: Prettier code formatter (PR) + +on: + pull_request: + branches: + - master + - main + workflow_dispatch: + +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: PR comment with html diff + # https://docs.github.com/en/actions/learn-github-actions/expressions#failure-with-conditions + if: ${{ failure() && steps.prettier.conclusion == 'failure' }} + uses: thollander/actions-comment-pull-request@v2 + with: + filePath: diff.html diff --git a/.github/workflows/prettier-on-push.yml b/.github/workflows/prettier-on-push.yml new file mode 100644 index 000000000000..719757daea1c --- /dev/null +++ b/.github/workflows/prettier-on-push.yml @@ -0,0 +1,38 @@ +name: Prettier code formatter (Push) + +on: + push: + branches: + - master + - main + workflow_dispatch: + +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 + if: ${{ failure() && steps.prettier.conclusion == 'failure' }} + uses: actions/upload-artifact@v4 + with: + name: HTML Diff + path: diff.html + retention-days: 3 diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml deleted file mode 100644 index c71cd3939580..000000000000 --- a/.github/workflows/prettier.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Prettier code formatter - -on: - push: - branches: - - master - - main - pull_request: - branches: - - master - - main - workflow_dispatch: - -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 🔎 - run: npx prettier . --check