3
3
4
4
Usage:
5
5
demo.py install [--name=<name>] (--no-pipeline | [--branch=<branch>] [--org=<org>] [--username=<user>] --password=<pass>) [--no-dynamic-slaves] [--builds=<n>] <dcos_url>
6
+ demo.py cleanup [--name=<name>] [--builds=<n>] <dcos_url>
6
7
demo.py uninstall [--name=<name>] [--builds=<n>] <dcos_url>
7
8
8
9
Options:
9
- --name=<name> Jenkins instance name to use [default: jenkins-demo ].
10
+ --name=<name> Jenkins instance name to use [default: jenkins].
10
11
--no-pipeline Don't run continuous delivery demo.
11
12
--branch=<branch> Git branch for continuous delivery demo [default: demo].
12
13
--org=<org> Docker Hub organisation where repo lives [default: mesosphere].
@@ -63,13 +64,12 @@ def install(dcos_url, jenkins_name, jenkins_url):
63
64
shutil .copyfile ("conf/jenkins.json" , "tmp/jenkins.json" )
64
65
rename ("tmp/jenkins.json" , jenkins_name )
65
66
command = "dcos package install --yes --options=tmp/jenkins.json jenkins"
66
- print (command )
67
+ print (" \n > " + command )
67
68
if call (['dcos' , 'package' , 'install' , '--yes' , '--options=tmp/jenkins.json' , 'jenkins' ]) != 0 :
68
69
log ("Failed to install Jenkins" )
69
70
exit (1 )
70
- print ("[demo] Jenkins has been installed! Wait for it to come up before proceeding at: {}" .format (jenkins_url ))
71
+ print ("\n [demo] Jenkins has been installed! Wait for it to come up before proceeding at: {}" .format (jenkins_url ))
71
72
raw_input ("[demo] Press [Enter] to continue, or ^C to cancel..." )
72
- os .system ('clear' )
73
73
74
74
def verify (jenkins_url ):
75
75
r = requests .get (jenkins_url )
@@ -148,7 +148,6 @@ def demo_pipeline(jenkins_url, dcos_url, name, branch, org, username, password):
148
148
trigger_build (jenkins_url , "build-cd-demo" )
149
149
log ("Created demo pipeline" )
150
150
raw_input ("[demo] Press [Enter] to continue, or ^C to cancel..." )
151
- os .system ('clear' )
152
151
153
152
def demo_dynamic_slaves (jenkins_url , builds ):
154
153
log ("Creating {} freestyle Jenkins jobs" .format (builds ))
@@ -165,7 +164,6 @@ def demo_dynamic_slaves(jenkins_url, builds):
165
164
log ("Job {} created successfully. Duration: {}. Result: {}. Triggering build." .format (job_name , duration , result ))
166
165
log ("Created {} freestyle Jenkins jobs" .format (builds ))
167
166
raw_input ("[demo] Press [Enter] to continue, or ^C to cancel..." )
168
- os .system ('clear' )
169
167
170
168
def cleanup_pipeline_jobs (jenkins_url ):
171
169
log ("Cleaning up demo pipeline" )
@@ -194,17 +192,16 @@ def uninstall(dcos_url, jenkins_name):
194
192
if call (['dcos' ,'package' ,'uninstall' ,'--app-id={}' .format (jenkins_name ), 'jenkins' ]) != 0 :
195
193
log ("Failed to uninstall Jenkins" )
196
194
exit (1 )
197
- print ( "[demo] Jenkins has been uninstalled!" )
195
+ log ( " Jenkins has been uninstalled!" )
198
196
199
197
if __name__ == "__main__" :
200
198
arguments = docopt (__doc__ , version = "CD Demo 0.1" )
201
199
202
- jenkins_name = arguments ['--name' ]
200
+ jenkins_name = arguments ['--name' ]. lower ()
203
201
builds = int (arguments ['--builds' ])
204
202
dcos_url = arguments ['<dcos_url>' ]
205
203
jenkins_url = '{}service/{}/' .format (dcos_url , jenkins_name )
206
204
207
- os .system ('clear' )
208
205
config_dcos_cli (dcos_url )
209
206
210
207
try :
@@ -213,14 +210,19 @@ def uninstall(dcos_url, jenkins_name):
213
210
if not verify (jenkins_url ):
214
211
install (dcos_url , jenkins_name , jenkins_url )
215
212
if not arguments ['--no-pipeline' ]:
216
- branch = arguments ['--branch' ]
213
+ branch = arguments ['--branch' ].lower ()
214
+ if branch == 'master' :
215
+ log ("Cannot run demo against the master branch." )
216
+ exit (1 )
217
217
org = arguments ['--org' ]
218
218
username = arguments ['--username' ]
219
219
password = arguments ['--password' ]
220
220
demo_pipeline (jenkins_url , dcos_url , jenkins_name , branch , org , username , password )
221
221
if not arguments ['--no-dynamic-slaves' ]:
222
222
demo_dynamic_slaves (jenkins_url , builds )
223
223
remove_temp_dir ()
224
+ elif arguments ['cleanup' ]:
225
+ cleanup (jenkins_url , builds )
224
226
elif arguments ['uninstall' ]:
225
227
cleanup (jenkins_url , builds )
226
228
uninstall (dcos_url , jenkins_name )
0 commit comments