mirror of
https://github.com/whisperity/CodeChecker-Action.git
synced 2025-12-31 12:17:22 +08:00
62 lines
1.6 KiB
Bash
Executable File
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
|