Files
codechecker-analysis-action/src/parse-results.sh

62 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
if [[ ! -z "$CODECHECKER_ACTION_DEBUG" ]]; then
set -x
fi
echo "::group::Preparing for parse"
if [[ -z "$PROJECT_PATH" ]]; then
echo "::error title=Internal error::environment variable 'PROJECT_PATH' missing!"
exit 1
fi
if [[ -z "$RAW_RESULT_DIR" ]]; then
echo "::error title=Internal error::environment variable 'RAW_RESULT_DIR' missing!"
exit 1
fi
OUTPUT_DIR="$RAW_RESULT_DIR"_HTML
OUTPUT_LOG="$(dirname "$RAW_RESULT_DIR")"/"$(basename "$RAW_RESULT_DIR")_Diff.log"
mkdir -pv "$(dirname "$OUTPUT_DIR")"
if [[ ! -z "$IN_CONFIGFILE" ]]; then
CONFIG_FLAG_1="--config"
CONFIG_FLAG_2=$IN_CONFIGFILE
echo "Using configuration file \"$IN_CONFIGFILE\"!"
fi
echo "::endgroup::"
echo "::group::Generating HTML results from analysis"
"$CODECHECKER_PATH"/CodeChecker parse \
"$RAW_RESULT_DIR" \
--export "html" \
--output "$OUTPUT_DIR" \
--trim-path-prefix "$PROJECT_PATH" \
|| true
echo "::set-output name=HTML_DIR::$OUTPUT_DIR"
echo "::endgroup::"
echo "::group::Printing analysis results to log"
"$CODECHECKER_PATH"/CodeChecker parse \
"$RAW_RESULT_DIR" \
--trim-path-prefix "$PROJECT_PATH" \
> "$OUTPUT_LOG"
EXIT_CODE=$?
cat "$OUTPUT_LOG"
echo "::set-output name=OUTPUT_LOG::$OUTPUT_LOG"
echo "::endgroup::"
if [[ $EXIT_CODE -eq 2 ]]; then
echo "::set-output name=HAS_FINDINGS::true"
# Let the jobs continue. If there were findings, the script may be breaking
# the build in a later step. (After a potential upload to server.)
EXIT_CODE=0
elif [[ $EXIT_CODE -eq 0 ]]; then
echo "::set-output name=HAS_FINDINGS::false"
fi
# Exit code 1 is internal error of executing the step.
exit $EXIT_CODE