2018-04-04 20:25:13 +00:00
|
|
|
import * as plugins from './mod.plugins';
|
|
|
|
import { bash } from '../npmci.bash';
|
2016-06-01 04:30:21 +00:00
|
|
|
|
2018-04-04 20:25:13 +00: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 20:22:03 +00:00
|
|
|
|
2017-03-08 13:50:41 +00:00
|
|
|
export let trigger = async () => {
|
2018-04-04 20:25:13 +00:00
|
|
|
plugins.beautylog.info('now running triggers');
|
|
|
|
plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_TRIGGER_*', evaluateTrigger);
|
|
|
|
};
|
2016-06-23 20:22:03 +00:00
|
|
|
|
2018-04-04 20:25:13 +00:00
|
|
|
let evaluateTrigger = async triggerEnvVarArg => {
|
|
|
|
let triggerRegexResultArray = triggerValueRegex.exec(triggerEnvVarArg);
|
|
|
|
let regexDomain = triggerRegexResultArray[1];
|
|
|
|
let regexProjectId = triggerRegexResultArray[2];
|
|
|
|
let regexProjectTriggerToken = triggerRegexResultArray[3];
|
|
|
|
let regexRefName = triggerRegexResultArray[4];
|
|
|
|
let regexTriggerName;
|
2017-03-08 13:50:41 +00:00
|
|
|
if (triggerRegexResultArray.length === 6) {
|
2018-04-04 20:25:13 +00:00
|
|
|
regexTriggerName = triggerRegexResultArray[5];
|
2017-03-08 13:50:41 +00:00
|
|
|
} else {
|
2018-04-04 20:25:13 +00:00
|
|
|
regexTriggerName = 'Unnamed Trigger';
|
2017-03-08 13:50:41 +00:00
|
|
|
}
|
2018-04-04 20:25:13 +00: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 }
|
|
|
|
});
|
|
|
|
};
|