Compare commits
48 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cb2400652f | |||
| 455247eb18 | |||
| b7394ff730 | |||
| c74bd67008 | |||
| 3300db61b4 | |||
| eeef17c327 | |||
| f510277c16 | |||
| 2d61640c91 | |||
| e4507b7073 | |||
| 0acb6ad351 | |||
| c33e0c622b | |||
| 5085e86c9b | |||
| 3ea8265a75 | |||
| d7e4efc2c0 | |||
| 7ca0171658 | |||
| 87d8a4401e | |||
| 8b5cf3bb5f | |||
| f28d3cc3d8 | |||
| 358e4674f2 | |||
| 0222ab91c3 | |||
| 61c8cbc152 | |||
| 4ffb1d1e7e | |||
| 48bee2fa92 | |||
| 494e3c5395 | |||
| 1408cb3b3d | |||
| 1bcb1f8fee | |||
| d98d8e9667 | |||
| 3ac486312e | |||
| 2464499214 | |||
| 9f4a3783a1 | |||
| fe0b99309b | |||
| 5a05092bc8 | |||
| 8dc0db3b71 | |||
| d24ff4c67b | |||
| 821747510f | |||
| e13624fc26 | |||
| 02e363d105 | |||
| 47aac2f7c5 | |||
| 832031a02a | |||
| 73b4057dc9 | |||
| fcd6b81668 | |||
| b84152aac2 | |||
| 198b35b0c6 | |||
| 334713a344 | |||
| 36c4a676c7 | |||
| 0571051009 | |||
| 0d4fd9dbba | |||
| 1e9c2c850c |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
coverage/
|
coverage/
|
||||||
docs/
|
docs/
|
||||||
|
config.json
|
||||||
@@ -1,2 +1,5 @@
|
|||||||
docs/
|
docs/
|
||||||
coverage/
|
coverage/
|
||||||
|
test/
|
||||||
|
node_modules/
|
||||||
|
config.json
|
||||||
@@ -3,7 +3,6 @@ npmci is your friend when it comes to handling npm packages during CI builds. It
|
|||||||
|
|
||||||
## Status
|
## Status
|
||||||
[](https://gitlab.com/pushrocks/npmci/commits/master)
|
[](https://gitlab.com/pushrocks/npmci/commits/master)
|
||||||
[](https://ci.appveyor.com/project/philkunz/npmci/branch/master)
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
npmci is designed to work in docker CI environments. The following docker images come with npmci presinstalled:
|
npmci is designed to work in docker CI environments. The following docker images come with npmci presinstalled:
|
||||||
|
|||||||
4
dist/npmci.bash.d.ts
vendored
4
dist/npmci.bash.d.ts
vendored
@@ -1,3 +1,3 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
export declare let bash: (commandArg: any) => void;
|
export declare let bash: (commandArg: string, retryArg?: number, bareArg?: boolean) => string;
|
||||||
export declare let bashBare: (commandArg: any) => void;
|
export declare let bashBare: (commandArg: any, retryArg?: number) => string;
|
||||||
|
|||||||
45
dist/npmci.bash.js
vendored
45
dist/npmci.bash.js
vendored
@@ -1,29 +1,44 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
var plugins = require("./npmci.plugins");
|
var plugins = require("./npmci.plugins");
|
||||||
exports.bash = function (commandArg) {
|
exports.bash = function (commandArg, retryArg, bareArg) {
|
||||||
|
if (retryArg === void 0) { retryArg = 2; }
|
||||||
|
if (bareArg === void 0) { bareArg = false; }
|
||||||
|
var exitCode;
|
||||||
|
var stdOut;
|
||||||
|
var execResult;
|
||||||
if (!process.env.NPMTS_TEST) {
|
if (!process.env.NPMTS_TEST) {
|
||||||
var exitCode = plugins.shelljs.exec("bash -c \"source /usr/local/nvm/nvm.sh &&" +
|
for (var i = 0; i <= retryArg; i++) {
|
||||||
|
if (!bareArg) {
|
||||||
|
execResult = plugins.shelljs.exec("bash -c \"source /usr/local/nvm/nvm.sh &&" +
|
||||||
commandArg +
|
commandArg +
|
||||||
"\"").code;
|
"\"");
|
||||||
if (exitCode !== 0) {
|
}
|
||||||
|
else {
|
||||||
|
execResult = plugins.shelljs.exec(commandArg);
|
||||||
|
}
|
||||||
|
exitCode = execResult.code;
|
||||||
|
stdOut = execResult.stdout;
|
||||||
|
if (exitCode !== 0 && i == retryArg) {
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
else if (exitCode == 0) {
|
||||||
|
i = retryArg + 1; // if everything works out ok retrials are not wanted
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
plugins.beautylog.warn("Something went wrong! Exit Code: " + exitCode.toString());
|
||||||
|
plugins.beautylog.info("Retry " + (i + 1).toString() + " of " + retryArg.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
plugins.beautylog.log("ShellExec would be: " + commandArg.blue);
|
plugins.beautylog.log("ShellExec would be: " + commandArg.blue);
|
||||||
}
|
}
|
||||||
|
return stdOut;
|
||||||
};
|
};
|
||||||
exports.bashBare = function (commandArg) {
|
exports.bashBare = function (commandArg, retryArg) {
|
||||||
if (!process.env.NPMTS_TEST) {
|
if (retryArg === void 0) { retryArg = 2; }
|
||||||
var exitCode = plugins.shelljs.exec(commandArg).code;
|
return exports.bash(commandArg, retryArg, true);
|
||||||
if (exitCode !== 0) {
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
plugins.beautylog.log("ShellExec would be: " + commandArg.blue);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQ2hDLFlBQUksR0FBRyxVQUFDLFVBQVU7SUFDekIsRUFBRSxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDeEIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9CLDJDQUEyQztZQUMzQyxVQUFVO1lBQ1YsSUFBSSxDQUNQLENBQUMsSUFBSSxDQUFDO1FBQ1AsRUFBRSxDQUFBLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDTCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkUsQ0FBQztBQUNMLENBQUMsQ0FBQTtBQUVVLGdCQUFRLEdBQUcsVUFBQyxVQUFVO0lBQzdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQSxDQUFDO1FBQ3pCLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNyRCxFQUFFLENBQUEsQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQztJQUNMLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0FBQ0wsQ0FBQyxDQUFBIiwiZmlsZSI6Im5wbWNpLmJhc2guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuZXhwb3J0IGxldCBiYXNoID0gKGNvbW1hbmRBcmcpID0+IHtcclxuICAgIGlmKCFwcm9jZXNzLmVudi5OUE1UU19URVNUKXtcclxuICAgICAgICBsZXQgZXhpdENvZGUgPSBwbHVnaW5zLnNoZWxsanMuZXhlYyhcclxuICAgICAgICAgICAgXCJiYXNoIC1jIFxcXCJzb3VyY2UgL3Vzci9sb2NhbC9udm0vbnZtLnNoICYmXCIgK1xyXG4gICAgICAgICAgICBjb21tYW5kQXJnICtcclxuICAgICAgICAgICAgXCJcXFwiXCJcclxuICAgICAgICApLmNvZGU7XHJcbiAgICAgICAgaWYoZXhpdENvZGUgIT09IDApe1xyXG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJTaGVsbEV4ZWMgd291bGQgYmU6IFwiICsgY29tbWFuZEFyZy5ibHVlKVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgbGV0IGJhc2hCYXJlID0gKGNvbW1hbmRBcmcpID0+IHtcclxuICAgIGlmICghcHJvY2Vzcy5lbnYuTlBNVFNfVEVTVCl7XHJcbiAgICAgICAgbGV0IGV4aXRDb2RlID0gcGx1Z2lucy5zaGVsbGpzLmV4ZWMoY29tbWFuZEFyZykuY29kZTtcclxuICAgICAgICBpZihleGl0Q29kZSAhPT0gMCl7XHJcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcclxuICAgICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmxvZyhcIlNoZWxsRXhlYyB3b3VsZCBiZTogXCIgKyBjb21tYW5kQXJnLmJsdWUpXHJcbiAgICB9XHJcbn0iXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBRWhDLFlBQUksR0FBRyxVQUFDLFVBQWlCLEVBQUMsUUFBWSxFQUFDLE9BQWU7SUFBNUIsd0JBQVksR0FBWixZQUFZO0lBQUMsdUJBQWUsR0FBZixlQUFlO0lBQzdELElBQUksUUFBZSxDQUFDO0lBQ3BCLElBQUksTUFBYSxDQUFDO0lBQ2xCLElBQUksVUFBVSxDQUFDO0lBQ2YsRUFBRSxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDeEIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztZQUNoQyxFQUFFLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUM7Z0JBQ1QsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QiwyQ0FBMkM7b0JBQzNDLFVBQVU7b0JBQ1YsSUFBSSxDQUNQLENBQUM7WUFDTixDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFDRCxRQUFRLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztZQUMzQixNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMzQixFQUFFLENBQUEsQ0FBQyxRQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQSxDQUFDO2dCQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLENBQUM7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUM7Z0JBQ3JCLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMscURBQXFEO1lBQzNFLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDbEYsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sR0FBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMxRixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUE7QUFFVSxnQkFBUSxHQUFHLFVBQUMsVUFBVSxFQUFDLFFBQVk7SUFBWix3QkFBWSxHQUFaLFlBQVk7SUFDMUMsTUFBTSxDQUFDLFlBQUksQ0FBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS5iYXNoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcblxyXG5leHBvcnQgbGV0IGJhc2ggPSAoY29tbWFuZEFyZzpzdHJpbmcscmV0cnlBcmcgPSAyLGJhcmVBcmcgPSBmYWxzZSkgPT4ge1xyXG4gICAgbGV0IGV4aXRDb2RlOm51bWJlcjtcclxuICAgIGxldCBzdGRPdXQ6c3RyaW5nO1xyXG4gICAgbGV0IGV4ZWNSZXN1bHQ7XHJcbiAgICBpZighcHJvY2Vzcy5lbnYuTlBNVFNfVEVTVCl7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gcmV0cnlBcmc7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKCFiYXJlQXJnKXtcclxuICAgICAgICAgICAgICAgIGV4ZWNSZXN1bHQgPSBwbHVnaW5zLnNoZWxsanMuZXhlYyhcclxuICAgICAgICAgICAgICAgICAgICBcImJhc2ggLWMgXFxcInNvdXJjZSAvdXNyL2xvY2FsL252bS9udm0uc2ggJiZcIiArXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZEFyZyArXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcXFwiXCJcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBleGVjUmVzdWx0ID0gcGx1Z2lucy5zaGVsbGpzLmV4ZWMoY29tbWFuZEFyZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZXhpdENvZGUgPSBleGVjUmVzdWx0LmNvZGU7XHJcbiAgICAgICAgICAgIHN0ZE91dCA9IGV4ZWNSZXN1bHQuc3Rkb3V0O1xyXG4gICAgICAgICAgICBpZihleGl0Q29kZSAhPT0gMCAmJiBpID09IHJldHJ5QXJnKXtcclxuICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmKGV4aXRDb2RlID09IDApe1xyXG4gICAgICAgICAgICAgICAgaSA9IHJldHJ5QXJnICsgMTsgLy8gaWYgZXZlcnl0aGluZyB3b3JrcyBvdXQgb2sgcmV0cmlhbHMgYXJlIG5vdCB3YW50ZWRcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLndhcm4oXCJTb21ldGhpbmcgd2VudCB3cm9uZyEgRXhpdCBDb2RlOiBcIiArIGV4aXRDb2RlLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIlJldHJ5IFwiICsgKGkgKyAxKS50b1N0cmluZygpICsgXCIgb2YgXCIgKyAgcmV0cnlBcmcudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmxvZyhcIlNoZWxsRXhlYyB3b3VsZCBiZTogXCIgKyBjb21tYW5kQXJnLmJsdWUpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RkT3V0O1xyXG59XHJcblxyXG5leHBvcnQgbGV0IGJhc2hCYXJlID0gKGNvbW1hbmRBcmcscmV0cnlBcmcgPSAyKSA9PiB7XHJcbiAgICByZXR1cm4gYmFzaChjb21tYW5kQXJnLHJldHJ5QXJnLHRydWUpO1xyXG59Il19
|
||||||
|
|||||||
19
dist/npmci.build.docker.d.ts
vendored
19
dist/npmci.build.docker.d.ts
vendored
@@ -4,12 +4,17 @@ export declare let sortDockerfiles: (sortableArrayArg: Dockerfile[]) => any;
|
|||||||
export declare let mapDockerfiles: (sortedArray: Dockerfile[]) => any;
|
export declare let mapDockerfiles: (sortedArray: Dockerfile[]) => any;
|
||||||
export declare let buildDockerfiles: (sortedArrayArg: Dockerfile[]) => any;
|
export declare let buildDockerfiles: (sortedArrayArg: Dockerfile[]) => any;
|
||||||
export declare let pushDockerfiles: (sortedArrayArg: Dockerfile[]) => any;
|
export declare let pushDockerfiles: (sortedArrayArg: Dockerfile[]) => any;
|
||||||
|
export declare let pullDockerfileImages: (sortableArrayArg: Dockerfile[]) => any;
|
||||||
|
export declare let testDockerfiles: (sortedArrayArg: Dockerfile[]) => any;
|
||||||
|
export declare let releaseDockerfiles: (sortedArrayArg: Dockerfile[]) => any;
|
||||||
export declare class Dockerfile {
|
export declare class Dockerfile {
|
||||||
filePath: string;
|
filePath: string;
|
||||||
repo: string;
|
repo: string;
|
||||||
version: string;
|
version: string;
|
||||||
cleanTag: string;
|
cleanTag: string;
|
||||||
buildTag: string;
|
buildTag: string;
|
||||||
|
releaseTag: string;
|
||||||
|
containerName: string;
|
||||||
content: string;
|
content: string;
|
||||||
patchedContent: string;
|
patchedContent: string;
|
||||||
baseImage: string;
|
baseImage: string;
|
||||||
@@ -20,12 +25,16 @@ export declare class Dockerfile {
|
|||||||
fileContents?: string | Buffer;
|
fileContents?: string | Buffer;
|
||||||
read?: boolean;
|
read?: boolean;
|
||||||
});
|
});
|
||||||
build(): void;
|
build(): any;
|
||||||
push(): void;
|
push(): any;
|
||||||
patchContents(): void;
|
pull(): void;
|
||||||
restoreContents(): void;
|
test(): void;
|
||||||
|
release(): void;
|
||||||
|
getId(): string;
|
||||||
|
patchContents(): any;
|
||||||
|
restoreContents(): any;
|
||||||
}
|
}
|
||||||
export declare let dockerFileVersion: (dockerfileNameArg: string) => string;
|
export declare let dockerFileVersion: (dockerfileNameArg: string) => string;
|
||||||
export declare let dockerBaseImage: (dockerfileContentArg: string) => string;
|
export declare let dockerBaseImage: (dockerfileContentArg: string) => string;
|
||||||
export declare let dockerTag: (repoArg: string, versionArg: string) => string;
|
export declare let dockerTag: (repoArg: string, versionArg: string, stageArg: string) => string;
|
||||||
export declare let cleanTagsArrayFunction: (dockerfileArrayArg: Dockerfile[], trackingArrayArg: Dockerfile[]) => string[];
|
export declare let cleanTagsArrayFunction: (dockerfileArrayArg: Dockerfile[], trackingArrayArg: Dockerfile[]) => string[];
|
||||||
|
|||||||
112
dist/npmci.build.docker.js
vendored
112
dist/npmci.build.docker.js
vendored
File diff suppressed because one or more lines are too long
6
dist/npmci.env.d.ts
vendored
6
dist/npmci.env.d.ts
vendored
@@ -2,8 +2,10 @@ import "typings-global";
|
|||||||
import { GitRepo } from "smartstring";
|
import { GitRepo } from "smartstring";
|
||||||
import { Dockerfile } from "./npmci.build.docker";
|
import { Dockerfile } from "./npmci.build.docker";
|
||||||
export declare let repo: GitRepo;
|
export declare let repo: GitRepo;
|
||||||
export declare let dockerTestTag: string;
|
export declare let buildStage: string;
|
||||||
export declare let dockerReleaseTag: string;
|
|
||||||
export declare let dockerRegistry: any;
|
export declare let dockerRegistry: any;
|
||||||
export declare let dockerFilesBuilt: Dockerfile[];
|
export declare let dockerFilesBuilt: Dockerfile[];
|
||||||
export declare let dockerFiles: Dockerfile[];
|
export declare let dockerFiles: Dockerfile[];
|
||||||
|
export declare let config: any;
|
||||||
|
export declare let configStore: () => void;
|
||||||
|
export declare let configLoad: () => void;
|
||||||
|
|||||||
24
dist/npmci.env.js
vendored
24
dist/npmci.env.js
vendored
@@ -1,8 +1,30 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
|
var plugins = require("./npmci.plugins");
|
||||||
|
var paths = require("./npmci.paths");
|
||||||
var smartstring_1 = require("smartstring");
|
var smartstring_1 = require("smartstring");
|
||||||
exports.repo = new smartstring_1.GitRepo(process.env.CI_BUILD_REPO);
|
exports.repo = new smartstring_1.GitRepo(process.env.CI_BUILD_REPO);
|
||||||
|
exports.buildStage = process.env.CI_BUILD_STAGE;
|
||||||
exports.dockerFilesBuilt = [];
|
exports.dockerFilesBuilt = [];
|
||||||
exports.dockerFiles = [];
|
exports.dockerFiles = [];
|
||||||
|
exports.configStore = function () {
|
||||||
|
plugins.smartfile.memory.toFsSync(JSON.stringify(exports.config), {
|
||||||
|
fileName: "config.json",
|
||||||
|
filePath: paths.NpmciPackageRoot
|
||||||
|
});
|
||||||
|
};
|
||||||
|
exports.configLoad = function () {
|
||||||
|
try {
|
||||||
|
exports.config = plugins.smartfile.local.toObjectSync(paths.NpmciPackageConfig, "json");
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
exports.config = {};
|
||||||
|
exports.configStore();
|
||||||
|
plugins.beautylog.log("config inititialized!");
|
||||||
|
}
|
||||||
|
exports.config.dockerRegistry ? exports.dockerRegistry = exports.config.dockerRegistry : void (0);
|
||||||
|
exports.config.dockerFilesBuilt ? exports.dockerFilesBuilt = exports.config.dockerFilesBuilt : void (0);
|
||||||
|
};
|
||||||
|
exports.configLoad();
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBRXhCLDRCQUFzQixhQUFhLENBQUMsQ0FBQTtBQUd6QixZQUFJLEdBQUcsSUFBSSxxQkFBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFLOUMsd0JBQWdCLEdBQWdCLEVBQUUsQ0FBQztBQUNuQyxtQkFBVyxHQUFnQixFQUFFLENBQUMiLCJmaWxlIjoibnBtY2kuZW52LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7R2l0UmVwb30gZnJvbSBcInNtYXJ0c3RyaW5nXCI7XHJcbmltcG9ydCB7RG9ja2VyZmlsZX0gZnJvbSBcIi4vbnBtY2kuYnVpbGQuZG9ja2VyXCJcclxuXHJcbmV4cG9ydCBsZXQgcmVwbyA9IG5ldyBHaXRSZXBvKHByb2Nlc3MuZW52LkNJX0JVSUxEX1JFUE8pO1xyXG5leHBvcnQgbGV0IGRvY2tlclRlc3RUYWc6c3RyaW5nO1xyXG5leHBvcnQgbGV0IGRvY2tlclJlbGVhc2VUYWc6c3RyaW5nO1xyXG5cclxuZXhwb3J0IGxldCBkb2NrZXJSZWdpc3RyeTsgLy8gd2lsbCBiZSBzZXQgYnkgbnBtY2kucHJlcGFyZVxyXG5leHBvcnQgbGV0IGRvY2tlckZpbGVzQnVpbHQ6RG9ja2VyZmlsZVtdID0gW107XHJcbmV4cG9ydCBsZXQgZG9ja2VyRmlsZXM6RG9ja2VyZmlsZVtdID0gW107XHJcblxyXG4iXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3hCLElBQVksT0FBTyxXQUFNLGlCQUFpQixDQUFDLENBQUE7QUFDM0MsSUFBWSxLQUFLLFdBQU0sZUFBZSxDQUFDLENBQUE7QUFDdkMsNEJBQXNCLGFBQWEsQ0FBQyxDQUFBO0FBR3pCLFlBQUksR0FBVyxJQUFJLHFCQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV0RCxrQkFBVSxHQUFVLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO0FBSS9DLHdCQUFnQixHQUFnQixFQUFFLENBQUM7QUFDbkMsbUJBQVcsR0FBZ0IsRUFBRSxDQUFDO0FBSTlCLG1CQUFXLEdBQUc7SUFDckIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQU0sQ0FBQyxFQUN0QjtRQUNJLFFBQVEsRUFBQyxhQUFhO1FBQ3RCLFFBQVEsRUFBQyxLQUFLLENBQUMsZ0JBQWdCO0tBQ2xDLENBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQTtBQUVVLGtCQUFVLEdBQUc7SUFDcEIsSUFBSSxDQUFDO1FBQ0QsY0FBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkYsQ0FDQTtJQUFBLEtBQUssQ0FBQSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUM7UUFDUCxjQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osbUJBQVcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsY0FBTSxDQUFDLGNBQWMsR0FBRyxzQkFBYyxHQUFHLGNBQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLGNBQU0sQ0FBQyxnQkFBZ0IsR0FBRyx3QkFBZ0IsR0FBRyxjQUFNLENBQUMsZ0JBQWdCLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25GLENBQUMsQ0FBQTtBQUNELGtCQUFVLEVBQUUsQ0FBQyIsImZpbGUiOiJucG1jaS5lbnYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuaW1wb3J0ICogYXMgcGF0aHMgZnJvbSBcIi4vbnBtY2kucGF0aHNcIjtcclxuaW1wb3J0IHtHaXRSZXBvfSBmcm9tIFwic21hcnRzdHJpbmdcIjtcclxuaW1wb3J0IHtEb2NrZXJmaWxlfSBmcm9tIFwiLi9ucG1jaS5idWlsZC5kb2NrZXJcIlxyXG5cclxuZXhwb3J0IGxldCByZXBvOkdpdFJlcG8gPSBuZXcgR2l0UmVwbyhwcm9jZXNzLmVudi5DSV9CVUlMRF9SRVBPKTtcclxuXHJcbmV4cG9ydCBsZXQgYnVpbGRTdGFnZTpzdHJpbmcgPSBwcm9jZXNzLmVudi5DSV9CVUlMRF9TVEFHRTtcclxuXHJcbi8vIGhhbmRsaW5nIGNvbmZpZyBiZXR3ZWVuIGNvbW1hbmRzXHJcbmV4cG9ydCBsZXQgZG9ja2VyUmVnaXN0cnk7IC8vIHdpbGwgYmUgc2V0IGJ5IG5wbWNpLnByZXBhcmVcclxuZXhwb3J0IGxldCBkb2NrZXJGaWxlc0J1aWx0OkRvY2tlcmZpbGVbXSA9IFtdO1xyXG5leHBvcnQgbGV0IGRvY2tlckZpbGVzOkRvY2tlcmZpbGVbXSA9IFtdO1xyXG5cclxuZXhwb3J0IGxldCBjb25maWc7XHJcblxyXG5leHBvcnQgbGV0IGNvbmZpZ1N0b3JlID0gKCkgPT4ge1xyXG4gICAgcGx1Z2lucy5zbWFydGZpbGUubWVtb3J5LnRvRnNTeW5jKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGNvbmZpZyksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBmaWxlTmFtZTpcImNvbmZpZy5qc29uXCIsXHJcbiAgICAgICAgICAgIGZpbGVQYXRoOnBhdGhzLk5wbWNpUGFja2FnZVJvb3RcclxuICAgICAgICB9XHJcbiAgICApO1xyXG59XHJcblxyXG5leHBvcnQgbGV0IGNvbmZpZ0xvYWQgPSAoKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGNvbmZpZyA9IHBsdWdpbnMuc21hcnRmaWxlLmxvY2FsLnRvT2JqZWN0U3luYyhwYXRocy5OcG1jaVBhY2thZ2VDb25maWcsXCJqc29uXCIpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2goZXJyKXtcclxuICAgICAgICBjb25maWcgPSB7fTtcclxuICAgICAgICBjb25maWdTdG9yZSgpO1xyXG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmxvZyhcImNvbmZpZyBpbml0aXRpYWxpemVkIVwiKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29uZmlnLmRvY2tlclJlZ2lzdHJ5ID8gZG9ja2VyUmVnaXN0cnkgPSBjb25maWcuZG9ja2VyUmVnaXN0cnkgOiB2b2lkKDApO1xyXG4gICAgY29uZmlnLmRvY2tlckZpbGVzQnVpbHQgPyBkb2NrZXJGaWxlc0J1aWx0ID0gY29uZmlnLmRvY2tlckZpbGVzQnVpbHQgOiB2b2lkKDApO1xyXG59XHJcbmNvbmZpZ0xvYWQoKTsiXX0=
|
||||||
|
|||||||
0
dist/npmci.get.d.ts
vendored
0
dist/npmci.get.d.ts
vendored
3
dist/npmci.get.js
vendored
3
dist/npmci.get.js
vendored
@@ -1,3 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJucG1jaS5nZXQuanMiLCJzb3VyY2VzQ29udGVudCI6W119
|
|
||||||
6
dist/npmci.paths.d.ts
vendored
Normal file
6
dist/npmci.paths.d.ts
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare let cwd: string;
|
||||||
|
export declare let NpmciPackageRoot: string;
|
||||||
|
export declare let NpmciPackageConfig: string;
|
||||||
|
export declare let NpmciProjectDir: string;
|
||||||
|
export declare let NpmciTestDir: string;
|
||||||
10
dist/npmci.paths.js
vendored
Normal file
10
dist/npmci.paths.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
var plugins = require("./npmci.plugins");
|
||||||
|
exports.cwd = process.cwd();
|
||||||
|
exports.NpmciPackageRoot = plugins.path.join(__dirname, "../");
|
||||||
|
exports.NpmciPackageConfig = plugins.path.join(exports.NpmciPackageRoot, "./config.json");
|
||||||
|
exports.NpmciProjectDir = exports.cwd;
|
||||||
|
exports.NpmciTestDir = plugins.path.join(exports.cwd, "./test");
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBhdGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0saUJBQWlCLENBQUMsQ0FBQTtBQUVoQyxXQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRXBCLHdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUN0RCwwQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBZ0IsRUFBQyxlQUFlLENBQUMsQ0FBQztBQUN6RSx1QkFBZSxHQUFHLFdBQUcsQ0FBQztBQUN0QixvQkFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQUcsRUFBQyxRQUFRLENBQUMsQ0FBQyIsImZpbGUiOiJucG1jaS5wYXRocy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5cclxuZXhwb3J0IGxldCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xyXG5cclxuZXhwb3J0IGxldCBOcG1jaVBhY2thZ2VSb290ID0gcGx1Z2lucy5wYXRoLmpvaW4oX19kaXJuYW1lLFwiLi4vXCIpO1xyXG5leHBvcnQgbGV0IE5wbWNpUGFja2FnZUNvbmZpZyA9IHBsdWdpbnMucGF0aC5qb2luKE5wbWNpUGFja2FnZVJvb3QsXCIuL2NvbmZpZy5qc29uXCIpO1xyXG5leHBvcnQgbGV0IE5wbWNpUHJvamVjdERpciA9IGN3ZDtcclxuZXhwb3J0IGxldCBOcG1jaVRlc3REaXIgPSBwbHVnaW5zLnBhdGguam9pbihjd2QsXCIuL3Rlc3RcIik7Il19
|
||||||
9
dist/npmci.prepare.js
vendored
9
dist/npmci.prepare.js
vendored
File diff suppressed because one or more lines are too long
20
dist/npmci.publish.js
vendored
20
dist/npmci.publish.js
vendored
@@ -3,7 +3,7 @@ require("typings-global");
|
|||||||
var plugins = require("./npmci.plugins");
|
var plugins = require("./npmci.plugins");
|
||||||
var npmci_prepare_1 = require("./npmci.prepare");
|
var npmci_prepare_1 = require("./npmci.prepare");
|
||||||
var npmci_bash_1 = require("./npmci.bash");
|
var npmci_bash_1 = require("./npmci.bash");
|
||||||
var NpmciEnv = require("./npmci.env");
|
var NpmciBuildDocker = require("./npmci.build.docker");
|
||||||
exports.publish = function (serviceArg) {
|
exports.publish = function (serviceArg) {
|
||||||
if (serviceArg === void 0) { serviceArg = "npm"; }
|
if (serviceArg === void 0) { serviceArg = "npm"; }
|
||||||
switch (serviceArg) {
|
switch (serviceArg) {
|
||||||
@@ -25,19 +25,11 @@ var publishNpm = function () {
|
|||||||
};
|
};
|
||||||
var publishDocker = function () {
|
var publishDocker = function () {
|
||||||
var done = plugins.q.defer();
|
var done = plugins.q.defer();
|
||||||
NpmciEnv.dockerFilesBuilt.forEach(function (dockerfileArg) {
|
NpmciBuildDocker.readDockerfiles()
|
||||||
dockerfileArg.push();
|
.then(NpmciBuildDocker.pullDockerfileImages)
|
||||||
});
|
.then(NpmciBuildDocker.releaseDockerfiles)
|
||||||
done.resolve();
|
.then(done.resolve);
|
||||||
return done.promise;
|
|
||||||
};
|
|
||||||
var publishDockerTest = function () {
|
|
||||||
var done = plugins.q.defer();
|
|
||||||
NpmciEnv.dockerFilesBuilt.forEach(function (dockerfileArg) {
|
|
||||||
dockerfileArg.push();
|
|
||||||
});
|
|
||||||
done.resolve();
|
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyxJQUFZLFFBQVEsV0FBTSxhQUFhLENBQUMsQ0FBQTtBQUU3QixlQUFPLEdBQUcsVUFBQyxVQUF5QjtJQUF6QiwwQkFBeUIsR0FBekIsa0JBQXlCO0lBQzNDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDaEIsS0FBSyxLQUFLO1lBQ04sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssUUFBUTtZQUNULE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMvQixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsSUFBSSxVQUFVLEdBQUk7SUFDZCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLHVCQUFPLENBQUMsS0FBSyxDQUFDO1NBQ1QsSUFBSSxDQUFDO1FBQ0YsaUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBRTtRQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN2QixDQUFDLENBQUE7QUFFRCxJQUFJLGFBQWEsR0FBRztJQUNoQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsVUFBUyxhQUFhO1FBQ3BELGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLElBQUksaUJBQWlCLEdBQUc7SUFDcEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFVBQVMsYUFBYTtRQUNwRCxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kucHVibGlzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5pbXBvcnQge3ByZXBhcmV9IGZyb20gXCIuL25wbWNpLnByZXBhcmVcIjtcclxuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XHJcbmltcG9ydCAqIGFzIE5wbWNpRW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xyXG5cclxuZXhwb3J0IGxldCBwdWJsaXNoID0gKHNlcnZpY2VBcmc6c3RyaW5nID0gXCJucG1cIikgPT4ge1xyXG4gICAgc3dpdGNoIChzZXJ2aWNlQXJnKXtcclxuICAgICAgICBjYXNlIFwibnBtXCI6IFxyXG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaE5wbSgpO1xyXG4gICAgICAgIGNhc2UgXCJkb2NrZXJcIjpcclxuICAgICAgICAgICAgcmV0dXJuIHB1Ymxpc2hEb2NrZXIoKTtcclxuICAgIH1cclxufTtcclxuXHJcbmxldCBwdWJsaXNoTnBtICA9IGZ1bmN0aW9uKCl7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgcHJlcGFyZShcIm5wbVwiKVxyXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGJhc2goXCJucG0gcHVibGlzaFwiKTtcclxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cub2soXCJEb25lIVwiKSA7XHJcbiAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59XHJcblxyXG5sZXQgcHVibGlzaERvY2tlciA9IGZ1bmN0aW9uKCl7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgTnBtY2lFbnYuZG9ja2VyRmlsZXNCdWlsdC5mb3JFYWNoKGZ1bmN0aW9uKGRvY2tlcmZpbGVBcmcpe1xyXG4gICAgICAgIGRvY2tlcmZpbGVBcmcucHVzaCgpO1xyXG4gICAgfSk7XHJcbiAgICBkb25lLnJlc29sdmUoKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn07XHJcblxyXG5sZXQgcHVibGlzaERvY2tlclRlc3QgPSBmdW5jdGlvbigpe1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIE5wbWNpRW52LmRvY2tlckZpbGVzQnVpbHQuZm9yRWFjaChmdW5jdGlvbihkb2NrZXJmaWxlQXJnKXtcclxuICAgICAgICBkb2NrZXJmaWxlQXJnLnB1c2goKTtcclxuICAgIH0pO1xyXG4gICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59Il19
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUVsQyxJQUFZLGdCQUFnQixXQUFNLHNCQUVsQyxDQUFDLENBRnVEO0FBRTdDLGVBQU8sR0FBRyxVQUFDLFVBQXlCO0lBQXpCLDBCQUF5QixHQUF6QixrQkFBeUI7SUFDM0MsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQztRQUNoQixLQUFLLEtBQUs7WUFDTixNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEIsS0FBSyxRQUFRO1lBQ1QsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixJQUFJLFVBQVUsR0FBSTtJQUNkLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsdUJBQU8sQ0FBQyxLQUFLLENBQUM7U0FDVCxJQUFJLENBQUM7UUFDRixpQkFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFFO1FBQy9CLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQTtBQUVELElBQUksYUFBYSxHQUFHO0lBQ2hCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsZ0JBQWdCLENBQUMsZUFBZSxFQUFFO1NBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQztTQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUM7U0FDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kucHVibGlzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5pbXBvcnQge3ByZXBhcmV9IGZyb20gXCIuL25wbWNpLnByZXBhcmVcIjtcclxuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XHJcbmltcG9ydCAqIGFzIE5wbWNpRW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xyXG5pbXBvcnQgKiBhcyBOcG1jaUJ1aWxkRG9ja2VyIGZyb20gXCIuL25wbWNpLmJ1aWxkLmRvY2tlclwiXHJcblxyXG5leHBvcnQgbGV0IHB1Ymxpc2ggPSAoc2VydmljZUFyZzpzdHJpbmcgPSBcIm5wbVwiKSA9PiB7XHJcbiAgICBzd2l0Y2ggKHNlcnZpY2VBcmcpe1xyXG4gICAgICAgIGNhc2UgXCJucG1cIjogXHJcbiAgICAgICAgICAgIHJldHVybiBwdWJsaXNoTnBtKCk7XHJcbiAgICAgICAgY2FzZSBcImRvY2tlclwiOlxyXG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaERvY2tlcigpO1xyXG4gICAgfVxyXG59O1xyXG5cclxubGV0IHB1Ymxpc2hOcG0gID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBwcmVwYXJlKFwibnBtXCIpXHJcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgYmFzaChcIm5wbSBwdWJsaXNoXCIpO1xyXG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5vayhcIkRvbmUhXCIpIDtcclxuICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn1cclxuXHJcbmxldCBwdWJsaXNoRG9ja2VyID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICAgICAgTnBtY2lCdWlsZERvY2tlci5yZWFkRG9ja2VyZmlsZXMoKVxyXG4gICAgICAgIC50aGVuKE5wbWNpQnVpbGREb2NrZXIucHVsbERvY2tlcmZpbGVJbWFnZXMpXHJcbiAgICAgICAgLnRoZW4oTnBtY2lCdWlsZERvY2tlci5yZWxlYXNlRG9ja2VyZmlsZXMpXHJcbiAgICAgICAgLnRoZW4oZG9uZS5yZXNvbHZlKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn07Il19
|
||||||
|
|||||||
1
dist/npmci.test.docker.d.ts
vendored
Normal file
1
dist/npmci.test.docker.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export declare let testDocker: () => void;
|
||||||
5
dist/npmci.test.docker.js
vendored
Normal file
5
dist/npmci.test.docker.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
"use strict";
|
||||||
|
exports.testDocker = function () {
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QuZG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFLVyxrQkFBVSxHQUFHO0FBRXhCLENBQUMsQ0FBQyIsImZpbGUiOiJucG1jaS50ZXN0LmRvY2tlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiXHJcbmltcG9ydCAqIGFzIE5wbWNpRW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xyXG5pbXBvcnQge2Jhc2hCYXJlfSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XHJcbmltcG9ydCAqIGFzIE5wbWNpQnVpbGREb2NrZXIgZnJvbSBcIi4vbnBtY2kuYnVpbGQuZG9ja2VyXCI7XHJcblxyXG5leHBvcnQgbGV0IHRlc3REb2NrZXIgPSAoKSA9PiB7XHJcblxyXG59OyJdfQ==
|
||||||
19
dist/npmci.test.js
vendored
19
dist/npmci.test.js
vendored
@@ -3,6 +3,7 @@ require("typings-global");
|
|||||||
var plugins = require("./npmci.plugins");
|
var plugins = require("./npmci.plugins");
|
||||||
var npmci_bash_1 = require("./npmci.bash");
|
var npmci_bash_1 = require("./npmci.bash");
|
||||||
var npmci_install_1 = require("./npmci.install");
|
var npmci_install_1 = require("./npmci.install");
|
||||||
|
var NpmciBuildDocker = require("./npmci.build.docker");
|
||||||
exports.test = function (versionArg) {
|
exports.test = function (versionArg) {
|
||||||
var done = plugins.q.defer();
|
var done = plugins.q.defer();
|
||||||
if (versionArg == "docker") {
|
if (versionArg == "docker") {
|
||||||
@@ -14,10 +15,8 @@ exports.test = function (versionArg) {
|
|||||||
else {
|
else {
|
||||||
npmci_install_1.install(versionArg)
|
npmci_install_1.install(versionArg)
|
||||||
.then(npmDependencies)
|
.then(npmDependencies)
|
||||||
|
.then(npmTest)
|
||||||
.then(function () {
|
.then(function () {
|
||||||
plugins.beautylog.info("now starting tests:");
|
|
||||||
npmci_bash_1.bash("npm test");
|
|
||||||
plugins.beautylog.success("test finished");
|
|
||||||
done.resolve();
|
done.resolve();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -30,10 +29,20 @@ var npmDependencies = function () {
|
|||||||
done.resolve();
|
done.resolve();
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
var testDocker = function () {
|
var npmTest = function () {
|
||||||
var done = plugins.q.defer();
|
var done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now starting tests:");
|
||||||
|
npmci_bash_1.bash("npm test");
|
||||||
done.resolve();
|
done.resolve();
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
var testDocker = function () {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
NpmciBuildDocker.readDockerfiles()
|
||||||
|
.then(NpmciBuildDocker.pullDockerfileImages)
|
||||||
|
.then(NpmciBuildDocker.testDockerfiles)
|
||||||
|
.then(done.resolve);
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUc3QixZQUFJLEdBQUcsVUFBQyxVQUFVO0lBQ3pCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsRUFBRSxDQUFBLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxDQUFBLENBQUM7UUFDdkIsVUFBVSxFQUFFO2FBQ1AsSUFBSSxDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osdUJBQU8sQ0FBQyxVQUFVLENBQUM7YUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDO2FBQ3JCLElBQUksQ0FBQztZQUNGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDOUMsaUJBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxlQUFlLEdBQUc7SUFDbEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELGlCQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxVQUFVLEdBQUc7SUFDYixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRTdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7YmFzaH0gZnJvbSBcIi4vbnBtY2kuYmFzaFwiO1xyXG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcclxuaW1wb3J0ICogYXMgZW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xyXG5cclxuZXhwb3J0IGxldCB0ZXN0ID0gKHZlcnNpb25BcmcpID0+IHtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBpZih2ZXJzaW9uQXJnID09IFwiZG9ja2VyXCIpe1xyXG4gICAgICAgIHRlc3REb2NrZXIoKVxyXG4gICAgICAgICAgICAudGhlbigoKT0+e1xyXG4gICAgICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBpbnN0YWxsKHZlcnNpb25BcmcpXHJcbiAgICAgICAgICAgIC50aGVuKG5wbURlcGVuZGVuY2llcylcclxuICAgICAgICAgICAgLnRoZW4oKCk9PntcclxuICAgICAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJub3cgc3RhcnRpbmcgdGVzdHM6XCIpO1xyXG4gICAgICAgICAgICAgICAgYmFzaChcIm5wbSB0ZXN0XCIpO1xyXG4gICAgICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuc3VjY2VzcyhcInRlc3QgZmluaXNoZWRcIik7XHJcbiAgICAgICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59XHJcblxyXG5sZXQgbnBtRGVwZW5kZW5jaWVzID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBwbHVnaW5zLmJlYXV0eWxvZy5pbmZvKFwibm93IGluc3RhbGxpbmcgZGVwZW5kZW5jaWVzOlwiKTtcclxuICAgIGJhc2goXCJucG0gaW5zdGFsbFwiKTtcclxuICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcclxufVxyXG5cclxubGV0IHRlc3REb2NrZXIgPSBmdW5jdGlvbigpe1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIFxyXG4gICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59XHJcblxyXG4iXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUV4QyxJQUFZLGdCQUFnQixXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFFOUMsWUFBSSxHQUFHLFVBQUMsVUFBVTtJQUN6QixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLEVBQUUsQ0FBQSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsQ0FBQSxDQUFDO1FBQ3ZCLFVBQVUsRUFBRTthQUNQLElBQUksQ0FBQztZQUNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLHVCQUFPLENBQUMsVUFBVSxDQUFDO2FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQzthQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ2IsSUFBSSxDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQTtBQUVELElBQUksZUFBZSxHQUFHO0lBQ2xCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUN2RCxpQkFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQTtBQUVELElBQUksT0FBTyxHQUFHO0lBQ1YsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlDLGlCQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxVQUFVLEdBQUc7SUFDYixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLGdCQUFnQixDQUFDLGVBQWUsRUFBRTtTQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUM7U0FDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztTQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7YmFzaH0gZnJvbSBcIi4vbnBtY2kuYmFzaFwiO1xyXG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcclxuaW1wb3J0ICogYXMgZW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xyXG5pbXBvcnQgKiBhcyBOcG1jaUJ1aWxkRG9ja2VyIGZyb20gXCIuL25wbWNpLmJ1aWxkLmRvY2tlclwiO1xyXG5cclxuZXhwb3J0IGxldCB0ZXN0ID0gKHZlcnNpb25BcmcpID0+IHtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBpZih2ZXJzaW9uQXJnID09IFwiZG9ja2VyXCIpe1xyXG4gICAgICAgIHRlc3REb2NrZXIoKVxyXG4gICAgICAgICAgICAudGhlbigoKT0+e1xyXG4gICAgICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBpbnN0YWxsKHZlcnNpb25BcmcpXHJcbiAgICAgICAgICAgIC50aGVuKG5wbURlcGVuZGVuY2llcylcclxuICAgICAgICAgICAgLnRoZW4obnBtVGVzdClcclxuICAgICAgICAgICAgLnRoZW4oKCk9PntcclxuICAgICAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn1cclxuXHJcbmxldCBucG1EZXBlbmRlbmNpZXMgPSBmdW5jdGlvbigpe1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIHBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJub3cgaW5zdGFsbGluZyBkZXBlbmRlbmNpZXM6XCIpO1xyXG4gICAgYmFzaChcIm5wbSBpbnN0YWxsXCIpO1xyXG4gICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59XHJcblxyXG5sZXQgbnBtVGVzdCA9ICgpID0+IHtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBwbHVnaW5zLmJlYXV0eWxvZy5pbmZvKFwibm93IHN0YXJ0aW5nIHRlc3RzOlwiKTtcclxuICAgIGJhc2goXCJucG0gdGVzdFwiKTtcclxuICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcclxufVxyXG5cclxubGV0IHRlc3REb2NrZXIgPSBmdW5jdGlvbigpe1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIE5wbWNpQnVpbGREb2NrZXIucmVhZERvY2tlcmZpbGVzKClcclxuICAgICAgICAudGhlbihOcG1jaUJ1aWxkRG9ja2VyLnB1bGxEb2NrZXJmaWxlSW1hZ2VzKVxyXG4gICAgICAgIC50aGVuKE5wbWNpQnVpbGREb2NrZXIudGVzdERvY2tlcmZpbGVzKVxyXG4gICAgICAgIC50aGVuKGRvbmUucmVzb2x2ZSlcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn1cclxuXHJcbiJdfQ==
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "npmci",
|
"name": "npmci",
|
||||||
"version": "2.1.27",
|
"version": "2.1.43",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/npmci#README",
|
"homepage": "https://gitlab.com/pushrocks/npmci#README",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"npmts": "^5.2.1",
|
"npmts": "^5.2.5",
|
||||||
"should": "^9.0.0",
|
"should": "^9.0.0",
|
||||||
"typings-test": "^1.0.1"
|
"typings-test": "^1.0.1"
|
||||||
},
|
},
|
||||||
|
|||||||
2
test/assets/test/test_latest.sh
Executable file
2
test/assets/test/test_latest.sh
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
npm -v
|
||||||
|
node -v
|
||||||
13
test/test.js
13
test/test.js
File diff suppressed because one or more lines are too long
@@ -59,7 +59,7 @@ describe("NPMCI",function(){
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe(".test.npm",function(){
|
describe(".test.npm",function(){
|
||||||
it("should source nvm using bash and install a specific node version",function(done){
|
it("should source nvm using bash and install a specific node version, then test it",function(done){
|
||||||
NpmciTest.test("legacy")
|
NpmciTest.test("legacy")
|
||||||
.then(() => {
|
.then(() => {
|
||||||
return NpmciTest.test("lts");
|
return NpmciTest.test("lts");
|
||||||
@@ -68,8 +68,13 @@ describe("NPMCI",function(){
|
|||||||
return NpmciTest.test("stable");
|
return NpmciTest.test("stable");
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
return NpmciTest.test("docker");
|
done();
|
||||||
|
});
|
||||||
})
|
})
|
||||||
|
});
|
||||||
|
describe("test.docker",function(){
|
||||||
|
it("should test dockerfiles",function(done){
|
||||||
|
NpmciTest.test("docker")
|
||||||
.then(() => {
|
.then(() => {
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,27 +1,38 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
import * as plugins from "./npmci.plugins";
|
import * as plugins from "./npmci.plugins";
|
||||||
export let bash = (commandArg) => {
|
|
||||||
|
export let bash = (commandArg:string,retryArg = 2,bareArg = false) => {
|
||||||
|
let exitCode:number;
|
||||||
|
let stdOut:string;
|
||||||
|
let execResult;
|
||||||
if(!process.env.NPMTS_TEST){
|
if(!process.env.NPMTS_TEST){
|
||||||
let exitCode = plugins.shelljs.exec(
|
for (let i = 0; i <= retryArg; i++){
|
||||||
|
if(!bareArg){
|
||||||
|
execResult = plugins.shelljs.exec(
|
||||||
"bash -c \"source /usr/local/nvm/nvm.sh &&" +
|
"bash -c \"source /usr/local/nvm/nvm.sh &&" +
|
||||||
commandArg +
|
commandArg +
|
||||||
"\""
|
"\""
|
||||||
).code;
|
);
|
||||||
if(exitCode !== 0){
|
} else {
|
||||||
|
execResult = plugins.shelljs.exec(commandArg);
|
||||||
|
}
|
||||||
|
exitCode = execResult.code;
|
||||||
|
stdOut = execResult.stdout;
|
||||||
|
if(exitCode !== 0 && i == retryArg){
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
|
} else if(exitCode == 0){
|
||||||
|
i = retryArg + 1; // if everything works out ok retrials are not wanted
|
||||||
|
} else {
|
||||||
|
plugins.beautylog.warn("Something went wrong! Exit Code: " + exitCode.toString());
|
||||||
|
plugins.beautylog.info("Retry " + (i + 1).toString() + " of " + retryArg.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
plugins.beautylog.log("ShellExec would be: " + commandArg.blue)
|
plugins.beautylog.log("ShellExec would be: " + commandArg.blue)
|
||||||
}
|
}
|
||||||
|
return stdOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
export let bashBare = (commandArg) => {
|
export let bashBare = (commandArg,retryArg = 2) => {
|
||||||
if (!process.env.NPMTS_TEST){
|
return bash(commandArg,retryArg,true);
|
||||||
let exitCode = plugins.shelljs.exec(commandArg).code;
|
|
||||||
if(exitCode !== 0){
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
plugins.beautylog.log("ShellExec would be: " + commandArg.blue)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
import * as plugins from "./npmci.plugins"
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import * as paths from "./npmci.paths";
|
||||||
import * as NpmciEnv from "./npmci.env";
|
import * as NpmciEnv from "./npmci.env";
|
||||||
import {bashBare} from "./npmci.bash";
|
import {bashBare} from "./npmci.bash";
|
||||||
|
|
||||||
export let build = function(){
|
export let build = function(){
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
readDockerfiles()
|
readDockerfiles()
|
||||||
@@ -34,15 +36,15 @@ export let readDockerfiles = function(){
|
|||||||
export let sortDockerfiles = function(sortableArrayArg:Dockerfile[]){
|
export let sortDockerfiles = function(sortableArrayArg:Dockerfile[]){
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
let sortedArray:Dockerfile[] = [];
|
let sortedArray:Dockerfile[] = [];
|
||||||
let trackingArray:Dockerfile[] = [];
|
let cleanTagsOriginal = cleanTagsArrayFunction(sortableArrayArg,sortedArray);
|
||||||
let sorterFunctionCounter:number = 0;
|
let sorterFunctionCounter:number = 0;
|
||||||
let sorterFunction = function(){
|
let sorterFunction = function(){
|
||||||
sortableArrayArg.forEach((dockerfileArg)=>{
|
sortableArrayArg.forEach((dockerfileArg)=>{
|
||||||
let cleanTags = cleanTagsArrayFunction(sortableArrayArg,trackingArray);
|
let cleanTags = cleanTagsArrayFunction(sortableArrayArg,sortedArray);
|
||||||
if(cleanTags.indexOf(dockerfileArg.baseImage) == -1 && trackingArray.indexOf(dockerfileArg) == -1){
|
if(cleanTags.indexOf(dockerfileArg.baseImage) == -1 && sortedArray.indexOf(dockerfileArg) == -1){
|
||||||
sortedArray.push(dockerfileArg);
|
sortedArray.push(dockerfileArg);
|
||||||
trackingArray.push(dockerfileArg);
|
};
|
||||||
} else if(cleanTags.indexOf(dockerfileArg.baseImage) != -1){
|
if(cleanTagsOriginal.indexOf(dockerfileArg.baseImage) != -1){
|
||||||
dockerfileArg.localBaseImageDependent = true;
|
dockerfileArg.localBaseImageDependent = true;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@@ -61,7 +63,6 @@ export let mapDockerfiles = function(sortedArray:Dockerfile[]){
|
|||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
sortedArray.forEach((dockerfileArg) => {
|
sortedArray.forEach((dockerfileArg) => {
|
||||||
if(dockerfileArg.localBaseImageDependent){
|
if(dockerfileArg.localBaseImageDependent){
|
||||||
let dockerfileDependency:Dockerfile;
|
|
||||||
sortedArray.forEach((dockfile2:Dockerfile) => {
|
sortedArray.forEach((dockfile2:Dockerfile) => {
|
||||||
if(dockfile2.cleanTag == dockerfileArg.baseImage){
|
if(dockfile2.cleanTag == dockerfileArg.baseImage){
|
||||||
dockerfileArg.localBaseDockerfile = dockfile2;
|
dockerfileArg.localBaseDockerfile = dockfile2;
|
||||||
@@ -73,7 +74,7 @@ export let mapDockerfiles = function(sortedArray:Dockerfile[]){
|
|||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
export let buildDockerfiles = function(sortedArrayArg:Dockerfile[]){
|
export let buildDockerfiles = (sortedArrayArg:Dockerfile[]) => {
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
sortedArrayArg.forEach(function(dockerfileArg){
|
sortedArrayArg.forEach(function(dockerfileArg){
|
||||||
dockerfileArg.build();
|
dockerfileArg.build();
|
||||||
@@ -91,12 +92,41 @@ export let pushDockerfiles = function(sortedArrayArg:Dockerfile[]){
|
|||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export let pullDockerfileImages = (sortableArrayArg:Dockerfile[]) => {
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
sortableArrayArg.forEach((dockerfileArg) => {
|
||||||
|
dockerfileArg.pull();
|
||||||
|
});
|
||||||
|
done.resolve(sortableArrayArg);
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
export let testDockerfiles = (sortedArrayArg:Dockerfile[]) => {
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
sortedArrayArg.forEach(function(dockerfileArg){
|
||||||
|
dockerfileArg.test();
|
||||||
|
});
|
||||||
|
done.resolve(sortedArrayArg);
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
export let releaseDockerfiles = (sortedArrayArg:Dockerfile[]) => {
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
sortedArrayArg.forEach(function(dockerfileArg){
|
||||||
|
dockerfileArg.release();
|
||||||
|
});
|
||||||
|
done.resolve(sortedArrayArg);
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
export class Dockerfile {
|
export class Dockerfile {
|
||||||
filePath:string;
|
filePath:string;
|
||||||
repo:string;
|
repo:string;
|
||||||
version:string;
|
version:string;
|
||||||
cleanTag:string;
|
cleanTag:string;
|
||||||
buildTag:string;
|
buildTag:string;
|
||||||
|
releaseTag:string;
|
||||||
|
containerName:string
|
||||||
content:string;
|
content:string;
|
||||||
patchedContent:string;
|
patchedContent:string;
|
||||||
baseImage:string;
|
baseImage:string;
|
||||||
@@ -107,6 +137,9 @@ export class Dockerfile {
|
|||||||
this.repo = NpmciEnv.repo.user + "/" + NpmciEnv.repo.repo;
|
this.repo = NpmciEnv.repo.user + "/" + NpmciEnv.repo.repo;
|
||||||
this.version = dockerFileVersion(plugins.path.parse(options.filePath).base);
|
this.version = dockerFileVersion(plugins.path.parse(options.filePath).base);
|
||||||
this.cleanTag = this.repo + ":" + this.version;
|
this.cleanTag = this.repo + ":" + this.version;
|
||||||
|
this.buildTag = dockerTag(this.repo,this.version,"build");
|
||||||
|
this.releaseTag = dockerTag(this.repo,this.version,"release");
|
||||||
|
this.containerName = "dockerfile-" + this.version;
|
||||||
if(options.filePath && options.read){
|
if(options.filePath && options.read){
|
||||||
this.content = plugins.smartfile.local.toStringSync(plugins.path.resolve(options.filePath));
|
this.content = plugins.smartfile.local.toStringSync(plugins.path.resolve(options.filePath));
|
||||||
};
|
};
|
||||||
@@ -114,30 +147,79 @@ export class Dockerfile {
|
|||||||
this.localBaseImageDependent = false;
|
this.localBaseImageDependent = false;
|
||||||
};
|
};
|
||||||
build(){
|
build(){
|
||||||
if(!this.buildTag){
|
plugins.beautylog.info("now building Dockerfile for " + this.cleanTag);
|
||||||
|
let done = plugins.q.defer();
|
||||||
this.patchContents();
|
this.patchContents();
|
||||||
let tag = dockerTag(this.repo,this.version);
|
bashBare("docker build -t " + this.buildTag + " -f " + this.filePath + " .");
|
||||||
bashBare("docker build -t " + tag + " -f " + this.filePath + " .");
|
|
||||||
this.buildTag = tag;
|
|
||||||
NpmciEnv.dockerFilesBuilt.push(this);
|
NpmciEnv.dockerFilesBuilt.push(this);
|
||||||
this.restoreContents();
|
this.restoreContents();
|
||||||
} else {
|
done.resolve();
|
||||||
plugins.beautylog.error("This Dockerfile has already been built!");
|
return done.promise;
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
push(){
|
push(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
if(this.buildTag){
|
if(this.buildTag){
|
||||||
bashBare("docker push " + this.buildTag);
|
bashBare("docker push " + this.buildTag);
|
||||||
} else {
|
} else {
|
||||||
plugins.beautylog.error("Dockerfile hasn't been built yet!");
|
plugins.beautylog.error("Dockerfile hasn't been built yet!");
|
||||||
}
|
}
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
}
|
}
|
||||||
|
pull(){
|
||||||
|
bashBare("docker pull " + this.buildTag);
|
||||||
|
};
|
||||||
|
test(){
|
||||||
|
let testFile:string = plugins.path.join(paths.NpmciTestDir,"test_" + this.version + ".sh");
|
||||||
|
let testFileExists:boolean = plugins.smartfile.checks.fileExistsSync(testFile);
|
||||||
|
if(testFileExists){
|
||||||
|
bashBare("docker run --name npmci_test_container " + this.buildTag + " mkdir /npmci_test");
|
||||||
|
bashBare("docker cp " + testFile + " npmci_test_container:/npmci_test/test.sh");
|
||||||
|
bashBare("docker commit npmci_test_container npmci_test_image");
|
||||||
|
bashBare("docker run npmci_test_image sh /npmci_test/test.sh");
|
||||||
|
bashBare("docker rm npmci_test_container");
|
||||||
|
bashBare("docker rmi --force npmci_test_image");
|
||||||
|
} else {
|
||||||
|
plugins.beautylog.warn("skipping tests for " + this.cleanTag + " because no testfile was found!");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
release(){
|
||||||
|
bashBare("docker tag " + this.getId() + " " + this.releaseTag);
|
||||||
|
bashBare("docker push " + this.releaseTag);
|
||||||
|
}
|
||||||
|
getId(){
|
||||||
|
let containerId = bashBare("docker inspect --type=image --format=\"{{.Id}}\" " + this.buildTag);
|
||||||
|
return containerId;
|
||||||
|
};
|
||||||
patchContents(){
|
patchContents(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
if(this.localBaseImageDependent == true){
|
||||||
|
plugins.beautylog.info("patching Dockerfile due to local build dependency!");
|
||||||
|
this.patchedContent = this.content.replace(/FROM\s[a-zA-Z0-9\/\-\:]*/, 'FROM ' + this.localBaseDockerfile.buildTag);
|
||||||
|
plugins.smartfile.memory.toFsSync(
|
||||||
|
this.patchedContent,
|
||||||
|
{
|
||||||
|
fileName:plugins.path.parse(this.filePath).name,
|
||||||
|
filePath:plugins.path.parse(this.filePath).dir
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
};
|
};
|
||||||
restoreContents(){
|
restoreContents(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
if(this.localBaseImageDependent == true){
|
||||||
|
plugins.smartfile.memory.toFsSync(
|
||||||
|
this.content,
|
||||||
|
{
|
||||||
|
fileName:plugins.path.parse(this.filePath).name,
|
||||||
|
filePath:plugins.path.parse(this.filePath).dir
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,15 +241,15 @@ export let dockerBaseImage = function(dockerfileContentArg:string){
|
|||||||
return regexResultArray[1];
|
return regexResultArray[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
export let dockerTag = function(repoArg:string,versionArg:string):string{
|
export let dockerTag = function(repoArg:string,versionArg:string,stageArg:string):string{
|
||||||
let tagString:string;
|
let tagString:string;
|
||||||
let registry = NpmciEnv.dockerRegistry;
|
let registry = NpmciEnv.dockerRegistry;
|
||||||
if(process.env.CI_BUILD_STAGE == "build" || process.env.CI_BUILD_STAGE == "test"){
|
if(stageArg == "build" || stageArg == "test"){
|
||||||
registry = "registry.gitlab.com";
|
registry = "registry.gitlab.com";
|
||||||
}
|
}
|
||||||
let repo = repoArg;
|
let repo = repoArg;
|
||||||
let version = versionArg;
|
let version = versionArg;
|
||||||
if(process.env.CI_BUILD_STAGE == "build" || process.env.CI_BUILD_STAGE == "test"){
|
if(NpmciEnv.buildStage == "build" || NpmciEnv.buildStage == "test"){
|
||||||
version = version + "_test";
|
version = version + "_test";
|
||||||
}
|
}
|
||||||
tagString = registry + "/" + repo + ":" + version;
|
tagString = registry + "/" + repo + ":" + version;
|
||||||
|
|||||||
@@ -1,13 +1,41 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
import * as plugins from "./npmci.plugins";
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import * as paths from "./npmci.paths";
|
||||||
import {GitRepo} from "smartstring";
|
import {GitRepo} from "smartstring";
|
||||||
import {Dockerfile} from "./npmci.build.docker"
|
import {Dockerfile} from "./npmci.build.docker"
|
||||||
|
|
||||||
export let repo = new GitRepo(process.env.CI_BUILD_REPO);
|
export let repo:GitRepo = new GitRepo(process.env.CI_BUILD_REPO);
|
||||||
export let dockerTestTag:string;
|
|
||||||
export let dockerReleaseTag:string;
|
|
||||||
|
|
||||||
|
export let buildStage:string = process.env.CI_BUILD_STAGE;
|
||||||
|
|
||||||
|
// handling config between commands
|
||||||
export let dockerRegistry; // will be set by npmci.prepare
|
export let dockerRegistry; // will be set by npmci.prepare
|
||||||
export let dockerFilesBuilt:Dockerfile[] = [];
|
export let dockerFilesBuilt:Dockerfile[] = [];
|
||||||
export let dockerFiles:Dockerfile[] = [];
|
export let dockerFiles:Dockerfile[] = [];
|
||||||
|
|
||||||
|
export let config;
|
||||||
|
|
||||||
|
export let configStore = () => {
|
||||||
|
plugins.smartfile.memory.toFsSync(
|
||||||
|
JSON.stringify(config),
|
||||||
|
{
|
||||||
|
fileName:"config.json",
|
||||||
|
filePath:paths.NpmciPackageRoot
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export let configLoad = () => {
|
||||||
|
try {
|
||||||
|
config = plugins.smartfile.local.toObjectSync(paths.NpmciPackageConfig,"json");
|
||||||
|
}
|
||||||
|
catch(err){
|
||||||
|
config = {};
|
||||||
|
configStore();
|
||||||
|
plugins.beautylog.log("config inititialized!");
|
||||||
|
}
|
||||||
|
|
||||||
|
config.dockerRegistry ? dockerRegistry = config.dockerRegistry : void(0);
|
||||||
|
config.dockerFilesBuilt ? dockerFilesBuilt = config.dockerFilesBuilt : void(0);
|
||||||
|
}
|
||||||
|
configLoad();
|
||||||
9
ts/npmci.paths.ts
Normal file
9
ts/npmci.paths.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
|
||||||
|
export let cwd = process.cwd();
|
||||||
|
|
||||||
|
export let NpmciPackageRoot = plugins.path.join(__dirname,"../");
|
||||||
|
export let NpmciPackageConfig = plugins.path.join(NpmciPackageRoot,"./config.json");
|
||||||
|
export let NpmciProjectDir = cwd;
|
||||||
|
export let NpmciTestDir = plugins.path.join(cwd,"./test");
|
||||||
@@ -29,6 +29,7 @@ let docker = function(){
|
|||||||
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");
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + process.env.CI_BUILD_TOKEN + " " + "registry.gitlab.com"); // Always also login to GitLab Registry
|
||||||
let dockerRegexResultArray = dockerRegex.exec(process.env.NPMCI_LOGIN_DOCKER);
|
let dockerRegexResultArray = dockerRegex.exec(process.env.NPMCI_LOGIN_DOCKER);
|
||||||
let username = dockerRegexResultArray[1];
|
let username = dockerRegexResultArray[1];
|
||||||
let password = dockerRegexResultArray[2];
|
let password = dockerRegexResultArray[2];
|
||||||
@@ -40,8 +41,7 @@ let docker = function(){
|
|||||||
let dockerGitlab = function(){
|
let dockerGitlab = function(){
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
env.dockerRegistry = "registry.gitlab.com";
|
env.dockerRegistry = "registry.gitlab.com";
|
||||||
let ciBuildToken = process.env.CI_BUILD_TOKEN
|
plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + process.env.CI_BUILD_TOKEN + " " + "registry.gitlab.com");
|
||||||
plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + ciBuildToken + " " + env.dockerRegistry);
|
|
||||||
done.resolve();
|
done.resolve();
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
@@ -51,8 +51,7 @@ export let prepare = function(serviceArg:string){
|
|||||||
case "npm":
|
case "npm":
|
||||||
return npm();
|
return npm();
|
||||||
case "docker":
|
case "docker":
|
||||||
return docker()
|
return docker();
|
||||||
.then(dockerGitlab); // always also login to gitlab registry for tests
|
|
||||||
case "docker-gitlab":
|
case "docker-gitlab":
|
||||||
return dockerGitlab()
|
return dockerGitlab()
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import * as plugins from "./npmci.plugins";
|
|||||||
import {prepare} from "./npmci.prepare";
|
import {prepare} from "./npmci.prepare";
|
||||||
import {bash} from "./npmci.bash";
|
import {bash} from "./npmci.bash";
|
||||||
import * as NpmciEnv from "./npmci.env";
|
import * as NpmciEnv from "./npmci.env";
|
||||||
|
import * as NpmciBuildDocker from "./npmci.build.docker"
|
||||||
|
|
||||||
export let publish = (serviceArg:string = "npm") => {
|
export let publish = (serviceArg:string = "npm") => {
|
||||||
switch (serviceArg){
|
switch (serviceArg){
|
||||||
@@ -26,18 +27,9 @@ let publishNpm = function(){
|
|||||||
|
|
||||||
let publishDocker = function(){
|
let publishDocker = function(){
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
NpmciEnv.dockerFilesBuilt.forEach(function(dockerfileArg){
|
NpmciBuildDocker.readDockerfiles()
|
||||||
dockerfileArg.push();
|
.then(NpmciBuildDocker.pullDockerfileImages)
|
||||||
});
|
.then(NpmciBuildDocker.releaseDockerfiles)
|
||||||
done.resolve();
|
.then(done.resolve);
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
let publishDockerTest = function(){
|
|
||||||
let done = plugins.q.defer();
|
|
||||||
NpmciEnv.dockerFilesBuilt.forEach(function(dockerfileArg){
|
|
||||||
dockerfileArg.push();
|
|
||||||
});
|
|
||||||
done.resolve();
|
|
||||||
return done.promise;
|
|
||||||
}
|
|
||||||
8
ts/npmci.test.docker.ts
Normal file
8
ts/npmci.test.docker.ts
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import * as plugins from "./npmci.plugins"
|
||||||
|
import * as NpmciEnv from "./npmci.env";
|
||||||
|
import {bashBare} from "./npmci.bash";
|
||||||
|
import * as NpmciBuildDocker from "./npmci.build.docker";
|
||||||
|
|
||||||
|
export let testDocker = () => {
|
||||||
|
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import * as plugins from "./npmci.plugins";
|
|||||||
import {bash} from "./npmci.bash";
|
import {bash} from "./npmci.bash";
|
||||||
import {install} from "./npmci.install";
|
import {install} from "./npmci.install";
|
||||||
import * as env from "./npmci.env";
|
import * as env from "./npmci.env";
|
||||||
|
import * as NpmciBuildDocker from "./npmci.build.docker";
|
||||||
|
|
||||||
export let test = (versionArg) => {
|
export let test = (versionArg) => {
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
@@ -14,10 +15,8 @@ export let test = (versionArg) => {
|
|||||||
} else {
|
} else {
|
||||||
install(versionArg)
|
install(versionArg)
|
||||||
.then(npmDependencies)
|
.then(npmDependencies)
|
||||||
|
.then(npmTest)
|
||||||
.then(()=>{
|
.then(()=>{
|
||||||
plugins.beautylog.info("now starting tests:");
|
|
||||||
bash("npm test");
|
|
||||||
plugins.beautylog.success("test finished");
|
|
||||||
done.resolve();
|
done.resolve();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -32,10 +31,20 @@ let npmDependencies = function(){
|
|||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
let testDocker = function(){
|
let npmTest = () => {
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now starting tests:");
|
||||||
|
bash("npm test");
|
||||||
done.resolve();
|
done.resolve();
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let testDocker = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
NpmciBuildDocker.readDockerfiles()
|
||||||
|
.then(NpmciBuildDocker.pullDockerfileImages)
|
||||||
|
.then(NpmciBuildDocker.testDockerfiles)
|
||||||
|
.then(done.resolve)
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user