2021-05-31 13:57:42 +02:00
|
|
|
#!/bin/bash
|
2020-12-05 18:34:32 +01:00
|
|
|
|
2020-12-05 19:38:01 +01:00
|
|
|
# The problem-matcher definition must be present in the repository
|
2021-12-08 17:26:25 +01:00
|
|
|
# checkout (outside the Docker container running hadolint). We copy
|
|
|
|
# problem-matcher.json to the home folder.
|
|
|
|
cp /problem-matcher.json "$HOME/"
|
2020-12-06 20:10:45 +01:00
|
|
|
|
|
|
|
# After the run has finished we remove the problem-matcher.json from
|
|
|
|
# the repository so we don't leave the checkout dirty. We also remove
|
|
|
|
# the matcher so it won't take effect in later steps.
|
|
|
|
cleanup() {
|
|
|
|
echo "::remove-matcher owner=brpaz/hadolint-action::"
|
|
|
|
}
|
|
|
|
trap cleanup EXIT
|
2020-12-05 19:38:01 +01:00
|
|
|
|
2021-12-08 17:26:25 +01:00
|
|
|
echo "::add-matcher::$HOME/problem-matcher.json"
|
2020-12-05 18:34:32 +01:00
|
|
|
|
2021-05-08 13:08:16 +02:00
|
|
|
if [ -n "$HADOLINT_CONFIG" ]; then
|
|
|
|
HADOLINT_CONFIG="-c ${HADOLINT_CONFIG}"
|
|
|
|
fi
|
|
|
|
|
2021-11-18 13:09:22 +01:00
|
|
|
OUTPUT=
|
|
|
|
if [ -n "$HADOLINT_OUTPUT" ]; then
|
|
|
|
if [ -f "$HADOLINT_OUTPUT" ]; then
|
|
|
|
HADOLINT_OUTPUT="$TMP_FOLDER/$HADOLINT_OUTPUT"
|
|
|
|
fi
|
|
|
|
OUTPUT=" | tee $HADOLINT_OUTPUT"
|
|
|
|
fi
|
2021-05-08 13:08:16 +02:00
|
|
|
|
2022-03-24 13:57:02 +01:00
|
|
|
FAILED=0
|
2021-05-31 13:57:42 +02:00
|
|
|
if [ "$HADOLINT_RECURSIVE" = "true" ]; then
|
|
|
|
shopt -s globstar
|
|
|
|
|
|
|
|
filename="${!#}"
|
|
|
|
flags="${@:1:$#-1}"
|
|
|
|
|
2022-03-24 13:57:02 +01:00
|
|
|
hadolint $HADOLINT_CONFIG $flags **/$filename $OUTPUT || FAILED=1
|
2021-05-31 13:57:42 +02:00
|
|
|
else
|
|
|
|
# shellcheck disable=SC2086
|
2022-03-24 13:57:02 +01:00
|
|
|
hadolint $HADOLINT_CONFIG "$@" $OUTPUT || FAILED=1
|
2021-05-31 13:57:42 +02:00
|
|
|
fi
|
2021-11-18 13:09:22 +01:00
|
|
|
|
|
|
|
[ -z "$HADOLINT_OUTPUT" ] || echo "Hadolint output saved to: $HADOLINT_OUTPUT"
|
2022-03-24 13:57:02 +01:00
|
|
|
|
|
|
|
exit $FAILED
|