moby--moby/hack/validate/golangci-lint

28 lines
818 B
Plaintext
Raw Normal View History

#!/usr/bin/env bash
set -e -o pipefail
SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# CI platforms differ, so per-platform GOLANGCI_LINT_OPTS can be set
# from a platform-specific Dockerfile, otherwise let's just set
# (somewhat pessimistic) default of 10 minutes.
: "${GOLANGCI_LINT_OPTS=--timeout=10m}"
[ -n "${TESTDEBUG}" ] && set -x
# TODO find a way to share this code with hack/make.sh
logger/journald: remove journald_compat (for systemd < 209) This was added in 6cdc4ba6cd5178037466c50ebe03a7eb111c43b1 in 2016, likely because at the time we were still building for CentOS 6 and Ubuntu 14.04. All currently supported distros appear to be on _at least_ 219 now, so it looks safe to remove this; ```bash docker run -it --rm centos:7 yum install -y systemd-devel pkg-config 'libsystemd >= 209' && echo "OK" || echo "KO" OK pkg-config --print-provides 'libsystemd' libsystemd = 219 pkg-config --print-provides 'libsystemd-journal' libsystemd-journal = 219 ``` And on a `debian:buster` (old stable) ```bash docker run -it --rm debian:buster apt-get update && apt-get install -y libsystemd-dev pkg-config pkg-config 'libsystemd >= 209' && echo "OK" || echo "KO" OK pkg-config --print-provides 'libsystemd' libsystemd = 241 pkg-config --print-provides 'libsystemd-journal' Package libsystemd-journal was not found in the pkg-config search path. Perhaps you should add the directory containing `libsystemd-journal.pc' to the PKG_CONFIG_PATH environment variable No package 'libsystemd-journal' found ``` OpenSUSE leap (I think that's built for s390x) ```bash docker run -it --rm docker.io/opensuse/leap:15 zypper install -y systemd-devel pkg-config 'libsystemd >= 209' && echo "OK" || echo "KO" OK pkg-config --print-provides 'libsystemd' libsystemd = 246 pkg-config --print-provides 'libsystemd-journal' Package libsystemd-journal was not found in the pkg-config search path. Perhaps you should add the directory containing `libsystemd-journal.pc' to the PKG_CONFIG_PATH environment variable No package 'libsystemd-journal' found ``` Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-07-20 11:24:28 +00:00
if pkg-config 'libsystemd' 2> /dev/null; then
DOCKER_BUILDTAGS+=" journald"
fi
hack/validate: clean-up output, move golang-ci-lint to end The golang-ci-lint takes longest to run, so do the other checks first; this also makes the output a bit more readable. While at it, fix some consistency issues in the output of the other checks. Before this change: TEST_FORCE_VALIDATE=1 hack/validate/default Congratulations! All commits are properly signed with the DCO! Congratulations! Seccomp profile generation is done correctly. INFO [config_reader] Used config file hack/validate/golangci-lint.yml INFO [lintersdb] Active 15 linters: [deadcode gofmt goimports golint gosec gosimple govet ineffassign misspell staticcheck structcheck typecheck unconvert unused varcheck] ... INFO Execution took 2m12.4287302s Congratulations! "./pkg/..." is safely isolated from internal code. The swagger spec at "api/swagger.yaml" is valid against swagger specification 2.0 Congratulations! All api changes are done the right way. Congratulations! All toml source files changed here have valid syntax. Congratulations! Changelog CHANGELOG.md is well-formed. Congratulations! Changelog CHANGELOG.md dates are in descending order. After this change: TEST_FORCE_VALIDATE=1 hack/validate/default Congratulations! All commits are properly signed with the DCO! Congratulations! Seccomp profile generation is done correctly. Congratulations! Packages in "./pkg/..." are safely isolated from internal code. Congratulations! The swagger spec at "api/swagger.yaml" is valid against swagger specification 2.0 Congratulations! All API changes are done the right way. Congratulations! All TOML source files changed here have valid syntax. Congratulations! Changelog CHANGELOG.md is well-formed. Congratulations! Changelog CHANGELOG.md dates are in descending order. Congratulations! No new tests were added to integration-cli. INFO Start validation with golang-ci-lint INFO [config_reader] Used config file hack/validate/golangci-lint.yml INFO [lintersdb] Active 15 linters: [deadcode gofmt goimports golint gosec gosimple govet ineffassign misspell staticcheck structcheck typecheck unconvert unused varcheck] ... INFO Execution took 2m12.4287302s Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-11 11:31:18 +00:00
echo -e "\n\033[0;36mINFO\033[0m Start validation with golang-ci-lint"
# TODO use --out-format=junit-xml and store artifacts
# shellcheck disable=SC2086
GOGC=75 golangci-lint run \
${GOLANGCI_LINT_OPTS} \
--print-resources-usage \
--build-tags="${DOCKER_BUILDTAGS}" \
--verbose \
--config "${SCRIPTDIR}/golangci-lint.yml"