Skip to content
Snippets Groups Projects
Commit 3d68606e authored by Vivek Dutta's avatar Vivek Dutta
Browse files

Enhance error handling

parent 731c8510
No related branches found
No related tags found
1 merge request!31Draft: Enhance error handling
#!/bin/bash #!/bin/bash
set -eo pipefail
log() log()
{ {
...@@ -106,7 +107,7 @@ run_cpd_check() ...@@ -106,7 +107,7 @@ run_cpd_check()
exec_cmd /usr/local/pmd/bin/run.sh cpd --language c --exclude ./test/ ${CPD_OPTIONS} --files ${SOURCE_FOLDER} exec_cmd /usr/local/pmd/bin/run.sh cpd --language c --exclude ./test/ ${CPD_OPTIONS} --files ${SOURCE_FOLDER}
} }
main() validate_c_code()
{ {
log "SOURCE_FOLDER: ${SOURCE_FOLDER}" log "SOURCE_FOLDER: ${SOURCE_FOLDER}"
log "COMPILATION_FIXUP: ${COMPILATION_FIXUP}" log "COMPILATION_FIXUP: ${COMPILATION_FIXUP}"
...@@ -126,6 +127,11 @@ main() ...@@ -126,6 +127,11 @@ main()
fi fi
fi fi
if [ "${SOURCE_FOLDER}" == "SKIP" ]; then
log "Skipping C code analysis"
exit 0
fi
# Install pre-req if present/defined # Install pre-req if present/defined
if [ -f "./gitlab-ci/install-dependencies.sh" ]; then if [ -f "./gitlab-ci/install-dependencies.sh" ]; then
log "Installing prerequisites for compilation" log "Installing prerequisites for compilation"
...@@ -147,10 +153,40 @@ main() ...@@ -147,10 +153,40 @@ main()
run_cppcheck_validation run_cppcheck_validation
# Run clang analysis # Run clang analysis
run_cppcheck_clang_validation # run_cppcheck_clang_validation
# Run infer analysis # Run infer analysis
run_infer_analysis run_infer_analysis
} }
main "$@" validate_shell_script()
{
log "Running optional tests"
if [ -z "${SHELL_SRC}" ]; then
log "Skipping ShellCheck path not defined"
exit 0
fi
if [ "${SHELL_SRC}" == "SKIP" ]; then
log "Skipping ShellChecks ..."
exit 0
fi
log "Running shellcheck ${SHELLCHECK_OPTIONS} ${SHELL_SRC}"
exec_cmd shellcheck ${SHELLCHECK_OPTIONS} ${SHELL_SRC}
}
validation_type="${1}"
case "${validation_type}" in
c_code)
validate_c_code "${@}"
;;
shell_script)
validate_shell_script "${@}"
;;
*)
echo "Unsupported validation type: ${validation_type}"
exit 1
;;
esac
variables: variables:
COMMON_IMAGE: "dev.iopsys.eu:5050/iopsys/gitlab-ci-pipeline/code-analysis:1.2" COMMON_IMAGE: "dev.iopsys.eu:5050/iopsys/gitlab-ci-pipeline/code-analysis:1.3"
FLAWFINDER_OPTIONS: "" FLAWFINDER_OPTIONS: ""
CPD_OPTIONS: "--minimum-tokens 200" CPD_OPTIONS: "--minimum-tokens 200"
CPPCHECK_OPTIONS: "" CPPCHECK_OPTIONS: ""
...@@ -14,10 +14,7 @@ run_static_code_analysis: ...@@ -14,10 +14,7 @@ run_static_code_analysis:
stage: static_code_analysis stage: static_code_analysis
allow_failure: false allow_failure: false
script: script:
- "static_code_analysis.sh" - "static_code_analysis.sh c_code"
rules:
- if: $SOURCE_FOLDER
when: always
artifacts: artifacts:
when: on_failure when: on_failure
paths: paths:
...@@ -27,11 +24,6 @@ run_static_code_analysis: ...@@ -27,11 +24,6 @@ run_static_code_analysis:
run_shell_checks: run_shell_checks:
image: ${COMMON_IMAGE} image: ${COMMON_IMAGE}
stage: static_code_analysis stage: static_code_analysis
allow_failure: true allow_failure: false
script: script:
- echo "Running optional tests" - "static_code_analysis.sh shell_script"
- echo "Running shellcheck ${SHELLCHECK_OPTIONS} ${SHELL_SRC}"
- "shellcheck ${SHELLCHECK_OPTIONS} ${SHELL_SRC}"
rules:
- if: $SHELL_SRC
when: always
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment