Skip to content

Commit 107b29f

Browse files
committed
Skip ssh-keyscan when BUILDKITE_REPO_SSH_HOST is unset
1 parent 673d9cb commit 107b29f

2 files changed

Lines changed: 38 additions & 3 deletions

File tree

hooks/checkout

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ fi
2020

2121
SKIP_SSH_KEYSCAN_OPTION="$(plugin_read_config SKIP_SSH_KEYSCAN "false")"
2222

23-
if [ "$SKIP_SSH_KEYSCAN_OPTION" = "false" ]; then
23+
if [[ -n "${BUILDKITE_REPO_SSH_HOST:-}" ]] && [[ "${SKIP_SSH_KEYSCAN_OPTION}" = "false" ]] ; then
2424
echo "Scanning SSH keys for remote git repository"
2525
[[ -d ~/.ssh ]] || mkdir -p ~/.ssh
2626
ssh-keyscan "${BUILDKITE_REPO_SSH_HOST}" >> ~/.ssh/known_hosts

tests/checkout.bats

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ setup() {
1313
}
1414

1515
@test "Skip ssh-keyscan when option provided" {
16-
export BUILDKITE_PLUGIN_SPARSE_CHECKOUT_SKIP_SSH_KEYSCAN='true'
16+
export BUILDKITE_PLUGIN_SPARSE_CHECKOUT_SKIP_SSH_KEYSCAN="true"
1717

1818
stub git "clean \* : echo 'git clean'"
1919
stub git "fetch --depth 1 origin \* : echo 'git fetch'"
@@ -44,4 +44,39 @@ setup() {
4444

4545
unstub git
4646
unstub ssh-keyscan
47-
}
47+
}
48+
49+
@test "Run ssh-keyscan when BUILDKITE_REPO_SSH_HOST is defined" {
50+
unset BUILDKITE_PLUGIN_SPARSE_CHECKOUT_SKIP_SSH_KEYSCAN
51+
export BUILDKITE_REPO_SSH_HOST="github.com"
52+
53+
stub ssh-keyscan "\* : echo 'keyscan'"
54+
stub git "clean \* : echo 'git clean'"
55+
stub git "fetch --depth 1 origin \* : echo 'git fetch'"
56+
stub git "sparse-checkout set \* \* : echo 'git sparse-checkout'"
57+
stub git "checkout \* : echo 'checkout'"
58+
59+
run "$PWD"/hooks/checkout
60+
61+
assert_success
62+
assert_output --partial 'Scanning SSH keys for remote git repository'
63+
64+
unstub git
65+
unstub ssh-keyscan
66+
}
67+
68+
@test "Skip ssh-keyscan when BUILDKITE_REPO_SSH_HOST is unset" {
69+
unset BUILDKITE_REPO_SSH_HOST
70+
71+
stub git "clean \* : echo 'git clean'"
72+
stub git "fetch --depth 1 origin \* : echo 'git fetch'"
73+
stub git "sparse-checkout set \* \* : echo 'git sparse-checkout'"
74+
stub git "checkout \* : echo 'checkout'"
75+
76+
run "$PWD"/hooks/checkout
77+
78+
assert_success
79+
assert_output --partial 'Skipped SSH keyscan'
80+
81+
unstub git
82+
}

0 commit comments

Comments
 (0)