Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

call kube::golang::setup_env before setting up worktree, cleanup update-mocks.sh #117526

Merged
merged 4 commits into from Apr 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 2 additions & 1 deletion hack/lib/golang.sh
Expand Up @@ -18,7 +18,8 @@

# The golang package that we are building.
readonly KUBE_GO_PACKAGE=k8s.io/kubernetes
readonly KUBE_GOPATH="${KUBE_OUTPUT}/go"
readonly KUBE_GOPATH="${KUBE_GOPATH:-"${KUBE_OUTPUT}/go"}"
export KUBE_GOPATH

# The server platform we are building on.
readonly KUBE_SUPPORTED_SERVER_PLATFORMS=(
Expand Down
46 changes: 20 additions & 26 deletions hack/update-mocks.sh
Expand Up @@ -26,16 +26,6 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
# Explicitly opt into go modules, even though we're inside a GOPATH directory
export GO111MODULE=on

_tmp="${KUBE_ROOT}/_tmp_build_tag_files"
mkdir -p "${_tmp}"

function cleanup {
rm -rf "$_tmp"
rm -f "tempfile"
}

trap cleanup EXIT

kube::golang::verify_go_version
kube::golang::setup_env

Expand All @@ -45,22 +35,26 @@ pushd "${KUBE_ROOT}/hack/tools" >/dev/null
popd >/dev/null

function git_find() {
# Similar to find but faster and easier to understand. We want to include
thockin marked this conversation as resolved.
Show resolved Hide resolved
# modified and untracked files because this might be running against code
# which is not tracked by git yet.
git ls-files -cmo --exclude-standard \
':!:vendor/*' `# catches vendor/...` \
':!:*/vendor/*' `# catches any subdir/vendor/...` \
':!:third_party/*' `# catches third_party/...` \
':!:*/third_party/*' `# catches third_party/...` \
':!:*/testdata/*' \
"$@"
# Similar to find but faster and easier to understand. We want to include
# modified and untracked files because this might be running against code
# which is not tracked by git yet.
git ls-files -cmo --exclude-standard \
':!:vendor/*' `# catches vendor/...` \
':!:*/vendor/*' `# catches any subdir/vendor/...` \
':!:third_party/*' `# catches third_party/...` \
':!:*/third_party/*' `# catches third_party/...` \
':!:*/testdata/*' \
"$@"
}

cd "${KUBE_ROOT}"

GENERATED_MOCK_FILE_REGEX="^// Code generated by MockGen. DO NOT EDIT.$"

# pick a tempfile path for writing to
tmp=$(mktemp)
kube::util::trap_add "rm -f ${tmp:?}" EXIT

# We use this pattern here rather than `git grep` because we don't really want
# to encode the pathspec list in multiple places and anything more complicated
# just isn't worth the effort.
Expand Down Expand Up @@ -112,7 +106,7 @@ git ls-files -mo --exclude-standard -z | while read -r -d $'\0' file; do
new_header=$(echo -e "//""$go_build_tag_string""\n""//" "$build_tag_string""\n" | cat - hack/boilerplate/boilerplate.generatego.txt)

# ignore the first line (build tag) from the file
tail -n +3 "$file" > tempfile
tail -n +3 "$file" >"${tmp}"
fi

# if the file has only // +build !providerless header
Expand All @@ -122,7 +116,7 @@ git ls-files -mo --exclude-standard -z | while read -r -d $'\0' file; do
new_header=$(echo -e "//" "$build_tag_string""\n" | cat - hack/boilerplate/boilerplate.generatego.txt)

# ignore the first line (build tag) from the file
tail -n +2 "$file" > tempfile
tail -n +2 "$file" >"${tmp}"
fi

# if the file has only //go:build !providerless header
Expand All @@ -132,17 +126,17 @@ git ls-files -mo --exclude-standard -z | while read -r -d $'\0' file; do
new_header=$(echo -e "//""$go_build_tag_string""\n" | cat - hack/boilerplate/boilerplate.generatego.txt)

# ignore the first line (build tag) from the file
tail -n +2 "$file" > tempfile
tail -n +2 "$file" >"${tmp}"
fi

# if the header is generated
if [ -n "$new_header" ]
then
# write the newly generated header file to the original file
echo -e "$new_header" | cat - tempfile > "$file"
echo -e "$new_header" | cat - "${tmp}" > "$file"
else
# if no build string insert at the top
cat hack/boilerplate/boilerplate.generatego.txt "$file" > tempfile && \
mv tempfile "$file"
cat hack/boilerplate/boilerplate.generatego.txt "$file" >"${tmp}" && \
mv "${tmp}" "$file"
fi
done
2 changes: 1 addition & 1 deletion hack/update-yamlfmt.sh
Expand Up @@ -21,7 +21,7 @@ set -o pipefail
KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${KUBE_ROOT}/hack/lib/init.sh"

kube::golang::verify_go_version
kube::golang::setup_env

cd "${KUBE_ROOT}"

Expand Down
4 changes: 3 additions & 1 deletion hack/verify-internal-modules.sh
Expand Up @@ -22,9 +22,11 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${KUBE_ROOT}/hack/lib/init.sh"

kube::util::ensure_clean_working_dir
# This sets up the environment, like GOCACHE, which keeps the worktree cleaner.
kube::golang::setup_env

_tmpdir="$(kube::realpath "$(mktemp -d -t verify-internal-modules.XXXXXX)")"
#kube::util::trap_add "rm -rf ${_tmpdir}" EXIT
kube::util::trap_add "rm -rf ${_tmpdir:?}" EXIT
thockin marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@thockin lost your LGTM pulling this one out

Also adding :? because even though we just set _tmpdir we should encourage the habit of rm -rf ${foo:?} to prevent accidents like rm -rf "${foo:}/" where $foo is unset.


_tmp_gopath="${_tmpdir}/go"
_tmp_kuberoot="${_tmp_gopath}/src/k8s.io/kubernetes"
Expand Down
3 changes: 2 additions & 1 deletion hack/verify-licenses.sh
Expand Up @@ -27,7 +27,8 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
source "${KUBE_ROOT}/hack/lib/util.sh"


kube::golang::verify_go_version
# This sets up the environment, like GOCACHE, which keeps the worktree cleaner.
kube::golang::setup_env
kube::util::ensure-temp-dir


Expand Down
2 changes: 2 additions & 0 deletions hack/verify-mocks.sh
Expand Up @@ -31,6 +31,8 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
export GO111MODULE=on

kube::util::ensure_clean_working_dir
# This sets up the environment, like GOCACHE, which keeps the worktree cleaner.
kube::golang::setup_env

_tmpdir="$(kube::realpath "$(mktemp -d -t "$(basename "$0").XXXXXX")")"
git worktree add -f -q "${_tmpdir}" HEAD
Expand Down
2 changes: 2 additions & 0 deletions hack/verify-yamlfmt.sh
Expand Up @@ -28,6 +28,8 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${KUBE_ROOT}/hack/lib/init.sh"

kube::util::ensure_clean_working_dir
# This sets up the environment, like GOCACHE, which keeps the worktree cleaner.
kube::golang::setup_env

_tmpdir="$(kube::realpath "$(mktemp -d -t "$(basename "$0").XXXXXX")")"
git worktree add -f -q "${_tmpdir}" HEAD
Expand Down