Skip to content

Commit 3187538

Browse files
authored
Merge pull request #3130 from pre-commit/golang-build-during-commit-a
fix building golang hooks during `commit --all`
2 parents 15bd0c7 + 61d9c95 commit 3187538

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

pre_commit/languages/golang.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from pre_commit.envcontext import envcontext
2424
from pre_commit.envcontext import PatchesT
2525
from pre_commit.envcontext import Var
26+
from pre_commit.git import no_git_env
2627
from pre_commit.prefix import Prefix
2728
from pre_commit.util import cmd_output
2829
from pre_commit.util import rmtree
@@ -141,7 +142,7 @@ def install_environment(
141142
else:
142143
gopath = env_dir
143144

144-
env = dict(os.environ, GOPATH=gopath)
145+
env = no_git_env(dict(os.environ, GOPATH=gopath))
145146
env.pop('GOBIN', None)
146147
if version != 'system':
147148
env['GOROOT'] = os.path.join(env_dir, '.go')

tests/languages/golang_test.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,16 @@
77

88
import pre_commit.constants as C
99
from pre_commit import lang_base
10+
from pre_commit.commands.install_uninstall import install
1011
from pre_commit.envcontext import envcontext
1112
from pre_commit.languages import golang
1213
from pre_commit.store import _make_local_repo
14+
from pre_commit.util import cmd_output
15+
from testing.fixtures import add_config_to_repo
16+
from testing.fixtures import make_config_from_repo
1317
from testing.language_helpers import run_language
18+
from testing.util import cmd_output_mocked_pre_commit_home
19+
from testing.util import git_commit
1420

1521

1622
ACTUAL_GET_DEFAULT_VERSION = golang.get_default_version.__wrapped__
@@ -134,3 +140,28 @@ def test_local_golang_additional_deps(tmp_path):
134140
def test_golang_hook_still_works_when_gobin_is_set(tmp_path):
135141
with envcontext((('GOBIN', str(tmp_path.joinpath('gobin'))),)):
136142
test_golang_system(tmp_path)
143+
144+
145+
def test_during_commit_all(tmp_path, tempdir_factory, store, in_git_dir):
146+
hook_dir = tmp_path.joinpath('hook')
147+
hook_dir.mkdir()
148+
_make_hello_world(hook_dir)
149+
hook_dir.joinpath('.pre-commit-hooks.yaml').write_text(
150+
'- id: hello-world\n'
151+
' name: hello world\n'
152+
' entry: golang-hello-world\n'
153+
' language: golang\n'
154+
' always_run: true\n',
155+
)
156+
cmd_output('git', 'init', hook_dir)
157+
cmd_output('git', 'add', '.', cwd=hook_dir)
158+
git_commit(cwd=hook_dir)
159+
160+
add_config_to_repo(in_git_dir, make_config_from_repo(hook_dir))
161+
162+
assert not install(C.CONFIG_FILE, store, hook_types=['pre-commit'])
163+
164+
git_commit(
165+
fn=cmd_output_mocked_pre_commit_home,
166+
tempdir_factory=tempdir_factory,
167+
)

0 commit comments

Comments
 (0)