1
0
mirror of https://github.com/golang/go synced 2024-10-01 03:28:32 -06:00

cmd/go: avoid ssh known_hosts prompts on test

TestScripts/mod_get_svn would stop with the following prompt if the real
user didn't have vcs-test.golang.org in their known_hosts file:

	The authenticity of host 'vcs-test.golang.org (35.184.38.56)' can't be established.
	ECDSA key fingerprint is SHA256:[...]
	Are you sure you want to continue connecting (yes/no/[fingerprint])?

This was bad because it relied on the user's real ssh known_hosts file.
Worse even, if the user didn't expert or notice the prompt, it could
hang a 'go test' run for quite a while.

Work around that by forcing svn to not use ssh at all. Other potentially
better approaches were tried, but none worked on svn 1.12.2 with openssh
8.0p1.

Fixes #33883.

Change-Id: I2f925fa892f2fa53c77d86b0034141162517ee69
Reviewed-on: https://go-review.googlesource.com/c/go/+/199142
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Daniel Martí 2019-10-05 15:08:07 +01:00
parent 11b33686d3
commit 80fb18e3c0

View File

@ -1,6 +1,19 @@
[!net] skip
[!exec:svn] skip
# 'go get' will fall back to svn+ssh once svn fails over protocols like https.
# If vcs-test.golang.org isn't in the user's known_hosts file, this will result
# in an ssh prompt, which will stop 'go test' entirely
#
# Unfortunately, there isn't a way to globally disable host checking for ssh,
# without modifying the real system's or user's configs. Changing $HOME won't
# affect ssh either, as it ignores the environment variable entirely.
#
# However, a useful trick is pointing SVN_SSH to a program that doesn't exist,
# resulting in svn skipping ssh entirely. Alternatives like
# SVN_SSH="ssh -o StrictHostKeyChecking=no" didn't avoid the prompt.
env SVN_SSH="svn_do_not_use_ssh"
env GO111MODULE=on
env GOPROXY=direct
env GOSUMDB=off