This is an automated email from the ASF dual-hosted git repository.
kvn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git
The following commit(s) were added to refs/heads/master by this push:
new 495c631 chore: add verify scripts and verify-codegen CI (#513)
495c631 is described below
commit 495c6317a618683d2c69c48c489763c4c8285504
Author: Sarasa Kisaragi <[email protected]>
AuthorDate: Mon May 31 09:21:00 2021 +0800
chore: add verify scripts and verify-codegen CI (#513)
---
.github/workflows/verify-codegen.yml | 40 +++++++++++++++++++
Makefile | 22 ++++++++++-
.../apis/config/v2alpha1/zz_generated.deepcopy.go | 1 +
pkg/types/apisix/v1/zz_generated.deepcopy.go | 29 +++++++-------
utils/update-codegen.sh | 18 +++++----
utils/{update-codegen.sh => verify-codegen.sh} | 45 ++++++++++++++++++----
6 files changed, 124 insertions(+), 31 deletions(-)
diff --git a/.github/workflows/verify-codegen.yml
b/.github/workflows/verify-codegen.yml
new file mode 100644
index 0000000..2e98928
--- /dev/null
+++ b/.github/workflows/verify-codegen.yml
@@ -0,0 +1,40 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+#
+name: verify-codegen
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+jobs:
+ run-test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: setup go
+ uses: actions/setup-go@v1
+ with:
+ go-version: '1.13'
+ - name: make verify-codegen
+ working-directory: ./
+ run: |
+ make verify-codegen
diff --git a/Makefile b/Makefile
index 77f398f..70d1582 100644
--- a/Makefile
+++ b/Makefile
@@ -149,8 +149,28 @@ release-src:
.PHONY: gen-tools
gen-tools:
go mod download
- go install
k8s.io/code-generator/cmd/{client-gen,lister-gen,informer-gen,deepcopy-gen}
+ @bash -c 'go install
k8s.io/code-generator/cmd/{client-gen,lister-gen,informer-gen,deepcopy-gen}'
+### codegen: Generate codes for clientset, informer, deepcopy,
etc.
.PHONY: codegen
codegen: gen-tools
./utils/update-codegen.sh
+
+### verify-codegen: Verify whether the generated codes (clientset,
informer, deepcopy, etc) are up to date.
+.PHONY: verify-codegen
+verify-codegen: gen-tools
+ ./utils/verify-codegen.sh
+
+### verify-license: Verify license headers.
+.PHONY: verify-license
+verify-license:
+ docker run -it --rm -v $(PWD):/github/workspace apache/skywalking-eyes
header check -v info
+
+### verify-mdlint: Verify markdown files lint rules.
+.PHONY: verify-mdlint
+verify-mdlint:
+ docker run -it --rm -v $(PWD):/work tmknom/markdownlint '**/*.md'
--ignore node_modules
+
+### verify-all: Verify all verify- rules.
+.PHONY: verify-all
+verify-all: verify-codegen verify-license verify-mdlint
diff --git a/pkg/kube/apisix/apis/config/v2alpha1/zz_generated.deepcopy.go
b/pkg/kube/apisix/apis/config/v2alpha1/zz_generated.deepcopy.go
index 09308e5..cdc867c 100644
--- a/pkg/kube/apisix/apis/config/v2alpha1/zz_generated.deepcopy.go
+++ b/pkg/kube/apisix/apis/config/v2alpha1/zz_generated.deepcopy.go
@@ -28,6 +28,7 @@ import (
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver,
writing into out. in must be non-nil.
func (in *ApisixClusterAdminConfig) DeepCopyInto(out
*ApisixClusterAdminConfig) {
*out = *in
+ out.ClientTimeout = in.ClientTimeout
return
}
diff --git a/pkg/types/apisix/v1/zz_generated.deepcopy.go
b/pkg/types/apisix/v1/zz_generated.deepcopy.go
index c798922..911eb86 100644
--- a/pkg/types/apisix/v1/zz_generated.deepcopy.go
+++ b/pkg/types/apisix/v1/zz_generated.deepcopy.go
@@ -1,20 +1,19 @@
// +build !ignore_autogenerated
-/*
-Copyright 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.
-*/
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
// Code generated by deepcopy-gen. DO NOT EDIT.
diff --git a/utils/update-codegen.sh b/utils/update-codegen.sh
index 8367c2c..851ba7c 100755
--- a/utils/update-codegen.sh
+++ b/utils/update-codegen.sh
@@ -24,20 +24,24 @@ SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")
PROJECT_ROOT="$SCRIPT_ROOT/.."
GENERATED_ROOT="$PROJECT_ROOT/.generated"
+PKG_NAME="github.com/apache/apisix-ingress-controller"
+
# Make sure no pollution
rm -rf "$GENERATED_ROOT"
bash "${SCRIPT_ROOT}"/generate-groups.sh "deepcopy,client,informer,lister" \
- github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client
github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis \
- config:v1,v2alpha1 github.com/apache/apisix-ingress-controller \
+ ${PKG_NAME}/pkg/kube/apisix/client ${PKG_NAME}/pkg/kube/apisix/apis \
+ config:v1,v2alpha1 ${PKG_NAME} \
--output-base "$GENERATED_ROOT" \
- --go-header-file "${SCRIPT_ROOT}"/boilerplate.go.txt
+ --go-header-file "${SCRIPT_ROOT}"/boilerplate.go.txt \
+ "$@"
bash "${SCRIPT_ROOT}"/generate-groups.sh "deepcopy" \
- github.com/apache/apisix-ingress-controller/pkg/types
github.com/apache/apisix-ingress-controller/pkg/types \
- apisix:v1 github.com/apache/apisix-ingress-controller \
+ ${PKG_NAME}/pkg/types ${PKG_NAME}/pkg/types \
+ apisix:v1 ${PKG_NAME} \
--output-base "$GENERATED_ROOT" \
- --go-header-file "${SCRIPT_ROOT}"/boilerplate.go.txt
+ --go-header-file "${SCRIPT_ROOT}"/boilerplate.go.txt \
+ "$@"
-cp -r "$GENERATED_ROOT/github.com/apache/apisix-ingress-controller/"**
"$PROJECT_ROOT"
+cp -r "$GENERATED_ROOT/${PKG_NAME}/"** "$PROJECT_ROOT"
rm -rf "$GENERATED_ROOT"
diff --git a/utils/update-codegen.sh b/utils/verify-codegen.sh
similarity index 50%
copy from utils/update-codegen.sh
copy to utils/verify-codegen.sh
index 8367c2c..8463ccb 100755
--- a/utils/update-codegen.sh
+++ b/utils/verify-codegen.sh
@@ -24,20 +24,49 @@ SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")
PROJECT_ROOT="$SCRIPT_ROOT/.."
GENERATED_ROOT="$PROJECT_ROOT/.generated"
+PKG_NAME="github.com/apache/apisix-ingress-controller"
+
# Make sure no pollution
rm -rf "$GENERATED_ROOT"
+trap 'rm -rf "$GENERATED_ROOT"' EXIT
+
+# Prepare existed codes
+mkdir -p "${GENERATED_ROOT}/${PKG_NAME}/pkg/kube/apisix"
+cp -r "${PROJECT_ROOT}/pkg/kube/apisix/client"
"${GENERATED_ROOT}/${PKG_NAME}/pkg/kube/apisix"
+
+cp_deepcopy() {
+ local SRC_PATH="$1"
+ local CP_SCRIPT='FILE_PATH=$1; TARGET_PATH=$2; DIR="$(dirname $FILE_PATH)";
mkdir -p $TARGET_PATH/$DIR && cp $FILE_PATH $TARGET_PATH/$DIR'
+ find "${PROJECT_ROOT}/$SRC_PATH" -type f -name 'zz_generated.deepcopy.go' \
+ -exec sh -c "$CP_SCRIPT" _ {} "${GENERATED_ROOT}/${PKG_NAME}" ';'
+}
+
+cp_deepcopy "pkg/kube/apisix/"
+cp_deepcopy "pkg/types/apisix/"
+
+# Verify
+ret=0
bash "${SCRIPT_ROOT}"/generate-groups.sh "deepcopy,client,informer,lister" \
- github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client
github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis \
- config:v1,v2alpha1 github.com/apache/apisix-ingress-controller \
+ ${PKG_NAME}/pkg/kube/apisix/client ${PKG_NAME}/pkg/kube/apisix/apis \
+ config:v1,v2alpha1 ${PKG_NAME} \
--output-base "$GENERATED_ROOT" \
- --go-header-file "${SCRIPT_ROOT}"/boilerplate.go.txt
+ --go-header-file "${SCRIPT_ROOT}"/boilerplate.go.txt \
+ --verify-only || ret=$?
+
+if [[ $ret -eq 0 ]]; then
bash "${SCRIPT_ROOT}"/generate-groups.sh "deepcopy" \
- github.com/apache/apisix-ingress-controller/pkg/types
github.com/apache/apisix-ingress-controller/pkg/types \
- apisix:v1 github.com/apache/apisix-ingress-controller \
+ ${PKG_NAME}/pkg/types ${PKG_NAME}/pkg/types \
+ apisix:v1 ${PKG_NAME} \
--output-base "$GENERATED_ROOT" \
- --go-header-file "${SCRIPT_ROOT}"/boilerplate.go.txt
+ --go-header-file "${SCRIPT_ROOT}"/boilerplate.go.txt \
+ --verify-only|| ret=$?
+fi
-cp -r "$GENERATED_ROOT/github.com/apache/apisix-ingress-controller/"**
"$PROJECT_ROOT"
-rm -rf "$GENERATED_ROOT"
+if [[ $ret -eq 0 ]]; then
+ echo "Generated codes up to date."
+else
+ echo "Generated codes out of date. Please run \`make codegen\`"
+ exit 1
+fi