hack: update golangci-lint verify scripts

Instead of invoking verify-golangci-lint.sh directly from Prow jobs,
those Prow jobs should use "make verify WHAT=...". The advantage is
that the common code for running verify targets will be used, which
includes producing JUnit files.

Providing simple wrappers for strict linting of PRs (=
verify-golangci-lint-pr.sh) and event stricter linting of PRs with hints
enabled (= verify-golangci-lint-pr-hints.sh) enables those WHAT targets.
This commit is contained in:
Patrick Ohly 2023-10-09 20:07:49 +02:00
parent f19b62fc09
commit b190ea0c96
3 changed files with 34 additions and 10 deletions

View File

@ -33,7 +33,8 @@ source "${KUBE_ROOT}/third_party/forked/shell2junit/sh2ju.sh"
EXCLUDED_PATTERNS=(
"verify-all.sh" # this script calls the make rule and would cause a loop
"verify-*-dockerized.sh" # Don't run any scripts that intended to be run dockerized
"verify-golangci-lint-pr.sh" # Don't run this as part of the block pull-kubernetes-verify yet. TODO(pohly): try this in a non-blocking job and then reconsider this.
"verify-golangci-lint-pr.sh" # Runs in a separate job for PRs.
"verify-golangci-lint-hints.sh" # Runs in a separate job for PRs.
"verify-licenses.sh" # runs in a separate job to monitor availability of the dependencies periodically
"verify-openapi-docs-urls.sh" # Spams docs URLs, don't run in CI.
)

View File

@ -0,0 +1,31 @@
#!/usr/bin/env bash
# Copyright 2022 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This script checks a PR for the coding style for the Go language files using
# golangci-lint. It does nothing when invoked as part of a normal "make
# verify".
set -o nounset
set -o pipefail
if [ ! "${PULL_NUMBER:-}" ]; then
echo 'Not testing anything because this is not a pull request.'
exit 0
fi
KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
"${KUBE_ROOT}/hack/verify-golangci-lint.sh" -r "${PULL_BASE_SHA}" -n

View File

@ -28,12 +28,4 @@ fi
KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
# include shell2junit library
source "${KUBE_ROOT}/third_party/forked/shell2junit/sh2ju.sh"
# TODO (https://github.com/kubernetes/test-infra/issues/17056):
# take this additional artifact and convert it to GitHub annotations
# to make it easier to see these problems during a PR review.
#
# -g "${ARTIFACTS}/golangci-lint-githubactions.log"
juLog -output="${ARTIFACTS:-/tmp/results}" -class="golangci" -name="golangci-strict-pr" -fail="^ERROR: " "${KUBE_ROOT}/hack/verify-golangci-lint.sh" -r "${PULL_BASE_SHA}" -s
"${KUBE_ROOT}/hack/verify-golangci-lint.sh" -r "${PULL_BASE_SHA}" -s