| 
									
										
										
										
											2016-06-01 06:30:21 +02:00
										 |  |  | import "typings-global"; | 
					
						
							|  |  |  | import * as plugins from "./npmci.plugins"; | 
					
						
							|  |  |  | import {prepare} from "./npmci.prepare"; | 
					
						
							|  |  |  | import {bash} from "./npmci.bash"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-02 13:08:15 +02:00
										 |  |  | //Variables
 | 
					
						
							| 
									
										
										
										
											2016-06-02 18:09:07 +02:00
										 |  |  | let triggerEnvPrefix = "NPMCI_TRIGGER_"; | 
					
						
							| 
									
										
										
										
											2016-06-02 13:08:15 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-01 06:30:21 +02:00
										 |  |  | export let trigger = function(){ | 
					
						
							|  |  |  |     let done = plugins.q.defer(); | 
					
						
							|  |  |  |     plugins.beautylog.info("now running triggers"); | 
					
						
							| 
									
										
										
										
											2016-06-02 19:35:16 +02:00
										 |  |  |     let triggerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|?([a-zA-Z0-9\.\-\/]*)/; | 
					
						
							| 
									
										
										
										
											2016-06-01 06:30:21 +02:00
										 |  |  |     for(let i = 0; i < 100; i++){ | 
					
						
							|  |  |  |         let iteratorString = i.toString(); | 
					
						
							| 
									
										
										
										
											2016-06-02 18:39:11 +02:00
										 |  |  |         let triggerName = triggerEnvPrefix + iteratorString | 
					
						
							|  |  |  |         if(process.env[triggerName]){ | 
					
						
							|  |  |  |             let triggerRegexResultArray = triggerRegex.exec(process.env[triggerName]); | 
					
						
							| 
									
										
										
										
											2016-06-01 08:55:15 +02:00
										 |  |  |             let regexDomain = triggerRegexResultArray[1]; | 
					
						
							|  |  |  |             let regexProjectId = triggerRegexResultArray[2]; | 
					
						
							|  |  |  |             let regexProjectTriggerToken = triggerRegexResultArray[3]; | 
					
						
							|  |  |  |             let regexRefName = triggerRegexResultArray[4]; | 
					
						
							| 
									
										
										
										
											2016-06-02 19:35:01 +02:00
										 |  |  |             let regexTriggerName; | 
					
						
							| 
									
										
										
										
											2016-06-02 20:07:52 +02:00
										 |  |  |             if(triggerRegexResultArray.length == 6){ | 
					
						
							| 
									
										
										
										
											2016-06-02 19:35:01 +02:00
										 |  |  |                 regexTriggerName = triggerRegexResultArray[5]; | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 regexTriggerName = "Unnamed Trigger"; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2016-06-02 20:07:52 +02:00
										 |  |  |             plugins.beautylog.info("Found " + triggerName); | 
					
						
							| 
									
										
										
										
											2016-06-02 19:35:01 +02:00
										 |  |  |             plugins.beautylog.log("triggering build for ref " + regexRefName + " of " + regexTriggerName); | 
					
						
							| 
									
										
										
										
											2016-06-01 08:13:48 +02:00
										 |  |  |             plugins.request.post("https://gitlab.com/api/v3/projects/" + regexProjectId + "/trigger/builds", {form:{token:regexProjectTriggerToken,ref:regexRefName}}); | 
					
						
							| 
									
										
										
										
											2016-06-01 06:30:21 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     done.resolve(); | 
					
						
							|  |  |  |     return done.promise; | 
					
						
							|  |  |  | } |