Skip to content

Instantly share code, notes, and snippets.

@timebertt
Created April 5, 2022 08:47
Show Gist options
  • Save timebertt/6081725d1ada64ae8fd63b3a34c54883 to your computer and use it in GitHub Desktop.
Save timebertt/6081725d1ada64ae8fd63b3a34c54883 to your computer and use it in GitHub Desktop.
vendor-gardener-v1.44.sh
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
extension="$(basename "$PWD")"
platform=$(echo "${extension#gardener-extension-provider-}" | sed 's/packet/equinix-metal/')
echo ">>> Revendoring $extension"
set -x
git_main_branch () {
command git rev-parse --git-dir &> /dev/null || return
local branch
for branch in main trunk
do
if command git show-ref -q --verify refs/heads/$branch
then
echo $branch
return
fi
done
echo master
}
git checkout $(git_main_branch)
git pull --rebase
git checkout -b "vendor/gg-v1.44"
# tidy has to be executed first (before vendor), otherwise you need two invocations to reach a final state
sed -i -e '0,/go mod tidy/s//go mod vendor/' Makefile
sed -i -e '0,/go mod vendor/s//go mod tidy/' Makefile
git add Makefile
git commit -m 'make `make revendor` deterministic'
# add missing tools prerequisites
sed -i 's/^generate:/generate: $(CONTROLLER_GEN) $(GEN_CRD_API_REFERENCE_DOCS) $(HELM) $(MOCKGEN)/' Makefile
git add Makefile
git commit -m 'Add tools to `make generate`'
# upgrade g/g dependency itself
go mod edit -require=github.com/gardener/gardener@v1.44.0
git add go.mod
git commit -m "Upgrade gardener/gardener"
# workaround for https://github.com/gardener/hvpa-controller/issues/92
cat <<EOF >> go.mod
// workaround for https://github.com/gardener/hvpa-controller/issues/92, remove once it's fixed
replace (
github.com/gardener/hvpa-controller => github.com/gardener/hvpa-controller v0.4.0
github.com/gardener/hvpa-controller/api => github.com/gardener/hvpa-controller/api v0.4.0
)
EOF
git add go.mod
git commit -m "Add replace directives for hvpa-controller"
# revendor in a separate commit
make revendor
git add go.* vendor
git commit -m "[automated] make revendor"
# generate in a separate commit
make generate
echo "> Please add changes from code generation"
git add -i
git commit -m "[automated] make generate"
# open PR
echo "> Done. Ready to open a PR."
read -p "+++ Proceed (anything but 'y' aborts PR creation)? [y/n] " -r
echo
if ! [[ "${REPLY}" =~ ^[yY]$ ]]; then
echo "Aborting." >&2
exit 1
fi
cat <<EOF > /tmp/pr-body
**How to categorize this PR?**
/kind task
/platform $platform
**What this PR does / why we need it**:
Vendor gardener/gardener@v1.44
/squash
EOF
gh pr create --title "Vendor gardener/gardener@v1.44" -F /tmp/pr-body
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment