diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fc167a3e..26060aed 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,6 +7,20 @@ on: jobs: astyle: + env: + ASTYLE_CMD: >- + astyle + --break-blocks + --indent-switches + --indent=force-tab=8 + --lineend=linux + --options=none + --pad-header + --pad-oper + --style=1tbs + --suffix=none + --unpad-paren + includes/*.h includes/*.hpp src/*.c src/*.cpp name: Lint with `Artistic Style` runs-on: ubuntu-latest steps: @@ -17,29 +31,35 @@ jobs: with: packages: astyle - name: Check if any modifications were made by `astyle` - env: - ASTYLE_CMD: >- - astyle - --break-blocks - --indent-switches - --indent=force-tab=8 - --lineend=linux - --options=none - --pad-header - --pad-oper - --style=1tbs - --suffix=none - --unpad-paren - includes/*.h includes/*.hpp src/*.c src/*.cpp run: | ASTYLE_OUTPUT=$(${ASTYLE_CMD} --dry-run) if [ -n "$(echo "${ASTYLE_OUTPUT}" | grep -v "Unchanged")" ]; then echo "The following files are in need of formatting:" - echo "${ASTYLE_OUTPUT}" | grep -v "Unchanged" | awk '{print "\t"$2}' + echo "${ASTYLE_OUTPUT}" | grep -v "Unchanged" | awk '{print "`"$2"`"}' + echo "" echo "Run the following command before submitting a pull request:" - printf "\t${ASTYLE_CMD}\n" | tr -s ' ' + echo '`'"${ASTYLE_CMD}"'`' exit 1 fi + - name: Write `$ASTYLE_OUTPUT` to `$GITHUB_STEP_SUMMARY` + if: failure() + run: | + ASTYLE_OUTPUT=$(${ASTYLE_CMD} --dry-run) + echo "### The following files are in need of formatting:" >> ${GITHUB_STEP_SUMMARY} + echo "${ASTYLE_OUTPUT}" | grep -v "Unchanged" | awk '{print "- `"$2"`"}' >> ${GITHUB_STEP_SUMMARY} + echo "### Run the following command before submitting a pull request:" >> ${GITHUB_STEP_SUMMARY} + echo -e '```shell\n'"${ASTYLE_CMD}"'\n```' >> ${GITHUB_STEP_SUMMARY} + - name: Generate `ArtisticStyleFormattingFixes.patch` file + if: failure() + run: | + ${ASTYLE_CMD} + git diff --patch > ArtisticStyleFormattingFixes.patch + - name: Upload `ArtisticStyleFormattingFixes.patch` file + if: failure() + uses: actions/upload-artifact@v3 + with: + name: ArtisticStyleFormattingFixes.patch + path: ArtisticStyleFormattingFixes.patch cmakelint: name: Lint with `CMakeLint`