diff --git a/Makefile b/Makefile index 433d495075eb6..accf93689eca3 100644 --- a/Makefile +++ b/Makefile @@ -328,16 +328,6 @@ gomod: cd tests/e2e; go mod tidy cd tools/otel/traceserver; go mod tidy -.PHONY: goget -goget: - go get $(shell go list -f '{{if not (or .Main .Indirect)}}{{.Path}}{{end}}' -mod=mod -m all | grep -v spotinst-sdk-go) - cd hack; go get $(shell go list -f '{{if not (or .Main .Indirect)}}{{.Path}}{{end}}' -mod=mod -m all) - cd tests/e2e; go get $(shell go list -f '{{if not (or .Main .Indirect)}}{{.Path}}{{end}}' -mod=mod -m all | grep -v kubetest2) - cd tools/otel/traceserver; go get $(shell go list -f '{{if not (or .Main .Indirect)}}{{.Path}}{{end}}' -mod=mod -m all) - -.PHONY: depup -depup: goget gomod - .PHONY: gofmt gofmt: find $(KOPS_ROOT) -name "*.go" | grep -v vendor | xargs gofmt -w -s diff --git a/dev/codebots/update-dependencies b/dev/codebots/update-dependencies new file mode 100755 index 0000000000000..4039a3402ca97 --- /dev/null +++ b/dev/codebots/update-dependencies @@ -0,0 +1,51 @@ +#!/bin/bash + +# Copyright 2025 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. + +set -o errexit +set -o nounset +set -o pipefail + +# start at the root of the repo +REPO_ROOT="$(git rev-parse --show-toplevel)" +cd "${REPO_ROOT}" + +# Go through all our modules and update them to the latest version +# We exclude a few dependencies +# IDEA: Can we create a tool that will make this easier? Make like a .upgrade-deps.yaml or .codebots.yaml file in each module? + +cd "${REPO_ROOT}" +go get $(go list -f '{{if not (or .Main .Indirect)}}{{.Path}}{{end}}' -mod=mod -m all | grep -v spotinst-sdk-go) + +cd "${REPO_ROOT}/hack" +go get $(go list -f '{{if not (or .Main .Indirect)}}{{.Path}}{{end}}' -mod=mod -m all) + +cd "${REPO_ROOT}/tests/e2e" +go get $(go list -f '{{if not (or .Main .Indirect)}}{{.Path}}{{end}}' -mod=mod -m all | grep -v kubetest2) + +cd "${REPO_ROOT}/tools/otel/traceserver" +go get $(go list -f '{{if not (or .Main .Indirect)}}{{.Path}}{{end}}' -mod=mod -m all) + +# Tidy go modules +cd "${REPO_ROOT}" +make gomod + +if $(git diff --quiet); then + echo "No changes" +else + git add . + git commit -m "codebot: update-dependencies" + echo "Updated dependencies" +fi