| 
									
										
										
										
											2021-08-29 04:19:19 +00:00
										 |  |  | pipeline { | 
					
						
							| 
									
										
										
										
											2021-08-29 04:28:28 +00:00
										 |  |  | 	//agent none | 
					
						
							|  |  |  | 	//agent any | 
					
						
							| 
									
										
										
										
											2021-08-29 04:24:29 +00:00
										 |  |  | 	agent { label 'vagrant' } | 
					
						
							| 
									
										
										
										
											2021-08-29 04:19:19 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-29 04:28:28 +00:00
										 |  |  | 	//environment { | 
					
						
							|  |  |  | 	//	CC = 'gcc' | 
					
						
							|  |  |  | 	//	BUILD_TYPE = 'xxxx' | 
					
						
							|  |  |  | 	//} | 
					
						
							| 
									
										
										
										
											2021-08-29 04:19:19 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	stages { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		stage('Build') { | 
					
						
							|  |  |  | 			steps { | 
					
						
							|  |  |  | 				echo "Building a virtual machine - ${env.BUILD_ID} on ${env.JENKINS_URL}" | 
					
						
							| 
									
										
										
										
											2021-08-29 04:30:18 +00:00
										 |  |  | 				sh "make up" | 
					
						
							| 
									
										
										
										
											2021-08-29 04:19:19 +00:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		stage('Test') { | 
					
						
							|  |  |  | 			steps { | 
					
						
							|  |  |  | 				echo "Testing the virtual machine built" | 
					
						
							| 
									
										
										
										
											2021-08-29 04:28:28 +00:00
										 |  |  | 				// TODO run the internal test script to check the internal aspect of the machine | 
					
						
							|  |  |  | 				// TODO run the external test scripts to test the machine over the network | 
					
						
							| 
									
										
										
										
											2021-08-29 04:19:19 +00:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		}	 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		stage('Deploy') { | 
					
						
							|  |  |  | 			when { | 
					
						
							|  |  |  | 				expression { | 
					
						
							|  |  |  | 					currentBuild.result == null || currentBuild.result == 'SUCCESS' | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			steps { | 
					
						
							|  |  |  | 				echo "Publishing the virtual machine built" | 
					
						
							| 
									
										
										
										
											2021-08-29 04:28:28 +00:00
										 |  |  | 				// TODO clean up before packaging | 
					
						
							| 
									
										
										
										
											2021-08-29 04:19:19 +00:00
										 |  |  | 				sh "make package" | 
					
						
							| 
									
										
										
										
											2021-08-29 04:28:28 +00:00
										 |  |  | 				// TODO copy the final artifacts to an artifact repository | 
					
						
							|  |  |  | 				// sh "make clean"	 | 
					
						
							| 
									
										
										
										
											2021-08-29 04:19:19 +00:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-08-29 04:24:29 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	post { | 
					
						
							|  |  |  | 		success { | 
					
						
							|  |  |  | 			echo "SUCCESS!!!" | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-08-29 04:19:19 +00:00
										 |  |  | } |