| 
									
										
										
										
											2016-11-24 23:21:40 +01:00
										 |  |  | import * as plugins from './npmci.plugins' | 
					
						
							|  |  |  | import { prepare } from './npmci.prepare' | 
					
						
							|  |  |  | import { bash } from './npmci.bash' | 
					
						
							| 
									
										
										
										
											2016-06-01 06:30:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-24 23:21:40 +01:00
										 |  |  | let triggerValueRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|?([a-zA-Z0-9\.\-\/]*)/ | 
					
						
							| 
									
										
										
										
											2016-06-23 22:22:03 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | export let trigger = function () { | 
					
						
							| 
									
										
										
										
											2016-11-24 23:21:40 +01:00
										 |  |  |     let done = plugins.q.defer() | 
					
						
							|  |  |  |     plugins.beautylog.info('now running triggers') | 
					
						
							|  |  |  |     plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_TRIGGER_*', evaluateTrigger) | 
					
						
							|  |  |  |     done.resolve() | 
					
						
							|  |  |  |     return done.promise | 
					
						
							| 
									
										
										
										
											2016-06-23 22:22:03 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let evaluateTrigger = (triggerEnvVarArg) => { | 
					
						
							| 
									
										
										
										
											2016-11-24 23:21:40 +01:00
										 |  |  |     let triggerRegexResultArray = triggerValueRegex.exec(triggerEnvVarArg) | 
					
						
							|  |  |  |     let regexDomain = triggerRegexResultArray[1] | 
					
						
							|  |  |  |     let regexProjectId = triggerRegexResultArray[2] | 
					
						
							|  |  |  |     let regexProjectTriggerToken = triggerRegexResultArray[3] | 
					
						
							|  |  |  |     let regexRefName = triggerRegexResultArray[4] | 
					
						
							|  |  |  |     let regexTriggerName | 
					
						
							|  |  |  |     if (triggerRegexResultArray.length === 6) { | 
					
						
							|  |  |  |         regexTriggerName = triggerRegexResultArray[5] | 
					
						
							| 
									
										
										
										
											2016-06-23 22:22:03 +02:00
										 |  |  |     } else { | 
					
						
							| 
									
										
										
										
											2016-11-24 23:21:40 +01:00
										 |  |  |         regexTriggerName = 'Unnamed Trigger' | 
					
						
							| 
									
										
										
										
											2016-06-23 22:22:03 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-11-24 23:21:40 +01:00
										 |  |  |     plugins.beautylog.info('Found Trigger!') | 
					
						
							|  |  |  |     plugins.beautylog.log('triggering build for ref ' + regexRefName + ' of ' + regexTriggerName) | 
					
						
							|  |  |  |     plugins.request.post('https://gitlab.com/api/v3/projects/' + regexProjectId + '/trigger/builds', { form: { token: regexProjectTriggerToken, ref: regexRefName } }) | 
					
						
							|  |  |  | } |