32 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import "typings-global";
 | |
| import * as plugins from "./npmci.plugins";
 | |
| import {prepare} from "./npmci.prepare";
 | |
| import {bash} from "./npmci.bash";
 | |
| 
 | |
| 
 | |
| let triggerValueRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|?([a-zA-Z0-9\.\-\/]*)/;
 | |
| 
 | |
| export let trigger = function () {
 | |
|     let done = plugins.q.defer();
 | |
|     plugins.beautylog.info("now running triggers");
 | |
|     plugins.smartparam.forEachMinimatch(process.env, "NPMCI_TRIGGER_*", evaluateTrigger);
 | |
|     done.resolve();
 | |
|     return done.promise;
 | |
| }
 | |
| 
 | |
| let evaluateTrigger = (triggerEnvVarArg) => {
 | |
|     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];
 | |
|     } else {
 | |
|         regexTriggerName = "Unnamed Trigger";
 | |
|     }
 | |
|     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 } });
 | |
| } |