Bump actions/upload-artifact from 3 to 4 #26
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://github.com/per1234/formatting-checks | |
name: General Formatting Checks | |
# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows | |
on: | |
pull_request: | |
push: | |
workflow_dispatch: | |
repository_dispatch: | |
jobs: | |
utf-8-bom: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Check for UTF-8 BOM file encoding | |
run: | | |
find . \ | |
-path './.git' -prune -or \ | |
-type f \ | |
-exec \ | |
grep \ | |
--files-with-matches \ | |
--binary-files=without-match $'\xEF\xBB\xBF' \ | |
'{}' \; \ | |
-exec \ | |
echo 'UTF-8 BOM encoding detected.' \; \ | |
-exec false \ | |
'{}' + | |
blank-first-line: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Check for files starting with a blank line | |
run: | | |
find . \ | |
-path './.git' -prune -or \ | |
-print0 \ | |
| \ | |
xargs \ | |
-0 \ | |
-L1 \ | |
bash -c \ | |
' \ | |
head \ | |
-1 \ | |
"$0" \ | |
| \ | |
grep \ | |
--binary-files=without-match \ | |
--regexp="^$" \ | |
; \ | |
if [[ "$?" == "0" ]]; then \ | |
echo "Blank line found at start of $0."; \ | |
false; \ | |
fi \ | |
' | |
tabs: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Check for unnecessary use of true tabs | |
run: | | |
find . \ | |
-path './.git' -prune -or \ | |
\( \ | |
-not -name 'keywords.txt' -and \ | |
-type f \ | |
\) \ | |
-exec \ | |
grep \ | |
--with-filename \ | |
--line-number \ | |
--binary-files=without-match \ | |
--regexp=$'\t' \ | |
'{}' \ | |
\; \ | |
-exec \ | |
echo 'Tab found.' \; \ | |
-exec \ | |
false \ | |
'{}' + | |
trailing: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Check for trailing whitespace | |
run: | | |
find . \ | |
-path './.git' -prune -or \ | |
-exec \ | |
grep \ | |
--with-filename \ | |
--line-number \ | |
--binary-files=without-match \ | |
--regexp='[[:blank:]]$' \ | |
'{}' \ | |
\; \ | |
-exec \ | |
echo 'Trailing whitespace found.' \; \ | |
-exec \ | |
false \ | |
'{}' + | |
line-endings: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Check for non-Unix line endings | |
run: | | |
find . \ | |
-path './.git' -prune -or \ | |
-exec \ | |
grep \ | |
--files-with-matches \ | |
--binary-files=without-match \ | |
--regexp=$'\r$' \ | |
'{}' \ | |
\; \ | |
-exec \ | |
echo 'Non-Unix EOL detected.' \; \ | |
-exec \ | |
false \ | |
'{}' + | |
blank-last-line: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Check for blank lines at end of files | |
run: | | |
find . \ | |
-path './.git' -prune -or \ | |
-print0 \ | |
| \ | |
xargs \ | |
-0 \ | |
-L1 \ | |
bash -c \ | |
' \ | |
tail -1 "$0" \ | |
| \ | |
grep \ | |
--binary-files=without-match \ | |
--regexp="^$" \ | |
; \ | |
if [[ "$?" == "0" ]]; then \ | |
echo "Blank line found at end of $0."; \ | |
false; \ | |
fi \ | |
' | |
no-last-newline: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Check for files that don't end in a newline | |
# https://stackoverflow.com/a/25686825 | |
run: | | |
find . \ | |
-path './.git' -prune -or \ | |
-type f \ | |
-print0 \ | |
| \ | |
xargs \ | |
-0 \ | |
-L1 \ | |
bash -c \ | |
' \ | |
if \ | |
test \ | |
"$( \ | |
grep \ | |
--files-with-matches \ | |
--binary-files=without-match \ | |
--max-count=1 \ | |
--regexp='.*' \ | |
"$0" \ | |
)" \ | |
&& \ | |
test \ | |
"$( \ | |
tail \ | |
--bytes=1 \ | |
"$0" \ | |
)"; \ | |
then \ | |
echo "No new line at end of $0."; \ | |
false; \ | |
fi \ | |
' |