| #!/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 |
| if ${PKG_CONFIG} 'libsystemd >= 209' 2> /dev/null; then |
| DOCKER_BUILDTAGS+=" journald" |
| elif ${PKG_CONFIG} 'libsystemd-journal' 2> /dev/null; then |
| DOCKER_BUILDTAGS+=" journald journald_compat" |
| fi |
| |
| 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" |