ci: Pacify shellcheck version 0.8 and apply other linting improvements

Work around a limitation in the `shellcheck source` directive, which
does not recognize quotes in shellcheck versions older than 0.9.

Also extend the checks for YAML files over the entire source tree, in
preparation for the introduction of the GitHub Actions config file.
This commit is contained in:
Cosmin Truta 2024-02-15 14:37:24 +02:00
parent fb65436e06
commit f74d5ecce8
6 changed files with 42 additions and 41 deletions

View File

@ -8,7 +8,7 @@ set -o errexit -o pipefail -o posix
#
# SPDX-License-Identifier: MIT
# shellcheck source="ci/lib/ci.lib.sh"
# shellcheck source=ci/lib/ci.lib.sh
source "$(dirname "$0")/lib/ci.lib.sh"
cd "$CI_TOPLEVEL_DIR"
@ -47,10 +47,10 @@ function ci_finish_lint {
ci_info "## END OF LINTING ##"
if [[ $CI_LINT_COUNTER -eq 0 ]]
then
ci_info "success!"
ci_info "## SUCCESS ##"
return 0
else
ci_warn "$CI_LINT_COUNTER failure(s)"
ci_info "linting failed"
return 1
fi
}
@ -61,14 +61,15 @@ function ci_lint_ci_scripts {
return 0
}
ci_info "## LINTING: CI scripts ##"
{
local my_file
ci_spawn "$CI_SHELLCHECK" --version
for my_file in ci/*.sh
find ./ci -maxdepth 1 -name "*.sh" |
while IFS="" read -r my_file
do
ci_spawn "$CI_SHELLCHECK" -x "$my_file" || {
CI_LINT_COUNTER=$((CI_LINT_COUNTER + 1))
}
ci_spawn "$CI_SHELLCHECK" -x "$my_file"
done
} || CI_LINT_COUNTER=$((CI_LINT_COUNTER + 1))
}
function ci_lint_text_files {
@ -77,7 +78,6 @@ function ci_lint_text_files {
return 0
}
ci_info "## LINTING: text files ##"
local my_file
ci_spawn "$CI_EDITORCONFIG_CHECKER" --version
ci_spawn "$CI_EDITORCONFIG_CHECKER" || {
CI_LINT_COUNTER=$((CI_LINT_COUNTER + 1))
@ -90,14 +90,15 @@ function ci_lint_yaml_files {
return 0
}
ci_info "## LINTING: YAML files ##"
{
local my_file
ci_spawn "$CI_YAMLLINT" --version
for my_file in .*.yml
find . \( -iname "*.yml" -o -iname "*.yaml" \) -not -path "./out/*" |
while IFS="" read -r my_file
do
ci_spawn "$CI_YAMLLINT" --strict "$my_file" || {
CI_LINT_COUNTER=$((CI_LINT_COUNTER + 1))
}
ci_spawn "$CI_YAMLLINT" --strict "$my_file"
done
} || CI_LINT_COUNTER=$((CI_LINT_COUNTER + 1))
}
function ci_lint {

View File

@ -8,7 +8,7 @@ set -o errexit -o pipefail -o posix
#
# SPDX-License-Identifier: MIT
# shellcheck source="ci/lib/ci.lib.sh"
# shellcheck source=ci/lib/ci.lib.sh
source "$(dirname "$0")/lib/ci.lib.sh"
cd "$CI_TOPLEVEL_DIR"

View File

@ -8,7 +8,7 @@ set -o errexit -o pipefail -o posix
#
# SPDX-License-Identifier: MIT
# shellcheck source="ci/lib/ci.lib.sh"
# shellcheck source=ci/lib/ci.lib.sh
source "$(dirname "$0")/lib/ci.lib.sh"
cd "$CI_TOPLEVEL_DIR"
@ -126,23 +126,23 @@ function ci_build {
local all_cmake_build_flags=()
local all_ctest_flags=()
[[ $CI_CMAKE_TOOLCHAIN_FILE ]] && {
all_cmake_vars+=(-DCMAKE_TOOLCHAIN_FILE="$CI_CMAKE_TOOLCHAIN_FILE")
all_cmake_vars+=("-DCMAKE_TOOLCHAIN_FILE=$CI_CMAKE_TOOLCHAIN_FILE")
}
[[ $CI_CC ]] && {
all_cmake_vars+=(-DCMAKE_C_COMPILER="$CI_CC")
all_cmake_vars+=("-DCMAKE_C_COMPILER=$CI_CC")
}
[[ $CI_CC_FLAGS || $CI_SANITIZERS ]] && {
[[ $CI_SANITIZERS ]] && CI_CC_FLAGS+="${CI_CC_FLAGS:+" "}-fsanitize=$CI_SANITIZERS"
all_cmake_vars+=(-DCMAKE_C_FLAGS="$CI_CC_FLAGS")
all_cmake_vars+=("-DCMAKE_C_FLAGS=$CI_CC_FLAGS")
}
[[ $CI_AR ]] && {
all_cmake_vars+=(-DCMAKE_AR="$CI_AR")
all_cmake_vars+=("-DCMAKE_AR=$CI_AR")
}
[[ $CI_RANLIB ]] && {
all_cmake_vars+=(-DCMAKE_RANLIB="$CI_RANLIB")
all_cmake_vars+=("-DCMAKE_RANLIB=$CI_RANLIB")
}
all_cmake_vars+=(-DCMAKE_BUILD_TYPE="$CI_CMAKE_BUILD_TYPE")
all_cmake_vars+=(-DCMAKE_VERBOSE_MAKEFILE=ON)
all_cmake_vars+=("-DCMAKE_BUILD_TYPE=$CI_CMAKE_BUILD_TYPE")
all_cmake_vars+=("-DCMAKE_VERBOSE_MAKEFILE=ON")
all_cmake_vars+=($CI_CMAKE_VARS)
all_cmake_build_flags+=($CI_CMAKE_BUILD_FLAGS)
all_ctest_flags+=($CI_CTEST_FLAGS)

View File

@ -8,7 +8,7 @@ set -o errexit -o pipefail -o posix
#
# SPDX-License-Identifier: MIT
# shellcheck source="ci/lib/ci.lib.sh"
# shellcheck source=ci/lib/ci.lib.sh
source "$(dirname "$0")/lib/ci.lib.sh"
cd "$CI_TOPLEVEL_DIR"

View File

@ -8,7 +8,7 @@ set -o errexit -o pipefail -o posix
#
# SPDX-License-Identifier: MIT
# shellcheck source="ci/lib/ci.lib.sh"
# shellcheck source=ci/lib/ci.lib.sh
source "$(dirname "$0")/lib/ci.lib.sh"
cd "$CI_TOPLEVEL_DIR"
@ -97,33 +97,33 @@ function ci_build {
all_make_flags+=($CI_MAKE_FLAGS)
}
[[ $CI_CC ]] && {
all_make_vars+=(CC="$CI_CC")
all_make_vars+=("CC=$CI_CC")
}
[[ $CI_CC_FLAGS || $CI_SANITIZERS ]] && {
[[ $CI_SANITIZERS ]] && CI_CC_FLAGS="${CI_CC_FLAGS:-"-O2"} -fsanitize=$CI_SANITIZERS"
all_make_vars+=(CFLAGS="$CI_CC_FLAGS")
all_make_vars+=("CFLAGS=$CI_CC_FLAGS")
}
[[ $CI_CPP ]] && {
all_make_vars+=(CPP="$CI_CPP")
all_make_vars+=("CPP=$CI_CPP")
}
[[ $CI_CPP_FLAGS ]] && {
all_make_vars+=(CPPFLAGS="$CI_CPP_FLAGS")
all_make_vars+=("CPPFLAGS=$CI_CPP_FLAGS")
}
[[ $CI_AR ]] && {
all_make_vars+=(AR="$CI_AR")
all_make_vars+=("AR=$CI_AR")
}
[[ $CI_RANLIB ]] && {
all_make_vars+=(RANLIB="$CI_RANLIB")
all_make_vars+=("RANLIB=$CI_RANLIB")
}
[[ $CI_LD ]] && {
all_make_vars+=(LD="$CI_LD")
all_make_vars+=("LD=$CI_LD")
}
[[ $CI_LD_FLAGS || $CI_SANITIZERS ]] && {
[[ $CI_SANITIZERS ]] && CI_LD_FLAGS+="${CI_LD_FLAGS:+" "}-fsanitize=$CI_SANITIZERS"
all_make_vars+=(LDFLAGS="$CI_LD_FLAGS")
all_make_vars+=("LDFLAGS=$CI_LD_FLAGS")
}
[[ $CI_LIBS ]] && {
all_make_vars+=(LIBS="$CI_LIBS")
all_make_vars+=("LIBS=$CI_LIBS")
}
all_make_vars+=($CI_MAKE_VARS)
# And... build!

View File

@ -8,7 +8,7 @@ set -o errexit -o pipefail -o posix
#
# SPDX-License-Identifier: MIT
# shellcheck source="ci/lib/ci.lib.sh"
# shellcheck source=ci/lib/ci.lib.sh
source "$(dirname "$0")/lib/ci.lib.sh"
cd "$CI_TOPLEVEL_DIR"