-
Notifications
You must be signed in to change notification settings - Fork 1
/
pre-job-hook.sh
35 lines (30 loc) · 1.13 KB
/
pre-job-hook.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Install the Semaphore toolbox in the job
rm -rf ~/.toolbox
downloadPath="https://github.com/semaphoreci/toolbox/releases/download/v1.19.40/self-hosted-linux.tar"
echo "Downloading Semaphore toolbox from $downloadPath..."
curl -sL --retry 5 --connect-timeout 3 $downloadPath -o /tmp/toolbox.tar
tar -xvf /tmp/toolbox.tar
mv toolbox ~/.toolbox
if [ ! -d ~/.toolbox ]; then
echo "Failed to download toolbox."
return 1
fi
echo "Installing..."
bash ~/.toolbox/install-toolbox
if [ "$?" -ne "0" ]; then
echo "Failed to install toolbox."
rm -rf $SEMAPHORE_GIT_DIR
fi
source ~/.toolbox/toolbox
if [ "$?" -ne "0" ]; then
echo "Failed to source toolbox."
rm -rf $SEMAPHORE_GIT_DIR
fi
echo "Semaphore toolbox successfully installed."
# Create SSH configuration.
# This is required in order to avoid having to manually accept the GitHub SSH keys fingerprints on checkout.
# Ideally, we should populate ~/.ssh/known_hosts with the GitHub keys from api.github.com/meta.
mkdir -p ~/.ssh
echo 'Host github.com' | tee -a ~/.ssh/config
echo ' StrictHostKeyChecking no' | tee -a ~/.ssh/config
echo ' UserKnownHostsFile=/dev/null' | tee -a ~/.ssh/config