add some functions

This commit is contained in:
2016-06-03 03:44:24 +02:00
parent 42d3ecbe37
commit e1245f24ce
5 changed files with 44 additions and 28 deletions

View File

@ -6,25 +6,14 @@ import * as env from "./npmci.env";
export let build = function(commandArg){
switch(commandArg){
case "docker":
return docker();
case "docker-gitlab":
return dockerGitlab();
default:
break;
return docker();
}
}
let docker = function(){
let done = plugins.q.defer();
plugins.shelljs.exec("docker build -t " + "registry.gitlab.com/" + env.repo.user + "/" + env.repo.repo + ":latest .");
plugins.shelljs.exec("docker build -t " + env.dockerTag());
done.resolve();
return done.promise;
}
let dockerGitlab = function(){
let done = plugins.q.defer();
let repo = new plugins.smartstring.GitRepo(process.env.CI_BUILD_REPO);
plugins.shelljs.exec("docker build -t " + "registry.gitlab.com/" + env.repo.user + "/" + env.repo.repo + ":latest .");
done.resolve();
return done.promise;
}

View File

@ -6,3 +6,25 @@ import {GitRepo} from "smartstring";
export let repo = new GitRepo(process.env.CI_BUILD_REPO);
export let dockerTestTag:string;
export let dockerReleaseTag:string;
export let dockerRegistry = "docker.io"; // will be set by npmci.prepare
export let dockerTagVersion = function(){
if(process.env.CI_BUILD_STAGE == "test"){
return "test";
} else {
return "latest"
}
}
export let dockerTag = function(){
return dockerRegistry + "/" + repo.user + "/" + repo.repo + ":" + dockerTagVersion() +" .";
}
export let dockerTagTest = function(){
return dockerRegistry + "/" + repo.user + "/" + repo.repo + ":test .";
}
export let dockerTagRelease = function(){
return dockerRegistry + "/" + repo.user + "/" + repo.repo + ":latest .";
}

View File

@ -1,6 +1,7 @@
import "typings-global";
import * as plugins from "./npmci.plugins";
import {bash} from "./npmci.bash";
import * as env from "./npmci.env"
let npm = function(){
let done = plugins.q.defer();
@ -22,6 +23,7 @@ let npm = function(){
let docker = function(){
let done = plugins.q.defer();
env.dockerRegistry = "docker.io"
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");
@ -37,6 +39,7 @@ let docker = function(){
let dockerGitlab = function(){
let done = plugins.q.defer();
env.dockerRegistry = "registry.gitlab.io"
let ciBuildToken = process.env.CI_BUILD_TOKEN
plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + ciBuildToken + " registry.gitlab.com");
done.resolve();

View File

@ -4,21 +4,12 @@ import {prepare} from "./npmci.prepare";
import {bash} from "./npmci.bash";
export let publish = (serviceArg:string = "npm") => {
let done = plugins.q.defer();
switch (serviceArg){
case "npm":
publishNpm()
.then(function(){
done.resolve();
});
break;
return publishNpm();
case "docker":
publishDocker()
.then(function(){
done.resolve();
});
return publishDocker();
}
return done.promise;
};
let publishNpm = function(){
@ -36,7 +27,8 @@ let publishDocker = function(){
let done = plugins.q.defer();
prepare("docker")
.then(function(){
bash("docker push");
bash
bash("docker push ");
done.resolve();
});
return done.promise;