From ef6489c424c9233d0aed9d983010580530bb5839 Mon Sep 17 00:00:00 2001 From: Parthvi Vala Date: Mon, 6 Mar 2023 19:31:57 +0530 Subject: [PATCH] Add mockgen installation to the script (#6604) * Add mockgen installation to the script Signed-off-by: Parthvi Vala * Use go install -mod=readonly instead of installing the binary Signed-off-by: Parthvi Vala * Add mockgen installation to goget-tools target incase the user wants to run the script individually Signed-off-by: Parthvi Vala * Update Makefile Co-authored-by: Armel Soro --------- Signed-off-by: Parthvi Vala Co-authored-by: Armel Soro Co-authored-by: Armel Soro --- Makefile | 8 ++++++-- scripts/mockgen.sh | 51 +++++++++++++++++++++++++--------------------- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index 2d7e3e717..5bb64d4a5 100644 --- a/Makefile +++ b/Makefile @@ -68,6 +68,9 @@ GOLANGCI_LINT_VERSION=1.49.0 RUN_GINKGO = go run -mod=vendor github.com/onsi/ginkgo/v2/ginkgo +# making sure that mockgen binary version is the same as github.com/golang/mock library version +GO_MOCK_LIBRARY_VERSION = $(shell go list -mod=readonly -m -f '{{.Version}}' github.com/golang/mock) + default: bin .PHONY: help @@ -127,8 +130,9 @@ clean: @rm -rf $(FILES) .PHONY: goget-tools -goget-tools: - (cd / && go install -mod=mod github.com/golangci/golangci-lint/cmd/golangci-lint@v$(GOLANGCI_LINT_VERSION)) +goget-tools: ## Install binaries of the tools used by odo (current list: golangci-lint, mockgen) + cd / && go install -mod=mod github.com/golangci/golangci-lint/cmd/golangci-lint@v$(GOLANGCI_LINT_VERSION) + cd / && go install -mod=mod github.com/golang/mock/mockgen@$(GO_MOCK_LIBRARY_VERSION) .PHONY: goget-ginkgo goget-ginkgo: diff --git a/scripts/mockgen.sh b/scripts/mockgen.sh index 85efcfcbc..9bcc93733 100755 --- a/scripts/mockgen.sh +++ b/scripts/mockgen.sh @@ -1,92 +1,97 @@ #!/usr/bin/env bash -# Use this script to regererate generated mock files +# Use this script to regenerate generated mock files # after changing signatures of interfaces in these packages -mockgen -source=pkg/kclient/interface.go \ +gomockVersion=$(go list -mod=readonly -m -f '{{.Version}}' github.com/golang/mock) +mockgen="go run -mod=readonly github.com/golang/mock/mockgen@$gomockVersion" + +echo Using mockgen "$($mockgen --version)" + +$mockgen -source=pkg/kclient/interface.go \ -package kclient \ -destination pkg/kclient/mock_Client.go -mockgen -source=pkg/storage/storage.go \ +$mockgen -source=pkg/storage/storage.go \ -package storage \ -destination pkg/storage/mock_Client.go -mockgen -source=pkg/devfile/image/image.go \ +$mockgen -source=pkg/devfile/image/image.go \ -package image \ -destination pkg/devfile/image/mock_Backend.go -mockgen -source=pkg/odo/cmdline/cmdline.go \ +$mockgen -source=pkg/odo/cmdline/cmdline.go \ -package cmdline \ -destination pkg/odo/cmdline/mock.go -mockgen -source=pkg/project/project.go \ +$mockgen -source=pkg/project/project.go \ -package project \ -destination pkg/project/mock.go -mockgen -source=pkg/preference/preference.go \ +$mockgen -source=pkg/preference/preference.go \ -package preference \ -destination pkg/preference/mock.go -mockgen -source=pkg/auth/interface.go \ +$mockgen -source=pkg/auth/interface.go \ -package auth \ -destination pkg/auth/mock.go -mockgen -source=pkg/init/backend/interface.go \ +$mockgen -source=pkg/init/backend/interface.go \ -package backend \ -destination pkg/init/backend/mock.go -mockgen -source=pkg/init/asker/interface.go \ +$mockgen -source=pkg/init/asker/interface.go \ -package asker \ -destination pkg/init/asker/mock.go -mockgen -source=pkg/init/interface.go \ +$mockgen -source=pkg/init/interface.go \ -package init \ -destination pkg/init/mock.go -mockgen -source=pkg/registry/interface.go \ +$mockgen -source=pkg/registry/interface.go \ -package registry \ -destination pkg/registry/mock.go -mockgen -source=pkg/deploy/interface.go \ +$mockgen -source=pkg/deploy/interface.go \ -package deploy \ -destination pkg/deploy/mock.go -mockgen -source=pkg/libdevfile/libdevfile.go \ +$mockgen -source=pkg/libdevfile/libdevfile.go \ -package libdevfile \ -destination pkg/libdevfile/handler_mock.go -mockgen -source=pkg/watch/interface.go \ +$mockgen -source=pkg/watch/interface.go \ -package watch \ -destination pkg/watch/mock.go -mockgen -source=pkg/component/delete/interface.go \ +$mockgen -source=pkg/component/delete/interface.go \ -package delete \ -destination pkg/component/delete/mock.go -mockgen -source=pkg/dev/interface.go \ +$mockgen -source=pkg/dev/interface.go \ -package dev \ -destination pkg/dev/mock.go -mockgen -source=pkg/alizer/interface.go \ +$mockgen -source=pkg/alizer/interface.go \ -package alizer \ -destination pkg/alizer/mock.go -mockgen -source=pkg/binding/interface.go \ +$mockgen -source=pkg/binding/interface.go \ -package binding \ -destination pkg/binding/mock.go -mockgen -source=pkg/binding/backend/interface.go \ +$mockgen -source=pkg/binding/backend/interface.go \ -package backend \ -destination pkg/binding/backend/mock.go -mockgen -source=pkg/sync/interface.go \ +$mockgen -source=pkg/sync/interface.go \ -package sync \ -destination pkg/sync/mock.go -mockgen -source=pkg/exec/interface.go \ +$mockgen -source=pkg/exec/interface.go \ -package exec \ -destination pkg/exec/mock.go -mockgen -source=pkg/podman/interface.go \ +$mockgen -source=pkg/podman/interface.go \ -package podman \ -destination pkg/podman/mock.go