Skip to content

Commit 8e43b5e

Browse files
committed
add prerelease-lifecycle verification to all beta APIs
1 parent b48f5af commit 8e43b5e

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/usr/bin/env bash
2+
3+
# Copyright 2020 The Kubernetes Authors.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
# This script verifies whether codes follow golang convention.
18+
# Usage: `hack/verify-prerelease-lifecycle-tags.sh`.
19+
20+
set -o errexit
21+
set -o nounset
22+
set -o pipefail
23+
24+
KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
25+
source "${KUBE_ROOT}/hack/lib/init.sh"
26+
27+
kube::golang::verify_go_version
28+
29+
cd "${KUBE_ROOT}"
30+
if git --no-pager grep -L '// +k8s:prerelease-lifecycle-gen=true' -- 'staging/src/k8s.io/api/**/*beta*/doc.go'; then
31+
echo "!!! Some beta packages doc.go do not include prerelease-lifecycle tags."
32+
echo "To fix these errors, add '// +k8s:prerelease-lifecycle-gen=true' to doc.go and"
33+
echo "add '// +k8s:prerelease-lifecycle-gen:introduced=1.<release>' to every type that embeds metav1.TypeMeta"
34+
exit 1
35+
fi
36+
37+
if git --no-pager grep -L '// +k8s:prerelease-lifecycle-gen=true' -- 'staging/src/k8s.io/kube-aggregator/pkg/apis/**/*beta*/doc.go'; then
38+
echo "!!! Some beta packages doc.go do not include prerelease-lifecycle tags."
39+
echo "To fix these errors, add '// +k8s:prerelease-lifecycle-gen=true' to doc.go and"
40+
echo "add '// +k8s:prerelease-lifecycle-gen:introduced=1.<release>' to every type that embeds metav1.TypeMeta"
41+
exit 1
42+
fi
43+
44+
if git --no-pager grep -L '// +k8s:prerelease-lifecycle-gen=true' -- 'staging/src/k8s.io/apiextensions-apisever/pkg/apis/**/*beta*/doc.go'; then
45+
echo "!!! Some beta packages doc.go do not include prerelease-lifecycle tags."
46+
echo "To fix these errors, add '// +k8s:prerelease-lifecycle-gen=true' to doc.go and"
47+
echo "add '// +k8s:prerelease-lifecycle-gen:introduced=1.<release>' to every type that embeds metav1.TypeMeta"
48+
exit 1
49+
fi

0 commit comments

Comments
 (0)