Fix linting and static analysis

Set linter and formatter to *only* run when files it works for are
actually detected. Uses moreutils' ifne to detect the status of stdin
before sending an empty string to the test suite.
This commit is contained in:
Marty Oehme 2020-02-10 22:09:31 +01:00
parent a29ce0aabf
commit facb95f0b9
No known key found for this signature in database
GPG key ID: 0CCB0526EFB9611A

View file

@ -1,29 +1,30 @@
---
# This file is a template, and might need editing before it works on your project.
# see https://docs.gitlab.com/ce/ci/yaml/README.html for all available options
# you can delete this line if you're not using Docker
# install moreutils to enable ifne (if not empty)
# will only run the respective analyzers when files to test
# are acutally found
image: fnichol/check-shell:latest
analyze:
stage: test
before_script:
- apk add moreutils
- shellcheck --version
script:
- echo "--------- CHECKING POSIX SHELLSCRIPTS -------------"
- find . -type f -name '*.sh' | xargs shellcheck -Calways
- find . -type f -name '*.sh' | ifne xargs shellcheck -Calways
- echo "--------- CHECKING ZSH SHELLSCRIPTS -------------"
- find . -type f -name '*.zsh' | xargs shellcheck -Calways -s bash -e SC2034
- find . -type f -name '*.zsh' | ifne xargs shellcheck -Calways -s bash -e SC2034
lint:
stage: test
before_script:
- apk add moreutils
- shfmt -version
script:
- echo "--------- CHECKING POSIX SHELLSCRIPTS -------------"
- find . -type f -name '*.sh' | xargs shfmt -d -i 2
- find . -type f -name '*.sh' | ifne xargs shfmt -d -i 2
- echo "--------- CHECKING ZSH SHELLSCRIPTS -------------"
- find . -type f -name '*.zsh' | xargs shfmt -d -i 2
- find . -type f -name '*.zsh' | ifne xargs shfmt -d -i 2
test:
stage: test