-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·64 lines (49 loc) · 1.82 KB
/
Copy pathsetup.sh
File metadata and controls
executable file
·64 lines (49 loc) · 1.82 KB
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env bash
########################### FUNCTIONS ###########################
function createVagrantSlave() {
echo "INFO: Creating Vagrant Box"
cd jenkins/
mkdir -p $JENKINS_DATA/.ssh/
vagrant up
#We copy the vagrant box's SSH key as Jenkins own master key so that we can connect to it
VAGRANT_SSH_KEY="$JENKINS_DATA/.ssh/id_rsa"
if [ ! -f "$VAGRANT_SSH_KEY" ]; then
echo "INFO: Copying Vagrant's SSH key"
sudo cp .vagrant/machines/default/virtualbox/private_key $VAGRANT_SSH_KEY
sudo chown $JENKINS_UID:$JENKINS_UID $VAGRANT_SSH_KEY
fi
cd -
}
function downloadJenkinsClient() {
if [ ! -f jenkins-cli.jar ]
then
wget http://localhost:10000/jnlpJars/jenkins-cli.jar
fi
}
function declareCredentials() {
cat jenkins/credential.xml | java -jar jenkins-cli.jar -s http://localhost:10000/ create-credentials-by-xml "system::system::jenkins" "(global)"
}
function declareNode() {
cat jenkins/node.xml | java -jar jenkins-cli.jar -s http://localhost:10000/ create-node
}
function declareJobs() {
cat jenkins/folder.xml | java -jar jenkins-cli.jar -s http://localhost:10000/ create-job my-todo-app
cat jenkins/build.xml | java -jar jenkins-cli.jar -s http://localhost:10000/ create-job my-todo-app/build
}
########################### MAIN SCRIPT ###########################
START_TIME=$SECONDS
JENKINS_UID=1000
JENKINS_DATA=$PWD/data/jenkins
createVagrantSlave
echo "INFO: Building Jenkins Docker Image"
docker build -t training/jenkins jenkins/
docker-compose up -d
echo "INFO: Waiting for Jenkins to start..."
sleep 20
echo "INFO: Setting up Jenkins"
downloadJenkinsClient
declareCredentials
declareNode
declareJobs
ELAPSED_TIME=$(($SECONDS - $START_TIME))
echo "TOTAL SETUP TIME: $(($ELAPSED_TIME/60)) min $(($ELAPSED_TIME%60)) sec"