load("@my_rules_go//extras:gomock.bzl", "gomock") load("@my_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") go_library( name = "lib", srcs = ["lib.go"], importpath = "example.com/lib", ) go_binary( name = "main", srcs = ["main.go"], deps = [":lib"], ) go_test( name = "test", srcs = ["test.go"], embed = [":lib"], ) go_library( name = "mockable", srcs = [ "mockable.go", ], importpath = "example.com/mockable", ) gomock( name = "mocks", out = "mockable_mock.go", library = ":mockable", package = "mockable", source = "mockable.go", visibility = ["//visibility:public"], ) go_test( name = "mockable_test", srcs = [ "mockable_mock.go", "mockable_test.go", ], embed = [":mockable"], deps = ["@my_rules_go//extras/gomock"], ) sh_test( name = "go_version_test", srcs = ["go_version_test.sh"], data = ["@my_rules_go//go"], env = {"GO_TOOL_RLOCATION": "$(rlocationpath @my_rules_go//go)"}, deps = ["@bazel_tools//tools/bash/runfiles"], )