Skip to content

Instantly share code, notes, and snippets.

@nikhita
Created January 25, 2019 12:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nikhita/5b40b0bc587356eb3575ff13e85edc44 to your computer and use it in GitHub Desktop.
Save nikhita/5b40b0bc587356eb3575ff13e85edc44 to your computer and use it in GitHub Desktop.
diff --git a/artifacts/scripts/util.sh b/artifacts/scripts/util.sh
index e9e3d01..7875b46 100755
--- a/artifacts/scripts/util.sh
+++ b/artifacts/scripts/util.sh
@@ -380,7 +380,7 @@ sync_repo() {
squash ${squash_commits}
# if there is no pending merge commit, update Godeps.json because this could be a target of tag
- if [ -z "${k_pending_merge_commit}" ]; then
+ if ! pick-incorrect-godep-changes ${k_mainline_commit} && [ -z "${k_pending_merge_commit}" ]; then
fix-godeps "${deps}" "${required_packages}" "${base_package}" "${is_library}" ${dst_needs_godeps_update} true ${commit_msg_tag} "${recursive_delete_pattern}"
dst_needs_godeps_update=false
dst_merge_point_commit=$(git rev-parse HEAD)
@@ -484,9 +484,11 @@ sync_repo() {
# we would end up with "base B + change B" which misses the change A changes.
amend-godeps-at ${f_mainline_commit}
- fix-godeps "${deps}" "${required_packages}" "${base_package}" "${is_library}" ${dst_needs_godeps_update} true ${commit_msg_tag} "${recursive_delete_pattern}"
- dst_needs_godeps_update=false
- dst_merge_point_commit=$(git rev-parse HEAD)
+ if ! pick-incorrect-godep-changes ${k_mainline_commit}; then
+ fix-godeps "${deps}" "${required_packages}" "${base_package}" "${is_library}" ${dst_needs_godeps_update} true ${commit_msg_tag} "${recursive_delete_pattern}"
+ dst_needs_godeps_update=false
+ dst_merge_point_commit=$(git rev-parse HEAD)
+ fi
fi
ensure-clean-working-dir
@@ -496,11 +498,14 @@ sync_repo() {
# NOTE: we cannot skip collapsed-kube-commit-mapper below because its
# output depends on upstream's HEAD.
echo "Fixing up godeps after a complete sync"
- if [ $(git rev-parse HEAD) != "${dst_old_head}" ] || [ "${new_branch}" = "true" ]; then
- fix-godeps "${deps}" "${required_packages}" "${base_package}" "${is_library}" true true ${commit_msg_tag} "${recursive_delete_pattern}"
- else
- # update godeps without squashing because it would mutate a published commit
- fix-godeps "${deps}" "${required_packages}" "${base_package}" "${is_library}" true false ${commit_msg_tag} "${recursive_delete_pattern}"
+
+ if ! pick-incorrect-godep-changes ${k_mainline_commit}; then
+ if [ $(git rev-parse HEAD) != "${dst_old_head}" ] || [ "${new_branch}" = "true" ]; then
+ fix-godeps "${deps}" "${required_packages}" "${base_package}" "${is_library}" true true ${commit_msg_tag} "${recursive_delete_pattern}"
+ else
+ # update godeps without squashing because it would mutate a published commit
+ fix-godeps "${deps}" "${required_packages}" "${base_package}" "${is_library}" true false ${commit_msg_tag} "${recursive_delete_pattern}"
+ fi
fi
# create look-up file for collapsed upstream commits
@@ -523,6 +528,14 @@ function pick-merge-as-single-commit() {
EOF
}
+# if a PR added incorrect godep changes (eg: client-go depending on apiserver), godeps update will fail.
+# so we skip godeps generation for these commits.
+function pick-incorrect-godep-changes() {
+ grep -F -q -x "$1" <<EOF
+e2a017327c1af628f4f0069cbd49865ad1e81975
+EOF
+}
+
# amend-godeps-at checks out the Godeps.json at the given commit and amend it to the previous commit.
function amend-godeps-at() {
if [ -f Godeps/Godeps.json ]; then
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment