ui/lib/pipeline/addon/utils/pipelineStep.js

85 lines
2.2 KiB
JavaScript

const DEFAULT_REGISTRY = 'index.docker.io';
export let singleton = {
hintAry: []
}
export function analyzeImageRepo (images) {
if(!images){
return '';
}
let output = {
registry: DEFAULT_REGISTRY,
repository: '',
tag: ''
};
var splited = images.split('/');
if(splited.length < 2){
output.registry = DEFAULT_REGISTRY;
let repoAndTag = splited[0].split(':');
output.repository = repoAndTag[0];
output.tag = repoAndTag[1]||'latest';
}
else {
if(splited[0].indexOf('.')!==-1){
output.registry = splited[0]
}
let repoAndTag = splited[splited.length-1].split(':');
let repo = '';
for (var i = 0; i < splited.length-1; i++) {
let item = splited[i];
if(item.indexOf('.')===-1){
repo += item + '/';
}
}
repo+=repoAndTag[0];
output.repository = repo;
output.tag = repoAndTag[1]||'latest';
}
return output;
}
export const environmentTypes = [{
label: 'C',
value: 'gcc:latest',
shell: 'make',
version: [{value:'1.1',label:'1.1'}, {value:'latest',label:'latest'}]
}, {
label: 'PHP',
value: 'php:latest',
shell: 'phpunit —configuration phpunit_conf.xml —coverage-text',
version: [{value:'1.1',label:'1.1'}, {value:'latest',label:'latest'}]
}, {
label: 'Go',
value: 'golang:latest',
shell: 'go test',
version: [{value:'1.1',label:'1.1'}, {value:'latest',label:'latest'}]
}, {
label: 'Java',
value: 'java:latest',
shell: 'javac',
version: [{value:'1.1',label:'1.1'}, {value:'latest',label:'latest'}]
}, {
label: 'NodeJs',
value: 'node:latest',
shell: 'npm install',
version: [{value:'1.1',label:'1.1'}, {value:'latest',label:'latest'}]
},{
label: 'Custom',
value: '',
shell: '',
}];
export function environmentTypeObject(label,gitRepo) {
let selectedRepo = environmentTypes.findBy('label', label);
if(label === 'Go' && gitRepo){
let gitAddress = gitRepo.replace('https://', '').replace('.git', '');
let preScript = `mkdir -p /go/src/${gitAddress}
ln -s \`pwd\` /go/src/${gitAddress}
cd /go/src/${gitAddress}
`;
selectedRepo.shell = preScript + selectedRepo.shell;
}
return selectedRepo;
}