add some functions

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

16
dist/npmci.build.js vendored
View File

@ -14,16 +14,26 @@ exports.build = function (commandArg) {
}; };
var docker = function () { var docker = function () {
var done = plugins.q.defer(); var 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.repo.user + "/" + env.repo.repo + ":latest .");
done.resolve(); done.resolve();
return done.promise; return done.promise;
}; };
var dockerGitlab = function () { var dockerGitlab = function () {
var done = plugins.q.defer(); var done = plugins.q.defer();
var repo = new plugins.smartstring.GitRepo(process.env.CI_BUILD_REPO); var 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 ."); var dockerTag = "registry.gitlab.com/" + env.repo.user + "/" + env.repo.repo + ":" + dockerTagVersion() + " .";
plugins.beautylog.info("now building docker image with tag " + dockerTag);
plugins.shelljs.exec("docker build -t " + dockerTag);
done.resolve(); done.resolve();
return done.promise; return done.promise;
}; };
var dockerTagVersion = function () {
if (process.env.CI_BUILD_STAGE == "test") {
return "test";
}
else {
return "latest";
}
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0saUJBQWlCLENBQUMsQ0FBQTtBQUUzQyxJQUFZLEdBQUcsV0FBTSxhQUFhLENBQUMsQ0FBQTtBQUV4QixhQUFLLEdBQUcsVUFBUyxVQUFVO0lBQ2xDLE1BQU0sQ0FBQSxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDZixLQUFLLFFBQVE7WUFDVCxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEIsS0FBSyxlQUFlO1lBQ2hCLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQjtZQUNJLEtBQUssQ0FBQztJQUNkLENBQUM7QUFDTCxDQUFDLENBQUE7QUFFRCxJQUFJLE1BQU0sR0FBRztJQUNULElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3RILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQTtBQUVELElBQUksWUFBWSxHQUFHO0lBQ2YsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixJQUFJLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3RILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS5idWlsZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcclxuaW1wb3J0ICogYXMgZW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xyXG5cclxuZXhwb3J0IGxldCBidWlsZCA9IGZ1bmN0aW9uKGNvbW1hbmRBcmcpe1xyXG4gICAgc3dpdGNoKGNvbW1hbmRBcmcpe1xyXG4gICAgICAgIGNhc2UgXCJkb2NrZXJcIjpcclxuICAgICAgICAgICAgcmV0dXJuIGRvY2tlcigpO1xyXG4gICAgICAgIGNhc2UgXCJkb2NrZXItZ2l0bGFiXCI6XHJcbiAgICAgICAgICAgIHJldHVybiBkb2NrZXJHaXRsYWIoKTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgIH1cclxufVxyXG5cclxubGV0IGRvY2tlciA9IGZ1bmN0aW9uKCl7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgcGx1Z2lucy5zaGVsbGpzLmV4ZWMoXCJkb2NrZXIgYnVpbGQgLXQgXCIgKyBcInJlZ2lzdHJ5LmdpdGxhYi5jb20vXCIgKyBlbnYucmVwby51c2VyICsgXCIvXCIgKyBlbnYucmVwby5yZXBvICsgXCI6bGF0ZXN0IC5cIik7XHJcbiAgICBkb25lLnJlc29sdmUoKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn1cclxuXHJcbmxldCBkb2NrZXJHaXRsYWIgPSBmdW5jdGlvbigpe1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIGxldCByZXBvID0gbmV3IHBsdWdpbnMuc21hcnRzdHJpbmcuR2l0UmVwbyhwcm9jZXNzLmVudi5DSV9CVUlMRF9SRVBPKTtcclxuICAgIHBsdWdpbnMuc2hlbGxqcy5leGVjKFwiZG9ja2VyIGJ1aWxkIC10IFwiICsgXCJyZWdpc3RyeS5naXRsYWIuY29tL1wiICsgZW52LnJlcG8udXNlciArIFwiL1wiICsgZW52LnJlcG8ucmVwbyArIFwiOmxhdGVzdCAuXCIpO1xyXG4gICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59Il19 //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0saUJBQWlCLENBQUMsQ0FBQTtBQUUzQyxJQUFZLEdBQUcsV0FBTSxhQUFhLENBQUMsQ0FBQTtBQUV4QixhQUFLLEdBQUcsVUFBUyxVQUFVO0lBQ2xDLE1BQU0sQ0FBQSxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDZixLQUFLLFFBQVE7WUFDVCxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEIsS0FBSyxlQUFlO1lBQ2hCLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQjtZQUNJLEtBQUssQ0FBQztJQUNkLENBQUM7QUFDTCxDQUFDLENBQUE7QUFFRCxJQUFJLE1BQU0sR0FBRztJQUNULElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQzdGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQTtBQUVELElBQUksWUFBWSxHQUFHO0lBQ2YsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixJQUFJLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsSUFBSSxTQUFTLEdBQUcsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxnQkFBZ0IsRUFBRSxHQUFFLElBQUksQ0FBQztJQUM5RyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUMxRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUE7QUFFRCxJQUFJLGdCQUFnQixHQUFHO0lBQ25CLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxDQUFBLENBQUM7UUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixNQUFNLENBQUMsUUFBUSxDQUFBO0lBQ25CLENBQUM7QUFDTCxDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuYnVpbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XHJcbmltcG9ydCAqIGFzIGVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcclxuXHJcbmV4cG9ydCBsZXQgYnVpbGQgPSBmdW5jdGlvbihjb21tYW5kQXJnKXtcclxuICAgIHN3aXRjaChjb21tYW5kQXJnKXtcclxuICAgICAgICBjYXNlIFwiZG9ja2VyXCI6XHJcbiAgICAgICAgICAgIHJldHVybiBkb2NrZXIoKTtcclxuICAgICAgICBjYXNlIFwiZG9ja2VyLWdpdGxhYlwiOlxyXG4gICAgICAgICAgICByZXR1cm4gZG9ja2VyR2l0bGFiKCk7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbn1cclxuXHJcbmxldCBkb2NrZXIgPSBmdW5jdGlvbigpe1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIHBsdWdpbnMuc2hlbGxqcy5leGVjKFwiZG9ja2VyIGJ1aWxkIC10IFwiICsgZW52LnJlcG8udXNlciArIFwiL1wiICsgZW52LnJlcG8ucmVwbyArIFwiOmxhdGVzdCAuXCIpO1xyXG4gICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59XHJcblxyXG5sZXQgZG9ja2VyR2l0bGFiID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBsZXQgcmVwbyA9IG5ldyBwbHVnaW5zLnNtYXJ0c3RyaW5nLkdpdFJlcG8ocHJvY2Vzcy5lbnYuQ0lfQlVJTERfUkVQTyk7XHJcbiAgICBsZXQgZG9ja2VyVGFnID0gXCJyZWdpc3RyeS5naXRsYWIuY29tL1wiICsgZW52LnJlcG8udXNlciArIFwiL1wiICsgZW52LnJlcG8ucmVwbyArIFwiOlwiICsgZG9ja2VyVGFnVmVyc2lvbigpICtcIiAuXCI7XHJcbiAgICBwbHVnaW5zLmJlYXV0eWxvZy5pbmZvKFwibm93IGJ1aWxkaW5nIGRvY2tlciBpbWFnZSB3aXRoIHRhZyBcIiArIGRvY2tlclRhZyk7XHJcbiAgICBwbHVnaW5zLnNoZWxsanMuZXhlYyhcImRvY2tlciBidWlsZCAtdCBcIiArIGRvY2tlclRhZyk7XHJcbiAgICBkb25lLnJlc29sdmUoKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn1cclxuXHJcbmxldCBkb2NrZXJUYWdWZXJzaW9uID0gZnVuY3Rpb24oKXtcclxuICAgIGlmKHByb2Nlc3MuZW52LkNJX0JVSUxEX1NUQUdFID09IFwidGVzdFwiKXtcclxuICAgICAgICByZXR1cm4gXCJ0ZXN0XCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBcImxhdGVzdFwiXHJcbiAgICB9XHJcbn0iXX0=

View File

@ -6,25 +6,14 @@ import * as env from "./npmci.env";
export let build = function(commandArg){ export let build = function(commandArg){
switch(commandArg){ switch(commandArg){
case "docker": case "docker":
return docker(); return docker();
case "docker-gitlab":
return dockerGitlab();
default:
break;
} }
} }
let docker = function(){ let docker = function(){
let done = plugins.q.defer(); 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(); done.resolve();
return done.promise; 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 repo = new GitRepo(process.env.CI_BUILD_REPO);
export let dockerTestTag:string; export let dockerTestTag:string;
export let dockerReleaseTag: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 "typings-global";
import * as plugins from "./npmci.plugins"; import * as plugins from "./npmci.plugins";
import {bash} from "./npmci.bash"; import {bash} from "./npmci.bash";
import * as env from "./npmci.env"
let npm = function(){ let npm = function(){
let done = plugins.q.defer(); let done = plugins.q.defer();
@ -22,6 +23,7 @@ let npm = function(){
let docker = function(){ let docker = function(){
let done = plugins.q.defer(); let done = plugins.q.defer();
env.dockerRegistry = "docker.io"
let dockerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)/ let dockerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)/
if(!process.env.NPMCI_LOGIN_DOCKER){ if(!process.env.NPMCI_LOGIN_DOCKER){
plugins.beautylog.error("You have to specify Login Data to the Docker Registry"); plugins.beautylog.error("You have to specify Login Data to the Docker Registry");
@ -37,6 +39,7 @@ let docker = function(){
let dockerGitlab = function(){ let dockerGitlab = function(){
let done = plugins.q.defer(); let done = plugins.q.defer();
env.dockerRegistry = "registry.gitlab.io"
let ciBuildToken = process.env.CI_BUILD_TOKEN let ciBuildToken = process.env.CI_BUILD_TOKEN
plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + ciBuildToken + " registry.gitlab.com"); plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + ciBuildToken + " registry.gitlab.com");
done.resolve(); done.resolve();

View File

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