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

Reply via email to