From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Mon, 12 May 2025 21:08:00 +0000 (+0200) Subject: Add trailing whitespace check workflow (#37367) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=be35f6e9cecb9fb4da25640deaf9e13f8292e0cf;p=space-station-14.git Add trailing whitespace check workflow (#37367) * whitespace check * fix formatting * fix indentation * eof new line * add EOF new line check * revert accidental deletion * rename --- diff --git a/.github/workflows/check-trailing-whitespace.yml b/.github/workflows/check-trailing-whitespace.yml new file mode 100644 index 0000000000..3f94738d26 --- /dev/null +++ b/.github/workflows/check-trailing-whitespace.yml @@ -0,0 +1,54 @@ +name: Trailing Whitespace Check + +on: + pull_request: + types: [ opened, reopened, synchronize, ready_for_review ] + +jobs: + build: + name: Trailing Whitespace Check + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4.2.2 + - name: Get changed text files + id: changed-files + uses: tj-actions/changed-files@v46.0.5 + with: + files: | + **.cs + **.yml + **.swsl + **.json + **.py + - name: Check for trailing whitespace and EOF newline + env: + ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} + run: | + has_trailing_whitespace=0 + has_missing_eof_newline=0 + + for file in ${ALL_CHANGED_FILES}; do + echo "Checking $file" + + # Check for trailing whitespace + if grep -qP '[ \t]+$' "$file"; then + echo "::error file=$file::Trailing whitespace found" + has_trailing_whitespace=1 + fi + + # Check for missing EOF newline + if [ -f "$file" ] && [ -s "$file" ]; then + last_char=$(tail -c 1 "$file") + if [ "$last_char" != "" ] && [ "$last_char" != $'\n' ]; then + echo "::error file=$file::Missing newline at end of file" + has_missing_eof_newline=1 + fi + fi + done + + if [ "$has_trailing_whitespace" -eq 1 ] || [ "$has_missing_eof_newline" -eq 1 ]; then + echo "Issues found: trailing whitespace or missing EOF newline." + echo "We recommend using an IDE to prevent this from happening." + exit 1 + fi