name: "Lint error" description: "Checks for lint errors and posts a helpful comment" inputs: format-command: description: "The command to run to fix lint errors" required: true format-tool: description: "The name of the linting tool" required: true runs: using: "composite" steps: - name: Run format command run: ${{ inputs.format-command }} shell: bash - name: Find changes id: changes run: | file=${{ inputs.format-tool }}.diff diff=$(git diff | tee $file) if [ -z "$diff" ]; then echo "No changes detected" exit 0 fi echo "file=$file" >> $GITHUB_OUTPUT { echo "diff<> $GITHUB_OUTPUT shell: bash - name: Upload to GitHub id: upload if: steps.changes.outputs.diff uses: actions/upload-artifact@v4 with: name: ${{ inputs.format-tool }}-diff path: ${{ steps.changes.outputs.file }} if-no-files-found: error - name: Set summary id: summary if: steps.changes.outputs.diff run: | code_block="\`\`\`" summary=$(cat<> $GITHUB_STEP_SUMMARY file="ci_summary.md" echo "❌🛠️ \`${{ inputs.format-tool }}\`: Lint errors, fix available." >> $file echo "file=$file" >> $GITHUB_OUTPUT shell: bash - name: Upload CI summary as artifact if: steps.summary.outputs.file uses: actions/upload-artifact@v4 with: name: summary-${{ inputs.format-tool }} path: ${{ steps.summary.outputs.file }} if-no-files-found: error - name: Fail if diff exists if: steps.changes.outputs.diff run: exit 1 shell: bash