Move linting out to separate actions

This commit is contained in:
Kevin van Zonneveld 2023-08-29 12:25:08 +02:00
parent 28deb39d86
commit 2e68b71743
No known key found for this signature in database
GPG Key ID: 5E20B81008764DF4
4 changed files with 16 additions and 68 deletions

View File

@ -20,10 +20,13 @@ jobs:
- name: Install
run: |
corepack yarn
- name: Lint
run: |
corepack yarn lint
- name: Test
run: |
corepack yarn test
- name: Website Build
if: github.ref == 'refs/heads/main'
run: |
cp README.md website/
cp README.md docs/

3
.shellcheckrc Normal file
View File

@ -0,0 +1,3 @@
external-sources=true
shell=bash
color=always

View File

@ -8,17 +8,19 @@
"yarn": "3.6.0"
},
"scripts": {
"lint": "shellcheck --shell=bash $(find . -name '*.sh' -maxdepth 2)",
"release:major": "env SEMANTIC=major npm run release",
"release:minor": "env SEMANTIC=minor npm run release",
"release:patch": "env SEMANTIC=patch npm run release",
"release": "npm version ${SEMANTIC:-patch} -m \"Release %s\" && npm run version:replace && git commit main.sh src/*.sh -m 'Update version' && git push && git push --tags && npm publish",
"lint:shellcheck": "SEV=info; if [ \"${CI:-false}\" = \"true\" ]; then SEV=warning; fi; shellcheck --severity=${SEV} $(find . -name '*.sh' -maxdepth 2)",
"lint:style": "test/style.pl $(find . -name '*.sh' -maxdepth 2)",
"lint": "npm-run-all -l 'lint:**'",
"release:major": "env SEMANTIC=major yarn release",
"release:minor": "env SEMANTIC=minor yarn release",
"release:patch": "env SEMANTIC=patch yarn release",
"release": "npm version ${SEMANTIC:-patch} -m \"Release %s\" && yarn version:replace && git commit main.sh src/*.sh -m 'Update version' && git push && git push --tags && npm publish",
"test:debug:main:repeated": "cross-env LOG_LEVEL=7 test/acceptance.sh main-repeated",
"test:update": "cross-env SAVE_FIXTURES=true npm run test",
"test:update": "cross-env SAVE_FIXTURES=true yarn test",
"test": "test/acceptance.sh",
"upgrade:modules": "next-update --keep true --tldr",
"version:current": "node -e 'console.log(require(\"./package.json\").version)'",
"version:replace": "replace 'v\\d+\\.\\d+\\.\\d+' \"v$(npm run --silent version:current)\" main.sh src/*.sh"
"version:replace": "replace 'v\\d+\\.\\d+\\.\\d+' \"v$(yarn --silent version:current)\" main.sh src/*.sh"
},
"optionalDependencies": {
"fsevents": "*"

View File

@ -229,64 +229,4 @@ while IFS=$'\n' read -r bash; do
fi
done <<< "$(which -a bash 2>/dev/null)"
# do some shellcheck linting
if [[ "$(command -v shellcheck)" ]]; then
echo "==> ShellCheck"
pushd "${__root}" > /dev/null
failed="false"
while IFS=$'\n' read -r file; do
[[ "${file}" =~ ^\./node_modules/ ]] && continue
[[ "${file}" =~ ^\./website/ ]] && continue
echo -n " ${file}.. "
if ! shellcheck --shell=bash --external-sources --color=always \
"${file}" >> "${__accptstTmpDir}/shellcheck.err"; then
echo "✗"
failed="true"
continue
fi
echo "✓"
done <<< "$(find . -type f -iname '*.sh')"
popd > /dev/null
if [[ "${failed}" = "true" ]]; then
cat "${__accptstTmpDir}/shellcheck.err"
exit 1
fi
fi
# poor man's style guide checking
echo "==> b3bp style guide"
pushd "${__root}" > /dev/null
failed="false"
while IFS=$'\n' read -r file; do
[[ "${file}" =~ ^\./node_modules/ ]] && continue
echo -n " ${file}.. "
if ! "${__root}/test/style.pl" "${file}" >> "${__accptstTmpDir}/style.err"; then
echo "✗"
failed="true"
continue
fi
echo "✓"
done <<< "$(find . -type f -iname '*.sh')"
popd > /dev/null
if [[ "${failed}" = "true" ]]; then
echo
cat "${__accptstTmpDir}/style.err"
echo
exit 1
fi
exit 0