add some more functionality

This commit is contained in:
2016-06-03 01:58:37 +02:00
parent 057e425824
commit fa7f576ae5
10 changed files with 76 additions and 35 deletions

View File

@@ -6,10 +6,11 @@ let packJson = require("../package.json");
plugins.beautylog.info("npmci version: " + packJson.version);
import {build} from "./npmci.build"
import {install} from "./npmci.install";
import {test} from "./npmci.test";
import {publish} from "./npmci.publish";
import {prepare} from "./npmci.prepare";
import {test} from "./npmci.test";
import {trigger} from "./npmci.trigger";
@@ -31,6 +32,9 @@ if (typeof command === 'undefined') {
}
switch (command){
case "build":
build("commandArg");
break;
case "install":
install(commandOption);
break;

View File

@@ -4,5 +4,8 @@ import {bash} from "./npmci.bash";
export let build = function(commandArg){
let done = plugins.q.defer();
let repo = new plugins.smartstring.GitRepo(process.env.CI_BUILD_REPO);
plugins.shelljs.exec("docker build -t " + repo.user + "/" + repo.repo + ":latest .");
done.resolve();
return done.promise;
}

View File

@@ -5,4 +5,5 @@ export let q = require("q");
export let request = require("request");
export let shelljs = require("shelljs");
export let smartssh = require("smartssh");
export import smartstring = require("smartstring");
export import smartfile = require("smartfile");

View File

@@ -2,21 +2,6 @@ import "typings-global";
import * as plugins from "./npmci.plugins";
import {bash} from "./npmci.bash";
let docker = function(){
let done = plugins.q.defer();
let dockerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)/
if(!process.env.NPMCI_LOGIN_DOCKER){
plugins.beautylog.error("You have to specify Login Data to the Docker Registry");
process.exit(1);
}
let dockerRegexResultArray = dockerRegex.exec(process.env.NPMCI_LOGIN_DOCKER);
let username = dockerRegexResultArray[1];
let password = dockerRegexResultArray[2];
plugins.shelljs.exec("docker login -u " + username + " -p " + password);
done.resolve();
return done.promise;
}
let npm = function(){
let done = plugins.q.defer();
@@ -35,11 +20,38 @@ let npm = function(){
return done.promise;
};
let docker = function(){
let done = plugins.q.defer();
let dockerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)/
if(!process.env.NPMCI_LOGIN_DOCKER){
plugins.beautylog.error("You have to specify Login Data to the Docker Registry");
process.exit(1);
}
let dockerRegexResultArray = dockerRegex.exec(process.env.NPMCI_LOGIN_DOCKER);
let username = dockerRegexResultArray[1];
let password = dockerRegexResultArray[2];
plugins.shelljs.exec("docker login -u " + username + " -p " + password);
done.resolve();
return done.promise;
}
let dockerGitlab = function(){
let done = plugins.q.defer();
let ciBuildToken = process.env.CI_BUILD_TOKEN
plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + ciBuildToken + " registry.gitlab.com");
done.resolve();
return done.promise;
}
export let prepare = function(serviceArg:string){
switch (serviceArg) {
case "npm":
return npm();
case "docker":
return docker();
case "docker-gitlab":
return dockerGitlab();
default:
break;
}
}