From 455e94a1a6d6b954dcfd91e7e4e2e977bcde337c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Bergstro=CC=88m?= Date: Thu, 13 May 2021 21:35:34 -0400 Subject: [PATCH] main: error check against json array If `error_level` is set to 2, any output from hadolint should be seen as an error. Since hadolint emits an array when output is set to json, this is seen as our happy path. Fixes: https://github.com/jbergstroem/hadolint-gh-action/issues/24 --- lib/main.sh | 4 ++-- test/e2e.sh | 1 + test/fixtures/Dockerfile-valid | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/Dockerfile-valid diff --git a/lib/main.sh b/lib/main.sh index c6d7766..8e1cd31 100644 --- a/lib/main.sh +++ b/lib/main.sh @@ -58,8 +58,8 @@ function run() { [[ "${ERRORLEVEL}" == "1" ]] && echo "${OUTPUT}" | exit_if_found_in_json "warning" [[ "${ERRORLEVEL}" == "1" ]] && echo "${OUTPUT}" | exit_if_found_in_json "error" - # Any output would imply an error - [[ "${ERRORLEVEL}" == "2" && "${OUTPUT}" != "" ]] && exit 1 + # An empty json array would imply an error + [[ "${ERRORLEVEL}" == "2" && "${OUTPUT}" != "[]" ]] && exit 1 # You either did well or chose to become a better person exit 0 diff --git a/test/e2e.sh b/test/e2e.sh index e2ae31c..adaad7a 100755 --- a/test/e2e.sh +++ b/test/e2e.sh @@ -35,6 +35,7 @@ test_override_errorlevel() { assert "error_level=-1 dockerfile=fixtures/Dockerfile-error ${HL}" assert_fail "dockerfile=fixtures/Dockerfile-error ${HL}" assert_fail "error_level=2 dockerfile=fixtures/Dockerfile-error ${HL}" + assert "error_level=2 dockerfile=fixtures/Dockerfile-valid ${HL}" assert "dockerfile=fixtures/Dockerfile-warning ${HL}" assert_fail "error_level=1 dockerfile=fixtures/Dockerfile-warning ${HL}" } diff --git a/test/fixtures/Dockerfile-valid b/test/fixtures/Dockerfile-valid new file mode 100644 index 0000000..4087e94 --- /dev/null +++ b/test/fixtures/Dockerfile-valid @@ -0,0 +1,3 @@ +FROM alpine:3.12 + +RUN ls \ No newline at end of file