diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index e4298686c..ae6a256e4 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -8,11 +8,29 @@ set -o pipefail REPO_ROOT=$(git rev-parse --show-toplevel) cd "${REPO_ROOT}" -echo "Generating with deepcopy-gen" GO111MODULE=on go install k8s.io/code-generator/cmd/deepcopy-gen +GO111MODULE=on go install k8s.io/code-generator/cmd/register-gen +GO111MODULE=on go install k8s.io/code-generator/cmd/conversion-gen +GO111MODULE=on go install k8s.io/code-generator/cmd/client-gen +GO111MODULE=on go install k8s.io/code-generator/cmd/lister-gen +GO111MODULE=on go install k8s.io/code-generator/cmd/informer-gen +GO111MODULE=on go install k8s.io/code-generator/cmd/openapi-gen export GOPATH=$(go env GOPATH | awk -F ':' '{print $1}') export PATH=$PATH:$GOPATH/bin +go_path="${REPO_ROOT}/_go" +cleanup() { + rm -rf "${go_path}" +} +trap "cleanup" EXIT SIGINT + +cleanup + +source "${REPO_ROOT}"/hack/util.sh +util:create_gopath_tree "${REPO_ROOT}" "${go_path}" +export GOPATH="${go_path}" + +echo "Generating with deepcopy-gen" deepcopy-gen \ --go-header-file hack/boilerplate/boilerplate.go.txt \ --input-dirs=github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1 \ @@ -55,7 +73,6 @@ deepcopy-gen \ --output-file-base=zz_generated.deepcopy echo "Generating with register-gen" -GO111MODULE=on go install k8s.io/code-generator/cmd/register-gen register-gen \ --go-header-file hack/boilerplate/boilerplate.go.txt \ --input-dirs=github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1 \ @@ -93,7 +110,6 @@ register-gen \ --output-file-base=zz_generated.register echo "Generating with conversion-gen" -GO111MODULE=on go install k8s.io/code-generator/cmd/conversion-gen conversion-gen \ --go-header-file hack/boilerplate/boilerplate.go.txt \ --input-dirs=github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1 \ @@ -101,7 +117,6 @@ conversion-gen \ --output-file-base=zz_generated.conversion echo "Generating with client-gen" -GO111MODULE=on go install k8s.io/code-generator/cmd/client-gen client-gen \ --go-header-file hack/boilerplate/boilerplate.go.txt \ --input-base="" \ @@ -110,14 +125,12 @@ client-gen \ --clientset-name=versioned echo "Generating with lister-gen" -GO111MODULE=on go install k8s.io/code-generator/cmd/lister-gen lister-gen \ --go-header-file hack/boilerplate/boilerplate.go.txt \ --input-dirs=github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1,github.com/karmada-io/karmada/pkg/apis/policy/v1alpha1,github.com/karmada-io/karmada/pkg/apis/work/v1alpha1,github.com/karmada-io/karmada/pkg/apis/work/v1alpha2,github.com/karmada-io/karmada/pkg/apis/config/v1alpha1,github.com/karmada-io/karmada/pkg/apis/networking/v1alpha1 \ --output-package=github.com/karmada-io/karmada/pkg/generated/listers echo "Generating with informer-gen" -GO111MODULE=on go install k8s.io/code-generator/cmd/informer-gen informer-gen \ --go-header-file hack/boilerplate/boilerplate.go.txt \ --input-dirs=github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1,github.com/karmada-io/karmada/pkg/apis/policy/v1alpha1,github.com/karmada-io/karmada/pkg/apis/work/v1alpha1,github.com/karmada-io/karmada/pkg/apis/work/v1alpha2,github.com/karmada-io/karmada/pkg/apis/config/v1alpha1,github.com/karmada-io/karmada/pkg/apis/networking/v1alpha1 \ @@ -126,7 +139,6 @@ informer-gen \ --output-package=github.com/karmada-io/karmada/pkg/generated/informers echo "Generating with openapi-gen" -GO111MODULE=on go install k8s.io/code-generator/cmd/openapi-gen openapi-gen \ --go-header-file hack/boilerplate/boilerplate.go.txt \ --input-dirs "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1" \ diff --git a/hack/util.sh b/hack/util.sh index dae08fe23..6f3b40f46 100755 --- a/hack/util.sh +++ b/hack/util.sh @@ -17,6 +17,8 @@ KARMADA_WEBHOOK_LABEL="karmada-webhook" AGENT_POD_LABEL="karmada-agent" INTERPRETER_WEBHOOK_EXAMPLE_LABEL="karmada-interpreter-webhook-example" +KARMADA_GO_PACKAGE="github.com/karmada-io/karmada" + MIN_Go_VERSION=go1.17.0 #https://textkool.com/en/ascii-art-generator?hl=default&vl=default&font=DOS%20Rebel&text=KARMADA @@ -572,3 +574,21 @@ function util::get_GO_LDFLAGS() { -X github.com/karmada-io/karmada/pkg/version.buildDate=${BUILDDATE}" echo $LDFLAGS } + +# util::create_gopath_tree create the GOPATH tree +# Parameters: +# - $1: the root path of repo +# - $2: go path +function util:create_gopath_tree() { + local repo_root=$1 + local go_path=$2 + + local go_pkg_dir="${go_path}/src/${KARMADA_GO_PACKAGE}" + go_pkg_dir=$(dirname "${go_pkg_dir}") + + mkdir -p "${go_pkg_dir}" + + if [[ ! -e "${go_pkg_dir}" || "$(readlink "${go_pkg_dir}")" != "${repo_root}" ]]; then + ln -snf "${repo_root}" "${go_pkg_dir}" + fi +}