2021-07-06 17:19:06 +00:00
|
|
|
# you can delete this line if you're not using Docker
|
|
|
|
#image: busybox:latest
|
|
|
|
|
|
|
|
shellcheck:
|
|
|
|
stage: test
|
|
|
|
image: registry.gitlab.com/pipeline-components/shellcheck:latest
|
2021-07-06 18:22:16 +00:00
|
|
|
tags:
|
|
|
|
- container
|
2021-07-06 17:19:06 +00:00
|
|
|
script:
|
|
|
|
# anything ending on .sh, should be shell script
|
|
|
|
- |
|
|
|
|
find . -name .git -type d -prune -o -type f -name \*.sh -print0 |
|
|
|
|
xargs -0 -P $(nproc) -r -n1 shellcheck
|
|
|
|
# magic, any file with a valid shebang should be scanned aswell
|
|
|
|
- |
|
|
|
|
find . -name .git -type d -prune -o -type f -regex '.*/[^.]*$' -print0 |
|
|
|
|
xargs -0 -P $(nproc) -r -n1 sh -c 'FILE="$0"; if head -n1 "$FILE" |grep -q "^#\\! \?/.\+\(ba|d|k\)\?sh" ; then shellcheck "$FILE" ; else /bin/true ; fi '
|
|
|
|
|
|
|
|
|