add some functions
This commit is contained in:
@ -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;
|
||||
}
|
@ -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 .";
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
Reference in New Issue
Block a user