Compare commits
129 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d7bfaa75e1 | |||
| 3867000d0f | |||
| 7ecb30cf0a | |||
| b45b0ea6ed | |||
| edf7b268ab | |||
| 2af2a71471 | |||
| 45e41500bc | |||
| a4d66744be | |||
| c0d0e5154a | |||
| e92d421bae | |||
| 2f827a7696 | |||
| 11c0341c76 | |||
| 4bc86ad7b8 | |||
| cebcfc9fc5 | |||
| ba047ed586 | |||
| 215d0b97bb | |||
| b1e873afa8 | |||
| 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 | |||
| 2ae6fad2a1 | |||
| d3dcc2f8ab | |||
| c718593162 | |||
| c9ba850b4b | |||
| faef4da6be | |||
| 3300f177ca | |||
| b2d56e59bb | |||
| ee54cbf78d | |||
| e3c1ac1897 | |||
| ea01b87949 | |||
| 229c3ae27b | |||
| 19e3aa3721 | |||
| a965cf38c8 | |||
| 7924ba26a2 | |||
| 361d45e086 | |||
| cb7cb852ea | |||
| 61720f47be | |||
| b435fc6bdf | |||
| 70ad41ab86 | |||
| d67109b4bc | |||
| a29e04f9e3 | |||
| 9634ca3b4d | |||
| d2e7488868 | |||
| bb44333d70 | |||
| 87f6adeda4 | |||
| 6334396bfc | |||
| 7a33252f2f | |||
| b7068b7b53 | |||
| 1e5b56a388 | |||
| 786de4ae18 | |||
| 62ee8a26a4 | |||
| f544aef054 | |||
| cb6867dbde | |||
| 5316740a1a | |||
| 06bc1e59f8 | |||
| bd237ccdab | |||
| f51b556fca | |||
| 9ce29a7c24 | |||
| 8dade860f5 | |||
| 9d4c8ce68b | |||
| 5917c63836 | |||
| af2c4b04cd | |||
| deae50007e | |||
| 9ddf28f90a | |||
| 4321ae3dab | |||
| 1c7542c970 | |||
| 839dac1fe8 | |||
| 9c7afba849 | |||
| 6b72652c7a | |||
| 51334c297d | |||
| a38996b98c | |||
| ab62b979bd | |||
| dd142856d0 | |||
| c826ba3d5f | |||
| c75e2b2e06 | |||
| 04a5b15668 | |||
| a87fc98eb8 | |||
| 9d092aa280 | |||
| 7ca6578443 | |||
| 6d5865427e | |||
| 9595a82dc5 | |||
| 125f96edc4 | |||
| f1244c33dc | |||
| dfe829541e |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
coverage/
|
coverage/
|
||||||
docs/
|
docs/
|
||||||
|
config.json
|
||||||
@@ -1,10 +1,14 @@
|
|||||||
image: hosttoday/ht-docker-node:latest
|
image: hosttoday/ht-docker-node:lts
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
- release
|
- release
|
||||||
- trigger
|
- trigger
|
||||||
|
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- npm install -g npmci
|
||||||
|
|
||||||
testLTS:
|
testLTS:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
@@ -12,10 +16,6 @@ testLTS:
|
|||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
before_script:
|
|
||||||
- npm uninstall -g npmci
|
|
||||||
- npm install -g npmci
|
|
||||||
|
|
||||||
testSTABLE:
|
testSTABLE:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
|
|||||||
@@ -1,2 +1,5 @@
|
|||||||
docs/
|
docs/
|
||||||
coverage/
|
coverage/
|
||||||
|
test/
|
||||||
|
node_modules/
|
||||||
|
config.json
|
||||||
38
README.md
38
README.md
@@ -1,31 +1,53 @@
|
|||||||
# NPMCI
|
# NPMCI
|
||||||
npmci is your friend when it comes to handling npm packages during CI builds.
|
npmci is your friend when it comes to handling npm packages during CI builds. It is optimized for GitLab CI
|
||||||
|
|
||||||
## 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:
|
||||||
|
|
||||||
Docker Hub:
|
Docker Hub:
|
||||||
|
|
||||||
* [hosttoday/ht-docker-node](https://hub.docker.com/r/hosttoday/ht-docker-node/)
|
* [hosttoday/ht-docker-node:npmci](https://hub.docker.com/r/hosttoday/ht-docker-node/)
|
||||||
has LTS node version preinstalled. Change it with npmci
|
has LTS node version and npmci preinstalled.
|
||||||
* [hosttoday/ht-docker-node-python-3](https://hub.docker.com/r/hosttoday/ht-docker-node-python3/)
|
* [hosttoday/ht-docker-dbase](https://hub.docker.com/r/hosttoday/ht-docker-dbase/)
|
||||||
like ht-docker-node, but with python3 instead of python2.7
|
based on docker:git, can be used to build docker images in conjunction with docker:dind
|
||||||
|
|
||||||
npmci can be called from commandline:
|
npmci can be called from commandline:
|
||||||
```shell
|
```shell
|
||||||
# Install any node version:
|
# Install any node version:
|
||||||
npmci install lts # will install latest LTS node version and update PATH for node and npm versions
|
npmci install lts # will install latest LTS node version and update PATH for node and npm versions
|
||||||
npmci install stable # will install latest stable node version and update PAth for node and npm
|
npmci install stable # will install latest stable node version and update PATH for node and npm
|
||||||
|
npmci install legacy # will install latest legacy node version and update PATH for node and npm
|
||||||
npmci install x.x.x # will install any specific node version.
|
npmci install x.x.x # will install any specific node version.
|
||||||
|
|
||||||
# Install any node version, install dependencies and run test in cwd:
|
# Install any node version, install dependencies and run test in cwd:
|
||||||
npmci test lts # will install latest lts node version and run "npm install" and "npm test".
|
npmci test lts # will install latest lts node version and run "npm install" and "npm test".
|
||||||
|
npmci test stable # will install latest stable node version and run "npm install" and "npm test".
|
||||||
|
npmci test legacy # will install latest legacy node version and run "npm install" and "npm test".
|
||||||
|
npmci test x.x.x # will install any specific node version and run "npm install" and "npm test".
|
||||||
|
npmci test docker # will test any build image with tests defined in ./npmci/dockertest_1.sh to ./npmci/dockertest_100.sh
|
||||||
|
## npmci test docker will look at all Dockerfiles and look for according tags on GitLab container registry
|
||||||
|
|
||||||
|
|
||||||
|
# prepare tools
|
||||||
|
npmci prepare npm # will look for $NPMCI_TOKEN_NPM env var and create .npmrc, so npm is authenticated
|
||||||
|
npmci prepare docker # will look for $NPMCI_LOGIN_DOCKER in form username|password and authenticate docker
|
||||||
|
npmci prepare docker-gitlab # will authenticate docker for gitlab container registry
|
||||||
|
|
||||||
|
# build containers
|
||||||
|
npmci build docker # will build containers
|
||||||
|
## all Dockerfiles named DOckerfile* are picked up.
|
||||||
|
## specify tags lake this Dockerfile_[tag]
|
||||||
|
## uploads all built images as [username]/[reponame]:[tag]_test to GitLab
|
||||||
|
## then test in next step with "npmci test docker"
|
||||||
|
|
||||||
# publish npm module
|
# publish npm module
|
||||||
npmci publish # will look vor $NPMCITOKEN env var and push any module in cwd to npm
|
npmci publish npm # will look vor $NPMCI_TOKEN_NPM env var and push any module in cwd to npm
|
||||||
|
npmci publish docker
|
||||||
|
|
||||||
|
# trigger webhooks
|
||||||
|
npmci trigger # will look for NPMCI_TRIGGER_1 to NPMCI_TRIGGER_100 in form domain|id|token|ref|name
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
3
dist/index.d.ts
vendored
3
dist/index.d.ts
vendored
@@ -1 +1,4 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
|
export { build } from "./npmci.build";
|
||||||
|
export { install } from "./npmci.install";
|
||||||
|
export { publish } from "./npmci.publish";
|
||||||
|
|||||||
32
dist/index.js
vendored
32
dist/index.js
vendored
@@ -2,14 +2,22 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
var plugins = require("./npmci.plugins");
|
var plugins = require("./npmci.plugins");
|
||||||
var packJson = require("../package.json");
|
var paths = require("./npmci.paths");
|
||||||
plugins.beautylog.info("npmci version: " + packJson.version);
|
var npmciInfo = new plugins.projectinfo.ProjectinfoNpm(paths.NpmciPackageRoot);
|
||||||
|
plugins.beautylog.log("npmci version: " + npmciInfo.version);
|
||||||
var npmci_build_1 = require("./npmci.build");
|
var npmci_build_1 = require("./npmci.build");
|
||||||
var npmci_install_1 = require("./npmci.install");
|
var npmci_install_1 = require("./npmci.install");
|
||||||
var npmci_publish_1 = require("./npmci.publish");
|
var npmci_publish_1 = require("./npmci.publish");
|
||||||
var npmci_prepare_1 = require("./npmci.prepare");
|
var npmci_prepare_1 = require("./npmci.prepare");
|
||||||
var npmci_test_1 = require("./npmci.test");
|
var npmci_test_1 = require("./npmci.test");
|
||||||
var npmci_trigger_1 = require("./npmci.trigger");
|
var npmci_trigger_1 = require("./npmci.trigger");
|
||||||
|
var NpmciEnv = require("./npmci.env");
|
||||||
|
var npmci_build_2 = require("./npmci.build");
|
||||||
|
exports.build = npmci_build_2.build;
|
||||||
|
var npmci_install_2 = require("./npmci.install");
|
||||||
|
exports.install = npmci_install_2.install;
|
||||||
|
var npmci_publish_2 = require("./npmci.publish");
|
||||||
|
exports.publish = npmci_publish_2.publish;
|
||||||
var command;
|
var command;
|
||||||
var commandOption;
|
var commandOption;
|
||||||
plugins.commander
|
plugins.commander
|
||||||
@@ -25,19 +33,27 @@ if (typeof command === 'undefined') {
|
|||||||
}
|
}
|
||||||
switch (command) {
|
switch (command) {
|
||||||
case "build":
|
case "build":
|
||||||
npmci_build_1.build("commandArg");
|
npmci_build_1.build(commandOption)
|
||||||
|
.then(NpmciEnv.configStore);
|
||||||
break;
|
break;
|
||||||
case "install":
|
case "install":
|
||||||
npmci_install_1.install(commandOption);
|
npmci_install_1.install(commandOption)
|
||||||
|
.then(NpmciEnv.configStore);
|
||||||
|
;
|
||||||
break;
|
break;
|
||||||
case "prepare":
|
case "prepare":
|
||||||
npmci_prepare_1.prepare(commandOption);
|
npmci_prepare_1.prepare(commandOption)
|
||||||
|
.then(NpmciEnv.configStore);
|
||||||
|
;
|
||||||
break;
|
break;
|
||||||
case "publish":
|
case "publish":
|
||||||
npmci_publish_1.publish(commandOption);
|
npmci_publish_1.publish(commandOption)
|
||||||
|
.then(NpmciEnv.configStore);
|
||||||
|
;
|
||||||
break;
|
break;
|
||||||
case "test":
|
case "test":
|
||||||
npmci_test_1.test(commandOption);
|
npmci_test_1.test(commandOption)
|
||||||
|
.then(NpmciEnv.configStore);
|
||||||
break;
|
break;
|
||||||
case "trigger":
|
case "trigger":
|
||||||
npmci_trigger_1.trigger();
|
npmci_trigger_1.trigger();
|
||||||
@@ -46,4 +62,4 @@ switch (command) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3hCLElBQVksT0FBTyxXQUFNLGlCQUFpQixDQUFDLENBQUE7QUFFM0MsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFMUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRTdELDRCQUFvQixlQUNwQixDQUFDLENBRGtDO0FBQ25DLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBRXhDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUd4QyxJQUFJLE9BQU8sQ0FBQztBQUNaLElBQUksYUFBYSxDQUFDO0FBRWxCLE9BQU8sQ0FBQyxTQUFTO0tBQ1osU0FBUyxDQUFDLGlDQUFpQyxDQUFDO0tBQzVDLE1BQU0sQ0FBQyxVQUFVLFVBQVUsRUFBRSxnQkFBZ0I7SUFDMUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUNyQixhQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFDckMsQ0FBQyxDQUFDLENBQUM7QUFFUCxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdEMsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQztJQUNiLEtBQUssT0FBTztRQUNSLG1CQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEIsS0FBSyxDQUFDO0lBQ1YsS0FBSyxTQUFTO1FBQ1YsdUJBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2QixLQUFLLENBQUM7SUFDVixLQUFLLFNBQVM7UUFDVix1QkFBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQztJQUNWLEtBQUssU0FBUztRQUNWLHVCQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkIsS0FBSyxDQUFDO0lBQ1YsS0FBSyxNQUFNO1FBQ1AsaUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQixLQUFLLENBQUM7SUFDVixLQUFLLFNBQVM7UUFDVix1QkFBTyxFQUFFLENBQUM7UUFDVixLQUFLLENBQUM7SUFDVjtRQUNJLEtBQUssQ0FBQztBQUNkLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXHJcbmltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5cclxubGV0IHBhY2tKc29uID0gcmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKTtcclxuXHJcbnBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJucG1jaSB2ZXJzaW9uOiBcIiArIHBhY2tKc29uLnZlcnNpb24pO1xyXG5cclxuaW1wb3J0IHtidWlsZH0gZnJvbSBcIi4vbnBtY2kuYnVpbGRcIlxyXG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcclxuaW1wb3J0IHtwdWJsaXNofSBmcm9tIFwiLi9ucG1jaS5wdWJsaXNoXCI7XHJcbmltcG9ydCB7cHJlcGFyZX0gZnJvbSBcIi4vbnBtY2kucHJlcGFyZVwiO1xyXG5pbXBvcnQge3RhZywgcmV0YWd9IGZyb20gXCIuL25wbWNpLnRhZ1wiO1xyXG5pbXBvcnQge3Rlc3R9IGZyb20gXCIuL25wbWNpLnRlc3RcIjtcclxuaW1wb3J0IHt0cmlnZ2VyfSBmcm9tIFwiLi9ucG1jaS50cmlnZ2VyXCI7XHJcblxyXG5cclxubGV0IGNvbW1hbmQ7XHJcbmxldCBjb21tYW5kT3B0aW9uO1xyXG5cclxucGx1Z2lucy5jb21tYW5kZXJcclxuICAgIC5hcmd1bWVudHMoJzxjb21tYW5kYXJnPiBbY29tbWFuZG9wdGlvbmFyZ10nKVxyXG4gICAgLmFjdGlvbihmdW5jdGlvbiAoY29tbWFuZGFyZywgY29tbWFuZG9wdGlvbmFyZykge1xyXG4gICAgICAgIGNvbW1hbmQgPSBjb21tYW5kYXJnO1xyXG4gICAgICAgIGNvbW1hbmRPcHRpb24gPSBjb21tYW5kb3B0aW9uYXJnO1xyXG4gICAgfSk7XHJcbiBcclxucGx1Z2lucy5jb21tYW5kZXIucGFyc2UocHJvY2Vzcy5hcmd2KTtcclxuIFxyXG5pZiAodHlwZW9mIGNvbW1hbmQgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdubyBjb21tYW5kIGdpdmVuIScpO1xyXG4gICAgcHJvY2Vzcy5leGl0KDEpO1xyXG59XHJcblxyXG5zd2l0Y2ggKGNvbW1hbmQpe1xyXG4gICAgY2FzZSBcImJ1aWxkXCI6XHJcbiAgICAgICAgYnVpbGQoXCJjb21tYW5kQXJnXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcImluc3RhbGxcIjpcclxuICAgICAgICBpbnN0YWxsKGNvbW1hbmRPcHRpb24pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcInByZXBhcmVcIjpcclxuICAgICAgICBwcmVwYXJlKGNvbW1hbmRPcHRpb24pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcInB1Ymxpc2hcIjpcclxuICAgICAgICBwdWJsaXNoKGNvbW1hbmRPcHRpb24pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcInRlc3RcIjpcclxuICAgICAgICB0ZXN0KGNvbW1hbmRPcHRpb24pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcInRyaWdnZXJcIjpcclxuICAgICAgICB0cmlnZ2VyKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG59XHJcblxyXG4iXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3hCLElBQVksT0FBTyxXQUFNLGlCQUFpQixDQUFDLENBQUE7QUFDM0MsSUFBWSxLQUFLLFdBQU0sZUFBZSxDQUFDLENBQUE7QUFDdkMsSUFBSSxTQUFTLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUMvRSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFN0QsNEJBQW9CLGVBQ3BCLENBQUMsQ0FEa0M7QUFDbkMsOEJBQXNCLGlCQUFpQixDQUFDLENBQUE7QUFDeEMsOEJBQXNCLGlCQUFpQixDQUFDLENBQUE7QUFDeEMsOEJBQXNCLGlCQUFpQixDQUFDLENBQUE7QUFFeEMsMkJBQW1CLGNBQWMsQ0FBQyxDQUFBO0FBQ2xDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLElBQVksUUFBUSxXQUFNLGFBQWEsQ0FBQyxDQUFBO0FBRXhDLDRCQUFvQixlQUNwQixDQUFDO0FBRE8sb0NBQTJCO0FBQ25DLDhCQUFzQixpQkFBaUIsQ0FBQztBQUFoQywwQ0FBZ0M7QUFDeEMsOEJBQXNCLGlCQUFpQixDQUFDO0FBQWhDLDBDQUFnQztBQUV4QyxJQUFJLE9BQU8sQ0FBQztBQUNaLElBQUksYUFBYSxDQUFDO0FBRWxCLE9BQU8sQ0FBQyxTQUFTO0tBQ1osU0FBUyxDQUFDLGlDQUFpQyxDQUFDO0tBQzVDLE1BQU0sQ0FBQyxVQUFVLFVBQVUsRUFBRSxnQkFBZ0I7SUFDMUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUNyQixhQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFDckMsQ0FBQyxDQUFDLENBQUM7QUFFUCxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdEMsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQztJQUNiLEtBQUssT0FBTztRQUNSLG1CQUFLLENBQUMsYUFBYSxDQUFDO2FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoQyxLQUFLLENBQUM7SUFDVixLQUFLLFNBQVM7UUFDVix1QkFBTyxDQUFDLGFBQWEsQ0FBQzthQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQUEsQ0FBQztRQUNqQyxLQUFLLENBQUM7SUFDVixLQUFLLFNBQVM7UUFDVix1QkFBTyxDQUFDLGFBQWEsQ0FBQzthQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQUEsQ0FBQztRQUNqQyxLQUFLLENBQUM7SUFDVixLQUFLLFNBQVM7UUFDVix1QkFBTyxDQUFDLGFBQWEsQ0FBQzthQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQUEsQ0FBQztRQUNqQyxLQUFLLENBQUM7SUFDVixLQUFLLE1BQU07UUFDUCxpQkFBSSxDQUFDLGFBQWEsQ0FBQzthQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEMsS0FBSyxDQUFDO0lBQ1YsS0FBSyxTQUFTO1FBQ1YsdUJBQU8sRUFBRSxDQUFDO1FBQ1YsS0FBSyxDQUFDO0lBQ1Y7UUFDSSxLQUFLLENBQUM7QUFDZCxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0ICogYXMgcGF0aHMgZnJvbSBcIi4vbnBtY2kucGF0aHNcIjtcbmxldCBucG1jaUluZm8gPSBuZXcgcGx1Z2lucy5wcm9qZWN0aW5mby5Qcm9qZWN0aW5mb05wbShwYXRocy5OcG1jaVBhY2thZ2VSb290KTtcbnBsdWdpbnMuYmVhdXR5bG9nLmxvZyhcIm5wbWNpIHZlcnNpb246IFwiICsgbnBtY2lJbmZvLnZlcnNpb24pO1xuXG5pbXBvcnQge2J1aWxkfSBmcm9tIFwiLi9ucG1jaS5idWlsZFwiXG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcbmltcG9ydCB7cHVibGlzaH0gZnJvbSBcIi4vbnBtY2kucHVibGlzaFwiO1xuaW1wb3J0IHtwcmVwYXJlfSBmcm9tIFwiLi9ucG1jaS5wcmVwYXJlXCI7XG5pbXBvcnQge3RhZywgcmV0YWd9IGZyb20gXCIuL25wbWNpLnRhZ1wiO1xuaW1wb3J0IHt0ZXN0fSBmcm9tIFwiLi9ucG1jaS50ZXN0XCI7XG5pbXBvcnQge3RyaWdnZXJ9IGZyb20gXCIuL25wbWNpLnRyaWdnZXJcIjtcbmltcG9ydCAqIGFzIE5wbWNpRW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xuXG5leHBvcnQge2J1aWxkfSBmcm9tIFwiLi9ucG1jaS5idWlsZFwiXG5leHBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcbmV4cG9ydCB7cHVibGlzaH0gZnJvbSBcIi4vbnBtY2kucHVibGlzaFwiO1xuXG5sZXQgY29tbWFuZDtcbmxldCBjb21tYW5kT3B0aW9uO1xuXG5wbHVnaW5zLmNvbW1hbmRlclxuICAgIC5hcmd1bWVudHMoJzxjb21tYW5kYXJnPiBbY29tbWFuZG9wdGlvbmFyZ10nKVxuICAgIC5hY3Rpb24oZnVuY3Rpb24gKGNvbW1hbmRhcmcsIGNvbW1hbmRvcHRpb25hcmcpIHtcbiAgICAgICAgY29tbWFuZCA9IGNvbW1hbmRhcmc7XG4gICAgICAgIGNvbW1hbmRPcHRpb24gPSBjb21tYW5kb3B0aW9uYXJnO1xuICAgIH0pO1xuIFxucGx1Z2lucy5jb21tYW5kZXIucGFyc2UocHJvY2Vzcy5hcmd2KTtcbiBcbmlmICh0eXBlb2YgY29tbWFuZCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zb2xlLmVycm9yKCdubyBjb21tYW5kIGdpdmVuIScpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbn1cblxuc3dpdGNoIChjb21tYW5kKXtcbiAgICBjYXNlIFwiYnVpbGRcIjpcbiAgICAgICAgYnVpbGQoY29tbWFuZE9wdGlvbilcbiAgICAgICAgICAgIC50aGVuKE5wbWNpRW52LmNvbmZpZ1N0b3JlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImluc3RhbGxcIjpcbiAgICAgICAgaW5zdGFsbChjb21tYW5kT3B0aW9uKVxuICAgICAgICAgICAgLnRoZW4oTnBtY2lFbnYuY29uZmlnU3RvcmUpOztcbiAgICAgICAgYnJlYWs7XG4gICAgY2FzZSBcInByZXBhcmVcIjpcbiAgICAgICAgcHJlcGFyZShjb21tYW5kT3B0aW9uKVxuICAgICAgICAgICAgLnRoZW4oTnBtY2lFbnYuY29uZmlnU3RvcmUpOztcbiAgICAgICAgYnJlYWs7XG4gICAgY2FzZSBcInB1Ymxpc2hcIjpcbiAgICAgICAgcHVibGlzaChjb21tYW5kT3B0aW9uKVxuICAgICAgICAgICAgLnRoZW4oTnBtY2lFbnYuY29uZmlnU3RvcmUpOztcbiAgICAgICAgYnJlYWs7XG4gICAgY2FzZSBcInRlc3RcIjpcbiAgICAgICAgdGVzdChjb21tYW5kT3B0aW9uKVxuICAgICAgICAgICAgLnRoZW4oTnBtY2lFbnYuY29uZmlnU3RvcmUpO1xuICAgICAgICBicmVhaztcbiAgICBjYXNlIFwidHJpZ2dlclwiOlxuICAgICAgICB0cmlnZ2VyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xufVxuXG4iXX0=
|
||||||
|
|||||||
3
dist/npmci.bash.d.ts
vendored
3
dist/npmci.bash.d.ts
vendored
@@ -1,2 +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, retryArg?: number) => string;
|
||||||
|
|||||||
41
dist/npmci.bash.js
vendored
41
dist/npmci.bash.js
vendored
@@ -1,13 +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) {
|
||||||
var exitCode = plugins.shelljs.exec("bash -c \"source /usr/local/nvm/nvm.sh &&" +
|
if (retryArg === void 0) { retryArg = 2; }
|
||||||
|
if (bareArg === void 0) { bareArg = false; }
|
||||||
|
var exitCode;
|
||||||
|
var stdOut;
|
||||||
|
var execResult;
|
||||||
|
if (!process.env.NPMTS_TEST) {
|
||||||
|
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 {
|
||||||
|
plugins.beautylog.log("ShellExec would be: " + commandArg.blue);
|
||||||
|
}
|
||||||
|
return stdOut;
|
||||||
|
};
|
||||||
|
exports.bashBare = function (commandArg, retryArg) {
|
||||||
|
if (retryArg === void 0) { retryArg = 2; }
|
||||||
|
return exports.bash(commandArg, retryArg, true);
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQ2hDLFlBQUksR0FBRyxVQUFDLFVBQVU7SUFDekIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9CLDJDQUEyQztRQUMzQyxVQUFVO1FBQ1YsSUFBSSxDQUNQLENBQUMsSUFBSSxDQUFDO0lBQ1AsRUFBRSxDQUFBLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFBLENBQUM7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7QUFDTCxDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5leHBvcnQgbGV0IGJhc2ggPSAoY29tbWFuZEFyZykgPT4ge1xyXG4gICAgbGV0IGV4aXRDb2RlID0gcGx1Z2lucy5zaGVsbGpzLmV4ZWMoXHJcbiAgICAgICAgXCJiYXNoIC1jIFxcXCJzb3VyY2UgL3Vzci9sb2NhbC9udm0vbnZtLnNoICYmXCIgK1xyXG4gICAgICAgIGNvbW1hbmRBcmcgK1xyXG4gICAgICAgIFwiXFxcIlwiXHJcbiAgICApLmNvZGU7XHJcbiAgICBpZihleGl0Q29kZSAhPT0gMCl7XHJcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xyXG4gICAgfVxyXG59Il19
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBRWhDLFlBQUksR0FBRyxVQUFDLFVBQWlCLEVBQUMsUUFBWSxFQUFDLE9BQWU7SUFBNUIsd0JBQVksR0FBWixZQUFZO0lBQUMsdUJBQWUsR0FBZixlQUFlO0lBQzdELElBQUksUUFBZSxDQUFDO0lBQ3BCLElBQUksTUFBYSxDQUFDO0lBQ2xCLElBQUksVUFBVSxDQUFDO0lBQ2YsRUFBRSxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDeEIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztZQUNoQyxFQUFFLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUM7Z0JBQ1QsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QiwyQ0FBMkM7b0JBQzNDLFVBQVU7b0JBQ1YsSUFBSSxDQUNQLENBQUM7WUFDTixDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFDRCxRQUFRLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztZQUMzQixNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMzQixFQUFFLENBQUEsQ0FBQyxRQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQSxDQUFDO2dCQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLENBQUM7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUM7Z0JBQ3JCLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMscURBQXFEO1lBQzNFLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDbEYsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sR0FBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMxRixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUE7QUFFVSxnQkFBUSxHQUFHLFVBQUMsVUFBVSxFQUFDLFFBQVk7SUFBWix3QkFBWSxHQUFaLFlBQVk7SUFDMUMsTUFBTSxDQUFDLFlBQUksQ0FBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS5iYXNoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuXG5leHBvcnQgbGV0IGJhc2ggPSAoY29tbWFuZEFyZzpzdHJpbmcscmV0cnlBcmcgPSAyLGJhcmVBcmcgPSBmYWxzZSkgPT4ge1xuICAgIGxldCBleGl0Q29kZTpudW1iZXI7XG4gICAgbGV0IHN0ZE91dDpzdHJpbmc7XG4gICAgbGV0IGV4ZWNSZXN1bHQ7XG4gICAgaWYoIXByb2Nlc3MuZW52Lk5QTVRTX1RFU1Qpe1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSByZXRyeUFyZzsgaSsrKXtcbiAgICAgICAgICAgIGlmKCFiYXJlQXJnKXtcbiAgICAgICAgICAgICAgICBleGVjUmVzdWx0ID0gcGx1Z2lucy5zaGVsbGpzLmV4ZWMoXG4gICAgICAgICAgICAgICAgICAgIFwiYmFzaCAtYyBcXFwic291cmNlIC91c3IvbG9jYWwvbnZtL252bS5zaCAmJlwiICtcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZEFyZyArXG4gICAgICAgICAgICAgICAgICAgIFwiXFxcIlwiXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZXhlY1Jlc3VsdCA9IHBsdWdpbnMuc2hlbGxqcy5leGVjKGNvbW1hbmRBcmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXhpdENvZGUgPSBleGVjUmVzdWx0LmNvZGU7XG4gICAgICAgICAgICBzdGRPdXQgPSBleGVjUmVzdWx0LnN0ZG91dDtcbiAgICAgICAgICAgIGlmKGV4aXRDb2RlICE9PSAwICYmIGkgPT0gcmV0cnlBcmcpe1xuICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZihleGl0Q29kZSA9PSAwKXtcbiAgICAgICAgICAgICAgICBpID0gcmV0cnlBcmcgKyAxOyAvLyBpZiBldmVyeXRoaW5nIHdvcmtzIG91dCBvayByZXRyaWFscyBhcmUgbm90IHdhbnRlZFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy53YXJuKFwiU29tZXRoaW5nIHdlbnQgd3JvbmchIEV4aXQgQ29kZTogXCIgKyBleGl0Q29kZS50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5pbmZvKFwiUmV0cnkgXCIgKyAoaSArIDEpLnRvU3RyaW5nKCkgKyBcIiBvZiBcIiArICByZXRyeUFyZy50b1N0cmluZygpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmxvZyhcIlNoZWxsRXhlYyB3b3VsZCBiZTogXCIgKyBjb21tYW5kQXJnLmJsdWUpXG4gICAgfVxuICAgIHJldHVybiBzdGRPdXQ7XG59XG5cbmV4cG9ydCBsZXQgYmFzaEJhcmUgPSAoY29tbWFuZEFyZyxyZXRyeUFyZyA9IDIpID0+IHtcbiAgICByZXR1cm4gYmFzaChjb21tYW5kQXJnLHJldHJ5QXJnLHRydWUpO1xufSJdfQ==
|
||||||
|
|||||||
36
dist/npmci.build.docker.d.ts
vendored
Normal file
36
dist/npmci.build.docker.d.ts
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
export declare let build: () => any;
|
||||||
|
export declare let readDockerfiles: () => any;
|
||||||
|
export declare let sortDockerfiles: (sortableArrayArg: Dockerfile[]) => any;
|
||||||
|
export declare let mapDockerfiles: (sortedArray: Dockerfile[]) => any;
|
||||||
|
export declare let buildDockerfiles: (sortedArrayArg: Dockerfile[]) => any;
|
||||||
|
export declare let pushDockerfiles: (sortedArrayArg: Dockerfile[]) => any;
|
||||||
|
export declare let pullDockerfileImages: (sortableArrayArg: Dockerfile[], registryArg?: string) => any;
|
||||||
|
export declare let testDockerfiles: (sortedArrayArg: Dockerfile[]) => any;
|
||||||
|
export declare class Dockerfile {
|
||||||
|
filePath: string;
|
||||||
|
repo: string;
|
||||||
|
version: string;
|
||||||
|
cleanTag: string;
|
||||||
|
buildTag: string;
|
||||||
|
testTag: string;
|
||||||
|
releaseTag: string;
|
||||||
|
containerName: string;
|
||||||
|
content: string;
|
||||||
|
baseImage: string;
|
||||||
|
localBaseImageDependent: boolean;
|
||||||
|
localBaseDockerfile: Dockerfile;
|
||||||
|
constructor(options: {
|
||||||
|
filePath?: string;
|
||||||
|
fileContents?: string | Buffer;
|
||||||
|
read?: boolean;
|
||||||
|
});
|
||||||
|
build(): any;
|
||||||
|
push(stageArg: any): any;
|
||||||
|
pull(registryArg: string): void;
|
||||||
|
test(): void;
|
||||||
|
getId(): string;
|
||||||
|
}
|
||||||
|
export declare let dockerFileVersion: (dockerfileNameArg: string) => string;
|
||||||
|
export declare let dockerBaseImage: (dockerfileContentArg: string) => string;
|
||||||
|
export declare let dockerTag: (registryArg: string, repoArg: string, versionArg: string, suffixArg?: string) => string;
|
||||||
|
export declare let cleanTagsArrayFunction: (dockerfileArrayArg: Dockerfile[], trackingArrayArg: Dockerfile[]) => string[];
|
||||||
224
dist/npmci.build.docker.js
vendored
Normal file
224
dist/npmci.build.docker.js
vendored
Normal file
File diff suppressed because one or more lines are too long
14
dist/npmci.build.js
vendored
14
dist/npmci.build.js
vendored
@@ -1,18 +1,14 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
var plugins = require("./npmci.plugins");
|
var plugins = require("./npmci.plugins");
|
||||||
var env = require("./npmci.env");
|
var buildDocker = require("./npmci.build.docker");
|
||||||
exports.build = function (commandArg) {
|
exports.build = function (commandArg) {
|
||||||
switch (commandArg) {
|
switch (commandArg) {
|
||||||
case "docker":
|
case "docker":
|
||||||
return docker();
|
return buildDocker.build();
|
||||||
|
default:
|
||||||
|
plugins.beautylog.log("build target " + commandArg + " not recognised!");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var docker = function () {
|
|
||||||
var done = plugins.q.defer();
|
|
||||||
plugins.shelljs.exec("docker build -t " + env.dockerTag());
|
|
||||||
done.resolve();
|
|
||||||
return done.promise;
|
|
||||||
};
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0saUJBQWlCLENBQUMsQ0FBQTtBQUUzQyxJQUFZLEdBQUcsV0FBTSxhQUFhLENBQUMsQ0FBQTtBQUV4QixhQUFLLEdBQUcsVUFBUyxVQUFVO0lBQ2xDLE1BQU0sQ0FBQSxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDZixLQUFLLFFBQVE7WUFDVCxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDeEIsQ0FBQztBQUNMLENBQUMsQ0FBQTtBQUVELElBQUksTUFBTSxHQUFHO0lBQ1QsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMzRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuYnVpbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XHJcbmltcG9ydCAqIGFzIGVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcclxuXHJcbmV4cG9ydCBsZXQgYnVpbGQgPSBmdW5jdGlvbihjb21tYW5kQXJnKXtcclxuICAgIHN3aXRjaChjb21tYW5kQXJnKXtcclxuICAgICAgICBjYXNlIFwiZG9ja2VyXCI6XHJcbiAgICAgICAgICAgIHJldHVybiBkb2NrZXIoKTsgICBcclxuICAgIH1cclxufVxyXG5cclxubGV0IGRvY2tlciA9IGZ1bmN0aW9uKCl7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgcGx1Z2lucy5zaGVsbGpzLmV4ZWMoXCJkb2NrZXIgYnVpbGQgLXQgXCIgKyBlbnYuZG9ja2VyVGFnKCkpO1xyXG4gICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59XHJcblxyXG4iXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0saUJBQWlCLENBQUMsQ0FBQTtBQUczQyxJQUFZLFdBQVcsV0FBTSxzQkFFN0IsQ0FBQyxDQUZrRDtBQUV4QyxhQUFLLEdBQUcsVUFBUyxVQUFVO0lBQ2xDLE1BQU0sQ0FBQSxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDZixLQUFLLFFBQVE7WUFDVCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CO1lBQ0ksT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7QUFDTCxDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuYnVpbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcbmltcG9ydCAqIGFzIGVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcbmltcG9ydCAqIGFzIGJ1aWxkRG9ja2VyIGZyb20gXCIuL25wbWNpLmJ1aWxkLmRvY2tlclwiXG5cbmV4cG9ydCBsZXQgYnVpbGQgPSBmdW5jdGlvbihjb21tYW5kQXJnKXtcbiAgICBzd2l0Y2goY29tbWFuZEFyZyl7XG4gICAgICAgIGNhc2UgXCJkb2NrZXJcIjpcbiAgICAgICAgICAgIHJldHVybiBidWlsZERvY2tlci5idWlsZCgpOyAgIFxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cubG9nKFwiYnVpbGQgdGFyZ2V0IFwiICsgY29tbWFuZEFyZyArIFwiIG5vdCByZWNvZ25pc2VkIVwiKTtcbiAgICB9XG59XG5cblxuXG4iXX0=
|
||||||
|
|||||||
14
dist/npmci.env.d.ts
vendored
14
dist/npmci.env.d.ts
vendored
@@ -1,10 +1,10 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
import { GitRepo } from "smartstring";
|
import { GitRepo } from "smartstring";
|
||||||
|
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: string;
|
export declare let dockerFilesBuilt: Dockerfile[];
|
||||||
export declare let dockerTagVersion: () => string;
|
export declare let dockerFiles: Dockerfile[];
|
||||||
export declare let dockerTag: () => string;
|
export declare let configStore: () => void;
|
||||||
export declare let dockerTagTest: () => string;
|
export declare let configLoad: () => void;
|
||||||
export declare let dockerTagRelease: () => string;
|
|
||||||
|
|||||||
47
dist/npmci.env.js
vendored
47
dist/npmci.env.js
vendored
@@ -1,24 +1,37 @@
|
|||||||
"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);
|
if (process.env.CI_BUILD_REPO)
|
||||||
exports.dockerRegistry = "docker.io"; // will be set by npmci.prepare
|
exports.repo = new smartstring_1.GitRepo(process.env.CI_BUILD_REPO);
|
||||||
exports.dockerTagVersion = function () {
|
exports.buildStage = process.env.CI_BUILD_STAGE;
|
||||||
if (process.env.CI_BUILD_STAGE == "test") {
|
exports.dockerFilesBuilt = [];
|
||||||
return "test";
|
exports.dockerFiles = [];
|
||||||
|
exports.configStore = function () {
|
||||||
|
var config = {
|
||||||
|
dockerRegistry: exports.dockerRegistry,
|
||||||
|
dockerFilesBuilt: exports.dockerFilesBuilt,
|
||||||
|
dockerFiles: exports.dockerFiles
|
||||||
|
};
|
||||||
|
plugins.smartfile.memory.toFsSync(JSON.stringify(config), {
|
||||||
|
fileName: "config.json",
|
||||||
|
filePath: paths.NpmciPackageRoot
|
||||||
|
});
|
||||||
|
};
|
||||||
|
exports.configLoad = function () {
|
||||||
|
var config;
|
||||||
|
try {
|
||||||
|
config = plugins.smartfile.local.toObjectSync(paths.NpmciPackageConfig, "json");
|
||||||
}
|
}
|
||||||
else {
|
catch (err) {
|
||||||
return "latest";
|
config = {};
|
||||||
|
exports.configStore();
|
||||||
|
plugins.beautylog.log("config initialized!");
|
||||||
}
|
}
|
||||||
|
config.dockerRegistry ? exports.dockerRegistry = config.dockerRegistry : void (0);
|
||||||
|
config.dockerFilesBuilt ? exports.dockerFilesBuilt = config.dockerFilesBuilt : void (0);
|
||||||
};
|
};
|
||||||
exports.dockerTag = function () {
|
exports.configLoad();
|
||||||
return exports.dockerRegistry + "/" + exports.repo.user + "/" + exports.repo.repo + ":" + exports.dockerTagVersion() + " .";
|
|
||||||
};
|
|
||||||
exports.dockerTagTest = function () {
|
|
||||||
return exports.dockerRegistry + "/" + exports.repo.user + "/" + exports.repo.repo + ":test .";
|
|
||||||
};
|
|
||||||
exports.dockerTagRelease = function () {
|
|
||||||
return exports.dockerRegistry + "/" + exports.repo.user + "/" + exports.repo.repo + ":latest .";
|
|
||||||
};
|
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBR3hCLDRCQUFzQixhQUFhLENBQUMsQ0FBQTtBQUV6QixZQUFJLEdBQUcsSUFBSSxxQkFBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFJOUMsc0JBQWMsR0FBRyxXQUFXLENBQUMsQ0FBQywrQkFBK0I7QUFFN0Qsd0JBQWdCLEdBQUc7SUFDMUIsRUFBRSxDQUFBLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLENBQUEsQ0FBQztRQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxRQUFRLENBQUE7SUFDbkIsQ0FBQztBQUNMLENBQUMsQ0FBQTtBQUVVLGlCQUFTLEdBQUc7SUFDbkIsTUFBTSxDQUFDLHNCQUFjLEdBQUcsR0FBRyxHQUFHLFlBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLFlBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLHdCQUFnQixFQUFFLEdBQUUsSUFBSSxDQUFDO0FBQy9GLENBQUMsQ0FBQTtBQUVVLHFCQUFhLEdBQUc7SUFDdkIsTUFBTSxDQUFDLHNCQUFjLEdBQUcsR0FBRyxHQUFHLFlBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLFlBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO0FBQzFFLENBQUMsQ0FBQTtBQUVVLHdCQUFnQixHQUFHO0lBQzFCLE1BQU0sQ0FBQyxzQkFBYyxHQUFHLEdBQUcsR0FBRyxZQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxZQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztBQUM1RSxDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuZW52LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcblxyXG5pbXBvcnQge0dpdFJlcG99IGZyb20gXCJzbWFydHN0cmluZ1wiO1xyXG5cclxuZXhwb3J0IGxldCByZXBvID0gbmV3IEdpdFJlcG8ocHJvY2Vzcy5lbnYuQ0lfQlVJTERfUkVQTyk7XHJcbmV4cG9ydCBsZXQgZG9ja2VyVGVzdFRhZzpzdHJpbmc7XHJcbmV4cG9ydCBsZXQgZG9ja2VyUmVsZWFzZVRhZzpzdHJpbmc7XHJcblxyXG5leHBvcnQgbGV0IGRvY2tlclJlZ2lzdHJ5ID0gXCJkb2NrZXIuaW9cIjsgLy8gd2lsbCBiZSBzZXQgYnkgbnBtY2kucHJlcGFyZVxyXG5cclxuZXhwb3J0IGxldCBkb2NrZXJUYWdWZXJzaW9uID0gZnVuY3Rpb24oKXtcclxuICAgIGlmKHByb2Nlc3MuZW52LkNJX0JVSUxEX1NUQUdFID09IFwidGVzdFwiKXtcclxuICAgICAgICByZXR1cm4gXCJ0ZXN0XCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBcImxhdGVzdFwiXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBsZXQgZG9ja2VyVGFnID0gZnVuY3Rpb24oKXtcclxuICAgIHJldHVybiBkb2NrZXJSZWdpc3RyeSArIFwiL1wiICsgcmVwby51c2VyICsgXCIvXCIgKyByZXBvLnJlcG8gKyBcIjpcIiArIGRvY2tlclRhZ1ZlcnNpb24oKSArXCIgLlwiO1xyXG59XHJcblxyXG5leHBvcnQgbGV0IGRvY2tlclRhZ1Rlc3QgPSBmdW5jdGlvbigpe1xyXG4gICAgcmV0dXJuIGRvY2tlclJlZ2lzdHJ5ICsgXCIvXCIgKyByZXBvLnVzZXIgKyBcIi9cIiArIHJlcG8ucmVwbyArIFwiOnRlc3QgLlwiO1xyXG59XHJcblxyXG5leHBvcnQgbGV0IGRvY2tlclRhZ1JlbGVhc2UgPSBmdW5jdGlvbigpe1xyXG4gICAgcmV0dXJuIGRvY2tlclJlZ2lzdHJ5ICsgXCIvXCIgKyByZXBvLnVzZXIgKyBcIi9cIiArIHJlcG8ucmVwbyArIFwiOmxhdGVzdCAuXCI7XHJcbn1cclxuIl19
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3hCLElBQVksT0FBTyxXQUFNLGlCQUFpQixDQUFDLENBQUE7QUFDM0MsSUFBWSxLQUFLLFdBQU0sZUFBZSxDQUFDLENBQUE7QUFDdkMsNEJBQXNCLGFBQWEsQ0FBQyxDQUFBO0FBSXBDLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQUMsWUFBSSxHQUFHLElBQUkscUJBQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRWpFLGtCQUFVLEdBQVUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7QUFJL0Msd0JBQWdCLEdBQWdCLEVBQUUsQ0FBQztBQUNuQyxtQkFBVyxHQUFnQixFQUFFLENBQUM7QUFFOUIsbUJBQVcsR0FBRztJQUNyQixJQUFJLE1BQU0sR0FBRztRQUNULGNBQWMsRUFBRSxzQkFBYztRQUM5QixnQkFBZ0IsRUFBRSx3QkFBZ0I7UUFDbEMsV0FBVyxFQUFFLG1CQUFXO0tBQzNCLENBQUE7SUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQ3RCO1FBQ0ksUUFBUSxFQUFDLGFBQWE7UUFDdEIsUUFBUSxFQUFDLEtBQUssQ0FBQyxnQkFBZ0I7S0FDbEMsQ0FDSixDQUFDO0FBQ04sQ0FBQyxDQUFBO0FBRVUsa0JBQVUsR0FBRztJQUNwQixJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksQ0FBQztRQUNELE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25GLENBQ0E7SUFBQSxLQUFLLENBQUEsQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDO1FBQ1AsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLG1CQUFXLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLEdBQUcsc0JBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxHQUFHLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RSxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsd0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixHQUFHLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRixDQUFDLENBQUE7QUFDRCxrQkFBVSxFQUFFLENBQUMiLCJmaWxlIjoibnBtY2kuZW52LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0ICogYXMgcGF0aHMgZnJvbSBcIi4vbnBtY2kucGF0aHNcIjtcbmltcG9ydCB7R2l0UmVwb30gZnJvbSBcInNtYXJ0c3RyaW5nXCI7XG5pbXBvcnQge0RvY2tlcmZpbGV9IGZyb20gXCIuL25wbWNpLmJ1aWxkLmRvY2tlclwiXG5cbmV4cG9ydCBsZXQgcmVwbzpHaXRSZXBvO1xuaWYocHJvY2Vzcy5lbnYuQ0lfQlVJTERfUkVQTykgcmVwbyA9IG5ldyBHaXRSZXBvKHByb2Nlc3MuZW52LkNJX0JVSUxEX1JFUE8pO1xuXG5leHBvcnQgbGV0IGJ1aWxkU3RhZ2U6c3RyaW5nID0gcHJvY2Vzcy5lbnYuQ0lfQlVJTERfU1RBR0U7XG5cbi8vIGhhbmRsaW5nIGNvbmZpZyBiZXR3ZWVuIGNvbW1hbmRzXG5leHBvcnQgbGV0IGRvY2tlclJlZ2lzdHJ5OyAvLyB3aWxsIGJlIHNldCBieSBucG1jaS5wcmVwYXJlXG5leHBvcnQgbGV0IGRvY2tlckZpbGVzQnVpbHQ6RG9ja2VyZmlsZVtdID0gW107XG5leHBvcnQgbGV0IGRvY2tlckZpbGVzOkRvY2tlcmZpbGVbXSA9IFtdO1xuXG5leHBvcnQgbGV0IGNvbmZpZ1N0b3JlID0gKCkgPT4ge1xuICAgIGxldCBjb25maWcgPSB7XG4gICAgICAgIGRvY2tlclJlZ2lzdHJ5OiBkb2NrZXJSZWdpc3RyeSxcbiAgICAgICAgZG9ja2VyRmlsZXNCdWlsdDogZG9ja2VyRmlsZXNCdWlsdCxcbiAgICAgICAgZG9ja2VyRmlsZXM6IGRvY2tlckZpbGVzXG4gICAgfVxuICAgIHBsdWdpbnMuc21hcnRmaWxlLm1lbW9yeS50b0ZzU3luYyhcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSxcbiAgICAgICAge1xuICAgICAgICAgICAgZmlsZU5hbWU6XCJjb25maWcuanNvblwiLFxuICAgICAgICAgICAgZmlsZVBhdGg6cGF0aHMuTnBtY2lQYWNrYWdlUm9vdFxuICAgICAgICB9XG4gICAgKTtcbn1cblxuZXhwb3J0IGxldCBjb25maWdMb2FkID0gKCkgPT4ge1xuICAgIGxldCBjb25maWc7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uZmlnID0gcGx1Z2lucy5zbWFydGZpbGUubG9jYWwudG9PYmplY3RTeW5jKHBhdGhzLk5wbWNpUGFja2FnZUNvbmZpZyxcImpzb25cIik7XG4gICAgfVxuICAgIGNhdGNoKGVycil7XG4gICAgICAgIGNvbmZpZyA9IHt9O1xuICAgICAgICBjb25maWdTdG9yZSgpO1xuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJjb25maWcgaW5pdGlhbGl6ZWQhXCIpO1xuICAgIH1cbiAgICBcbiAgICBjb25maWcuZG9ja2VyUmVnaXN0cnkgPyBkb2NrZXJSZWdpc3RyeSA9IGNvbmZpZy5kb2NrZXJSZWdpc3RyeSA6IHZvaWQoMCk7XG4gICAgY29uZmlnLmRvY2tlckZpbGVzQnVpbHQgPyBkb2NrZXJGaWxlc0J1aWx0ID0gY29uZmlnLmRvY2tlckZpbGVzQnVpbHQgOiB2b2lkKDApO1xufVxuY29uZmlnTG9hZCgpOyJdfQ==
|
||||||
|
|||||||
2
dist/npmci.install.js
vendored
2
dist/npmci.install.js
vendored
@@ -25,4 +25,4 @@ exports.install = function (versionArg) {
|
|||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUV2QixlQUFPLEdBQUcsVUFBQyxVQUFVO0lBQzVCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RixJQUFJLE9BQWMsQ0FBQztJQUNuQixFQUFFLENBQUEsQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLENBQUEsQ0FBQztRQUNwQixPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxDQUFBLENBQUM7UUFDOUIsT0FBTyxHQUFHLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQUksQ0FDQSxjQUFjLEdBQUcsT0FBTztRQUN4Qix3QkFBd0IsR0FBRyxPQUFPLENBQ3JDLENBQUM7SUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsT0FBTyxHQUFHLDBCQUEwQixDQUFDLENBQUM7SUFDbEYsaUJBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQixpQkFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBIiwiZmlsZSI6Im5wbWNpLmluc3RhbGwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XHJcblxyXG5leHBvcnQgbGV0IGluc3RhbGwgPSAodmVyc2lvbkFyZykgPT4ge1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIHBsdWdpbnMuYmVhdXR5bG9nLmxvZyhcIm5vdyBpbnN0YWxsaW5nIFwiICsgXCJub2RlIFwiLmdyZWVuICsgKFwidmVyc2lvbiBcIiArIHZlcnNpb25BcmcpLnllbGxvdyk7XHJcbiAgICBsZXQgdmVyc2lvbjpzdHJpbmc7XHJcbiAgICBpZih2ZXJzaW9uQXJnID09IFwibHRzXCIpe1xyXG4gICAgICAgIHZlcnNpb24gPSBcIjRcIjtcclxuICAgIH0gZWxzZSBpZih2ZXJzaW9uQXJnID09IFwibGVnYWN5XCIpe1xyXG4gICAgICAgIHZlcnNpb24gPSBcIjQuMC4wXCJcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmVyc2lvbiA9IHZlcnNpb25Bcmc7XHJcbiAgICB9O1xyXG4gICAgYmFzaChcclxuICAgICAgICBcIm52bSBpbnN0YWxsIFwiICsgdmVyc2lvbiArXHJcbiAgICAgICAgXCIgJiYgbnZtIGFsaWFzIGRlZmF1bHQgXCIgKyB2ZXJzaW9uXHJcbiAgICApO1xyXG4gICAgcGx1Z2lucy5iZWF1dHlsb2cuc3VjY2VzcyhcIk5vZGUgdmVyc2lvbiBcIiArIHZlcnNpb24gKyBcIiBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkIVwiKTtcclxuICAgIGJhc2goXCJub2RlIC12XCIpO1xyXG4gICAgYmFzaChcIm5wbSAtdlwiKTtcclxuICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcclxufSJdfQ==
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUV2QixlQUFPLEdBQUcsVUFBQyxVQUFVO0lBQzVCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RixJQUFJLE9BQWMsQ0FBQztJQUNuQixFQUFFLENBQUEsQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLENBQUEsQ0FBQztRQUNwQixPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxDQUFBLENBQUM7UUFDOUIsT0FBTyxHQUFHLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQUksQ0FDQSxjQUFjLEdBQUcsT0FBTztRQUN4Qix3QkFBd0IsR0FBRyxPQUFPLENBQ3JDLENBQUM7SUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsT0FBTyxHQUFHLDBCQUEwQixDQUFDLENBQUM7SUFDbEYsaUJBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQixpQkFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBIiwiZmlsZSI6Im5wbWNpLmluc3RhbGwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcblxuZXhwb3J0IGxldCBpbnN0YWxsID0gKHZlcnNpb25BcmcpID0+IHtcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgIHBsdWdpbnMuYmVhdXR5bG9nLmxvZyhcIm5vdyBpbnN0YWxsaW5nIFwiICsgXCJub2RlIFwiLmdyZWVuICsgKFwidmVyc2lvbiBcIiArIHZlcnNpb25BcmcpLnllbGxvdyk7XG4gICAgbGV0IHZlcnNpb246c3RyaW5nO1xuICAgIGlmKHZlcnNpb25BcmcgPT0gXCJsdHNcIil7XG4gICAgICAgIHZlcnNpb24gPSBcIjRcIjtcbiAgICB9IGVsc2UgaWYodmVyc2lvbkFyZyA9PSBcImxlZ2FjeVwiKXtcbiAgICAgICAgdmVyc2lvbiA9IFwiNC4wLjBcIlxuICAgIH0gZWxzZSB7XG4gICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uQXJnO1xuICAgIH07XG4gICAgYmFzaChcbiAgICAgICAgXCJudm0gaW5zdGFsbCBcIiArIHZlcnNpb24gK1xuICAgICAgICBcIiAmJiBudm0gYWxpYXMgZGVmYXVsdCBcIiArIHZlcnNpb25cbiAgICApO1xuICAgIHBsdWdpbnMuYmVhdXR5bG9nLnN1Y2Nlc3MoXCJOb2RlIHZlcnNpb24gXCIgKyB2ZXJzaW9uICsgXCIgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCFcIik7XG4gICAgYmFzaChcIm5vZGUgLXZcIik7XG4gICAgYmFzaChcIm5wbSAtdlwiKTtcbiAgICBkb25lLnJlc29sdmUoKTtcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xufSJdfQ==
|
||||||
|
|||||||
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBhdGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0saUJBQWlCLENBQUMsQ0FBQTtBQUVoQyxXQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRXBCLHdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUN0RCwwQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBZ0IsRUFBQyxlQUFlLENBQUMsQ0FBQztBQUN6RSx1QkFBZSxHQUFHLFdBQUcsQ0FBQztBQUN0QixvQkFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQUcsRUFBQyxRQUFRLENBQUMsQ0FBQyIsImZpbGUiOiJucG1jaS5wYXRocy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcblxuZXhwb3J0IGxldCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xuXG5leHBvcnQgbGV0IE5wbWNpUGFja2FnZVJvb3QgPSBwbHVnaW5zLnBhdGguam9pbihfX2Rpcm5hbWUsXCIuLi9cIik7XG5leHBvcnQgbGV0IE5wbWNpUGFja2FnZUNvbmZpZyA9IHBsdWdpbnMucGF0aC5qb2luKE5wbWNpUGFja2FnZVJvb3QsXCIuL2NvbmZpZy5qc29uXCIpO1xuZXhwb3J0IGxldCBOcG1jaVByb2plY3REaXIgPSBjd2Q7XG5leHBvcnQgbGV0IE5wbWNpVGVzdERpciA9IHBsdWdpbnMucGF0aC5qb2luKGN3ZCxcIi4vdGVzdFwiKTsiXX0=
|
||||||
7
dist/npmci.plugins.d.ts
vendored
7
dist/npmci.plugins.d.ts
vendored
@@ -1,9 +1,14 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
export import beautylog = require("beautylog");
|
export import beautylog = require("beautylog");
|
||||||
export declare let commander: any;
|
export declare let commander: any;
|
||||||
|
export declare let gulp: any;
|
||||||
|
export declare let gulpFunction: any;
|
||||||
|
export import path = require("path");
|
||||||
|
export import projectinfo = require("projectinfo");
|
||||||
export declare let q: any;
|
export declare let q: any;
|
||||||
export declare let request: any;
|
export declare let request: any;
|
||||||
export declare let shelljs: any;
|
export declare let shelljs: any;
|
||||||
export declare let smartssh: any;
|
export import smartssh = require("smartssh");
|
||||||
export import smartstring = require("smartstring");
|
export import smartstring = require("smartstring");
|
||||||
export import smartfile = require("smartfile");
|
export import smartfile = require("smartfile");
|
||||||
|
export declare let through2: any;
|
||||||
|
|||||||
7
dist/npmci.plugins.js
vendored
7
dist/npmci.plugins.js
vendored
@@ -2,11 +2,16 @@
|
|||||||
require("typings-global");
|
require("typings-global");
|
||||||
exports.beautylog = require("beautylog");
|
exports.beautylog = require("beautylog");
|
||||||
exports.commander = require("commander");
|
exports.commander = require("commander");
|
||||||
|
exports.gulp = require("gulp");
|
||||||
|
exports.gulpFunction = require("gulp-function");
|
||||||
|
exports.path = require("path");
|
||||||
|
exports.projectinfo = require("projectinfo");
|
||||||
exports.q = require("q");
|
exports.q = require("q");
|
||||||
exports.request = require("request");
|
exports.request = require("request");
|
||||||
exports.shelljs = require("shelljs");
|
exports.shelljs = require("shelljs");
|
||||||
exports.smartssh = require("smartssh");
|
exports.smartssh = require("smartssh");
|
||||||
exports.smartstring = require("smartstring");
|
exports.smartstring = require("smartstring");
|
||||||
exports.smartfile = require("smartfile");
|
exports.smartfile = require("smartfile");
|
||||||
|
exports.through2 = require("through2");
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLGVBQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0IsZ0JBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDNUIsbUJBQVcsV0FBVyxhQUFhLENBQUMsQ0FBQztBQUNyQyxpQkFBUyxXQUFXLFdBQVcsQ0FBQyxDQUFDIiwiZmlsZSI6Im5wbWNpLnBsdWdpbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5leHBvcnQgaW1wb3J0IGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XHJcbmV4cG9ydCBsZXQgY29tbWFuZGVyID0gcmVxdWlyZShcImNvbW1hbmRlclwiKTtcclxuZXhwb3J0IGxldCBxID0gcmVxdWlyZShcInFcIik7XHJcbmV4cG9ydCBsZXQgcmVxdWVzdCA9IHJlcXVpcmUoXCJyZXF1ZXN0XCIpO1xyXG5leHBvcnQgbGV0IHNoZWxsanMgPSByZXF1aXJlKFwic2hlbGxqc1wiKTtcclxuZXhwb3J0IGxldCBzbWFydHNzaCA9IHJlcXVpcmUoXCJzbWFydHNzaFwiKTtcclxuZXhwb3J0IGltcG9ydCBzbWFydHN0cmluZyA9IHJlcXVpcmUoXCJzbWFydHN0cmluZ1wiKTtcclxuZXhwb3J0IGltcG9ydCBzbWFydGZpbGUgPSByZXF1aXJlKFwic21hcnRmaWxlXCIpOyJdfQ==
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsWUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixvQkFBWSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNyQyxZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDdkIsbUJBQVcsV0FBVyxhQUFhLENBQUMsQ0FBQztBQUN4QyxTQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLGVBQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0IsZUFBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxQixnQkFBUSxXQUFXLFVBQVUsQ0FBQyxDQUFDO0FBQy9CLG1CQUFXLFdBQVcsYUFBYSxDQUFDLENBQUM7QUFDckMsaUJBQVMsV0FBVyxXQUFXLENBQUMsQ0FBQztBQUNwQyxnQkFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyIsImZpbGUiOiJucG1jaS5wbHVnaW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmV4cG9ydCBpbXBvcnQgYmVhdXR5bG9nID0gcmVxdWlyZShcImJlYXV0eWxvZ1wiKTtcbmV4cG9ydCBsZXQgY29tbWFuZGVyID0gcmVxdWlyZShcImNvbW1hbmRlclwiKTtcbmV4cG9ydCBsZXQgZ3VscCA9IHJlcXVpcmUoXCJndWxwXCIpO1xuZXhwb3J0IGxldCBndWxwRnVuY3Rpb24gPSByZXF1aXJlKFwiZ3VscC1mdW5jdGlvblwiKTtcbmV4cG9ydCBpbXBvcnQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuZXhwb3J0IGltcG9ydCBwcm9qZWN0aW5mbyA9IHJlcXVpcmUoXCJwcm9qZWN0aW5mb1wiKTtcbmV4cG9ydCBsZXQgcSA9IHJlcXVpcmUoXCJxXCIpO1xuZXhwb3J0IGxldCByZXF1ZXN0ID0gcmVxdWlyZShcInJlcXVlc3RcIik7XG5leHBvcnQgbGV0IHNoZWxsanMgPSByZXF1aXJlKFwic2hlbGxqc1wiKTtcbmV4cG9ydCBpbXBvcnQgc21hcnRzc2ggPSByZXF1aXJlKFwic21hcnRzc2hcIik7XG5leHBvcnQgaW1wb3J0IHNtYXJ0c3RyaW5nID0gcmVxdWlyZShcInNtYXJ0c3RyaW5nXCIpO1xuZXhwb3J0IGltcG9ydCBzbWFydGZpbGUgPSByZXF1aXJlKFwic21hcnRmaWxlXCIpO1xuZXhwb3J0IGxldCB0aHJvdWdoMiA9IHJlcXVpcmUoXCJ0aHJvdWdoMlwiKTsiXX0=
|
||||||
|
|||||||
6
dist/npmci.prepare.js
vendored
6
dist/npmci.prepare.js
vendored
File diff suppressed because one or more lines are too long
14
dist/npmci.publish.js
vendored
14
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 env = 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,13 +25,11 @@ var publishNpm = function () {
|
|||||||
};
|
};
|
||||||
var publishDocker = function () {
|
var publishDocker = function () {
|
||||||
var done = plugins.q.defer();
|
var done = plugins.q.defer();
|
||||||
npmci_prepare_1.prepare("docker")
|
NpmciBuildDocker.readDockerfiles()
|
||||||
.then(function () {
|
.then(NpmciBuildDocker.pullDockerfileImages)
|
||||||
npmci_bash_1.bash;
|
.then(NpmciBuildDocker.pushDockerfiles)
|
||||||
npmci_bash_1.bash("docker push " + env.dockerTag());
|
.then(done.resolve);
|
||||||
done.resolve();
|
|
||||||
});
|
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyxJQUFZLEdBQUcsV0FBTSxhQUFhLENBQUMsQ0FBQTtBQUV4QixlQUFPLEdBQUcsVUFBQyxVQUF5QjtJQUF6QiwwQkFBeUIsR0FBekIsa0JBQXlCO0lBQzNDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDaEIsS0FBSyxLQUFLO1lBQ04sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssUUFBUTtZQUNULE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMvQixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsSUFBSSxVQUFVLEdBQUk7SUFDZCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLHVCQUFPLENBQUMsS0FBSyxDQUFDO1NBQ1QsSUFBSSxDQUFDO1FBQ0YsaUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBRTtRQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN2QixDQUFDLENBQUE7QUFFRCxJQUFJLGFBQWEsR0FBRztJQUNoQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLHVCQUFPLENBQUMsUUFBUSxDQUFDO1NBQ1osSUFBSSxDQUFDO1FBQ0YsaUJBQUksQ0FBQTtRQUNKLGlCQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyIsImZpbGUiOiJucG1jaS5wdWJsaXNoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7cHJlcGFyZX0gZnJvbSBcIi4vbnBtY2kucHJlcGFyZVwiO1xyXG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcclxuaW1wb3J0ICogYXMgZW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xyXG5cclxuZXhwb3J0IGxldCBwdWJsaXNoID0gKHNlcnZpY2VBcmc6c3RyaW5nID0gXCJucG1cIikgPT4ge1xyXG4gICAgc3dpdGNoIChzZXJ2aWNlQXJnKXtcclxuICAgICAgICBjYXNlIFwibnBtXCI6IFxyXG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaE5wbSgpO1xyXG4gICAgICAgIGNhc2UgXCJkb2NrZXJcIjpcclxuICAgICAgICAgICAgcmV0dXJuIHB1Ymxpc2hEb2NrZXIoKTtcclxuICAgIH1cclxufTtcclxuXHJcbmxldCBwdWJsaXNoTnBtICA9IGZ1bmN0aW9uKCl7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgcHJlcGFyZShcIm5wbVwiKVxyXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGJhc2goXCJucG0gcHVibGlzaFwiKTtcclxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cub2soXCJEb25lIVwiKSA7XHJcbiAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59XHJcblxyXG5sZXQgcHVibGlzaERvY2tlciA9IGZ1bmN0aW9uKCl7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgcHJlcGFyZShcImRvY2tlclwiKVxyXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGJhc2ggXHJcbiAgICAgICAgICAgIGJhc2goXCJkb2NrZXIgcHVzaCBcIiArIGVudi5kb2NrZXJUYWcoKSk7XHJcbiAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcclxufTsiXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUVsQyxJQUFZLGdCQUFnQixXQUFNLHNCQUVsQyxDQUFDLENBRnVEO0FBRTdDLGVBQU8sR0FBRyxVQUFDLFVBQXlCO0lBQXpCLDBCQUF5QixHQUF6QixrQkFBeUI7SUFDM0MsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQztRQUNoQixLQUFLLEtBQUs7WUFDTixNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEIsS0FBSyxRQUFRO1lBQ1QsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixJQUFJLFVBQVUsR0FBSTtJQUNkLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsdUJBQU8sQ0FBQyxLQUFLLENBQUM7U0FDVCxJQUFJLENBQUM7UUFDRixpQkFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFFO1FBQy9CLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQTtBQUVELElBQUksYUFBYSxHQUFHO0lBQ2hCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsZ0JBQWdCLENBQUMsZUFBZSxFQUFFO1NBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQztTQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1NBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwiZmlsZSI6Im5wbWNpLnB1Ymxpc2guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5pbXBvcnQge3ByZXBhcmV9IGZyb20gXCIuL25wbWNpLnByZXBhcmVcIjtcbmltcG9ydCB7YmFzaH0gZnJvbSBcIi4vbnBtY2kuYmFzaFwiO1xuaW1wb3J0ICogYXMgTnBtY2lFbnYgZnJvbSBcIi4vbnBtY2kuZW52XCI7XG5pbXBvcnQgKiBhcyBOcG1jaUJ1aWxkRG9ja2VyIGZyb20gXCIuL25wbWNpLmJ1aWxkLmRvY2tlclwiXG5cbmV4cG9ydCBsZXQgcHVibGlzaCA9IChzZXJ2aWNlQXJnOnN0cmluZyA9IFwibnBtXCIpID0+IHtcbiAgICBzd2l0Y2ggKHNlcnZpY2VBcmcpe1xuICAgICAgICBjYXNlIFwibnBtXCI6IFxuICAgICAgICAgICAgcmV0dXJuIHB1Ymxpc2hOcG0oKTtcbiAgICAgICAgY2FzZSBcImRvY2tlclwiOlxuICAgICAgICAgICAgcmV0dXJuIHB1Ymxpc2hEb2NrZXIoKTtcbiAgICB9XG59O1xuXG5sZXQgcHVibGlzaE5wbSAgPSBmdW5jdGlvbigpe1xuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgcHJlcGFyZShcIm5wbVwiKVxuICAgICAgICAudGhlbihmdW5jdGlvbigpe1xuICAgICAgICAgICAgYmFzaChcIm5wbSBwdWJsaXNoXCIpO1xuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cub2soXCJEb25lIVwiKSA7XG4gICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcbiAgICAgICAgfSk7XG4gICByZXR1cm4gZG9uZS5wcm9taXNlO1xufVxuXG5sZXQgcHVibGlzaERvY2tlciA9IGZ1bmN0aW9uKCl7XG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICAgICAgTnBtY2lCdWlsZERvY2tlci5yZWFkRG9ja2VyZmlsZXMoKVxuICAgICAgICAudGhlbihOcG1jaUJ1aWxkRG9ja2VyLnB1bGxEb2NrZXJmaWxlSW1hZ2VzKVxuICAgICAgICAudGhlbihOcG1jaUJ1aWxkRG9ja2VyLnB1c2hEb2NrZXJmaWxlcylcbiAgICAgICAgLnRoZW4oZG9uZS5yZXNvbHZlKTtcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xufTsiXX0=
|
||||||
|
|||||||
2
dist/npmci.tag.js
vendored
2
dist/npmci.tag.js
vendored
@@ -5,4 +5,4 @@ exports.tag = function (commandOptionArg) {
|
|||||||
exports.retag = function () {
|
exports.retag = function () {
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBTWIsV0FBRyxHQUFHLFVBQVMsZ0JBQWdCO0FBRTFDLENBQUMsQ0FBQTtBQUVVLGFBQUssR0FBRztBQUVuQixDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kudGFnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7cHJlcGFyZX0gZnJvbSBcIi4vbnBtY2kucHJlcGFyZVwiO1xyXG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcclxuaW1wb3J0ICogYXMgZW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xyXG5cclxuZXhwb3J0IGxldCB0YWcgPSBmdW5jdGlvbihjb21tYW5kT3B0aW9uQXJnKXtcclxuICAgIFxyXG59XHJcblxyXG5leHBvcnQgbGV0IHJldGFnID0gZnVuY3Rpb24oKXtcclxuICAgIFxyXG59O1xyXG4iXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBTWIsV0FBRyxHQUFHLFVBQVMsZ0JBQWdCO0FBRTFDLENBQUMsQ0FBQTtBQUVVLGFBQUssR0FBRztBQUVuQixDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kudGFnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0IHtwcmVwYXJlfSBmcm9tIFwiLi9ucG1jaS5wcmVwYXJlXCI7XG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcbmltcG9ydCAqIGFzIGVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcblxuZXhwb3J0IGxldCB0YWcgPSBmdW5jdGlvbihjb21tYW5kT3B0aW9uQXJnKXtcbiAgICBcbn1cblxuZXhwb3J0IGxldCByZXRhZyA9IGZ1bmN0aW9uKCl7XG4gICAgXG59O1xuIl19
|
||||||
|
|||||||
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QuZG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFLVyxrQkFBVSxHQUFHO0FBRXhCLENBQUMsQ0FBQyIsImZpbGUiOiJucG1jaS50ZXN0LmRvY2tlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiXG5pbXBvcnQgKiBhcyBOcG1jaUVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcbmltcG9ydCB7YmFzaEJhcmV9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcbmltcG9ydCAqIGFzIE5wbWNpQnVpbGREb2NrZXIgZnJvbSBcIi4vbnBtY2kuYnVpbGQuZG9ja2VyXCI7XG5cbmV4cG9ydCBsZXQgdGVzdERvY2tlciA9ICgpID0+IHtcblxufTsiXX0=
|
||||||
42
dist/npmci.test.js
vendored
42
dist/npmci.test.js
vendored
@@ -3,18 +3,46 @@ 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();
|
||||||
npmci_install_1.install(versionArg)
|
if (versionArg == "docker") {
|
||||||
|
testDocker()
|
||||||
.then(function () {
|
.then(function () {
|
||||||
plugins.beautylog.info("now installing dependencies:");
|
|
||||||
npmci_bash_1.bash("npm install");
|
|
||||||
plugins.beautylog.info("now starting tests:");
|
|
||||||
npmci_bash_1.bash("npm test");
|
|
||||||
plugins.beautylog.success("test finished");
|
|
||||||
done.resolve();
|
done.resolve();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
npmci_install_1.install(versionArg)
|
||||||
|
.then(npmDependencies)
|
||||||
|
.then(npmTest)
|
||||||
|
.then(function () {
|
||||||
|
done.resolve();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
var npmDependencies = function () {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now installing dependencies:");
|
||||||
|
npmci_bash_1.bash("npm install");
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
var npmTest = function () {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now starting tests:");
|
||||||
|
npmci_bash_1.bash("npm test");
|
||||||
|
done.resolve();
|
||||||
|
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;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUc3QixZQUFJLEdBQUcsVUFBQyxVQUFVO0lBQ3pCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsdUJBQU8sQ0FBQyxVQUFVLENBQUM7U0FDZCxJQUFJLENBQUM7UUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3ZELGlCQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM5QyxpQkFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7YmFzaH0gZnJvbSBcIi4vbnBtY2kuYmFzaFwiO1xyXG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcclxuaW1wb3J0ICogYXMgZW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xyXG5cclxuZXhwb3J0IGxldCB0ZXN0ID0gKHZlcnNpb25BcmcpID0+IHtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBpbnN0YWxsKHZlcnNpb25BcmcpXHJcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIm5vdyBpbnN0YWxsaW5nIGRlcGVuZGVuY2llczpcIik7XHJcbiAgICAgICAgICAgIGJhc2goXCJucG0gaW5zdGFsbFwiKTtcclxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIm5vdyBzdGFydGluZyB0ZXN0czpcIik7XHJcbiAgICAgICAgICAgIGJhc2goXCJucG0gdGVzdFwiKTtcclxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuc3VjY2VzcyhcInRlc3QgZmluaXNoZWRcIik7XHJcbiAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcclxufSJdfQ==
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUV4QyxJQUFZLGdCQUFnQixXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFFOUMsWUFBSSxHQUFHLFVBQUMsVUFBVTtJQUN6QixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLEVBQUUsQ0FBQSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsQ0FBQSxDQUFDO1FBQ3ZCLFVBQVUsRUFBRTthQUNQLElBQUksQ0FBQztZQUNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLHVCQUFPLENBQUMsVUFBVSxDQUFDO2FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQzthQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ2IsSUFBSSxDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQTtBQUVELElBQUksZUFBZSxHQUFHO0lBQ2xCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUN2RCxpQkFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQTtBQUVELElBQUksT0FBTyxHQUFHO0lBQ1YsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlDLGlCQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxVQUFVLEdBQUc7SUFDYixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLGdCQUFnQixDQUFDLGVBQWUsRUFBRTtTQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUM7U0FDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztTQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcbmltcG9ydCAqIGFzIGVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcbmltcG9ydCAqIGFzIE5wbWNpQnVpbGREb2NrZXIgZnJvbSBcIi4vbnBtY2kuYnVpbGQuZG9ja2VyXCI7XG5cbmV4cG9ydCBsZXQgdGVzdCA9ICh2ZXJzaW9uQXJnKSA9PiB7XG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICBpZih2ZXJzaW9uQXJnID09IFwiZG9ja2VyXCIpe1xuICAgICAgICB0ZXN0RG9ja2VyKClcbiAgICAgICAgICAgIC50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpbnN0YWxsKHZlcnNpb25BcmcpXG4gICAgICAgICAgICAudGhlbihucG1EZXBlbmRlbmNpZXMpXG4gICAgICAgICAgICAudGhlbihucG1UZXN0KVxuICAgICAgICAgICAgLnRoZW4oKCk9PntcbiAgICAgICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xufVxuXG5sZXQgbnBtRGVwZW5kZW5jaWVzID0gZnVuY3Rpb24oKXtcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgIHBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJub3cgaW5zdGFsbGluZyBkZXBlbmRlbmNpZXM6XCIpO1xuICAgIGJhc2goXCJucG0gaW5zdGFsbFwiKTtcbiAgICBkb25lLnJlc29sdmUoKTtcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xufVxuXG5sZXQgbnBtVGVzdCA9ICgpID0+IHtcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgIHBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJub3cgc3RhcnRpbmcgdGVzdHM6XCIpO1xuICAgIGJhc2goXCJucG0gdGVzdFwiKTtcbiAgICBkb25lLnJlc29sdmUoKTtcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xufVxuXG5sZXQgdGVzdERvY2tlciA9IGZ1bmN0aW9uKCl7XG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICBOcG1jaUJ1aWxkRG9ja2VyLnJlYWREb2NrZXJmaWxlcygpXG4gICAgICAgIC50aGVuKE5wbWNpQnVpbGREb2NrZXIucHVsbERvY2tlcmZpbGVJbWFnZXMpXG4gICAgICAgIC50aGVuKE5wbWNpQnVpbGREb2NrZXIudGVzdERvY2tlcmZpbGVzKVxuICAgICAgICAudGhlbihkb25lLnJlc29sdmUpXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcbn1cblxuIl19
|
||||||
|
|||||||
2
dist/npmci.trigger.js
vendored
2
dist/npmci.trigger.js
vendored
@@ -32,4 +32,4 @@ exports.trigger = function () {
|
|||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBSTNDLFdBQVc7QUFDWCxJQUFJLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBRTdCLGVBQU8sR0FBRztJQUNqQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDL0MsSUFBSSxZQUFZLEdBQUcsZ0dBQWdHLENBQUM7SUFDcEgsR0FBRyxDQUFBLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUN6QixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEMsSUFBSSxXQUFXLEdBQUcsZ0JBQWdCLEdBQUcsY0FBYyxDQUFBO1FBQ25ELEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQ3pCLElBQUksdUJBQXVCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDMUUsSUFBSSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxjQUFjLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBSSx3QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxJQUFJLFlBQVksR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxJQUFJLGdCQUFnQixTQUFBLENBQUM7WUFDckIsRUFBRSxDQUFBLENBQUMsdUJBQXVCLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUM7Z0JBQ3BDLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDJCQUEyQixHQUFHLFlBQVksR0FBRyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUM5RixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsR0FBRyxjQUFjLEdBQUcsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxLQUFLLEVBQUMsd0JBQXdCLEVBQUMsR0FBRyxFQUFDLFlBQVksRUFBQyxFQUFDLENBQUMsQ0FBQztRQUMvSixDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50cmlnZ2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7cHJlcGFyZX0gZnJvbSBcIi4vbnBtY2kucHJlcGFyZVwiO1xyXG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcclxuXHJcbi8vVmFyaWFibGVzXHJcbmxldCB0cmlnZ2VyRW52UHJlZml4ID0gXCJOUE1DSV9UUklHR0VSX1wiO1xyXG5cclxuZXhwb3J0IGxldCB0cmlnZ2VyID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBwbHVnaW5zLmJlYXV0eWxvZy5pbmZvKFwibm93IHJ1bm5pbmcgdHJpZ2dlcnNcIik7XHJcbiAgICBsZXQgdHJpZ2dlclJlZ2V4ID0gL14oW2EtekEtWjAtOVxcLl0qKVxcfChbYS16QS1aMC05XFwuXSopXFx8KFthLXpBLVowLTlcXC5dKilcXHwoW2EtekEtWjAtOVxcLl0qKVxcfD8oW2EtekEtWjAtOVxcLlxcLVxcL10qKS87XHJcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspe1xyXG4gICAgICAgIGxldCBpdGVyYXRvclN0cmluZyA9IGkudG9TdHJpbmcoKTtcclxuICAgICAgICBsZXQgdHJpZ2dlck5hbWUgPSB0cmlnZ2VyRW52UHJlZml4ICsgaXRlcmF0b3JTdHJpbmdcclxuICAgICAgICBpZihwcm9jZXNzLmVudlt0cmlnZ2VyTmFtZV0pe1xyXG4gICAgICAgICAgICBsZXQgdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXkgPSB0cmlnZ2VyUmVnZXguZXhlYyhwcm9jZXNzLmVudlt0cmlnZ2VyTmFtZV0pO1xyXG4gICAgICAgICAgICBsZXQgcmVnZXhEb21haW4gPSB0cmlnZ2VyUmVnZXhSZXN1bHRBcnJheVsxXTtcclxuICAgICAgICAgICAgbGV0IHJlZ2V4UHJvamVjdElkID0gdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXlbMl07XHJcbiAgICAgICAgICAgIGxldCByZWdleFByb2plY3RUcmlnZ2VyVG9rZW4gPSB0cmlnZ2VyUmVnZXhSZXN1bHRBcnJheVszXTtcclxuICAgICAgICAgICAgbGV0IHJlZ2V4UmVmTmFtZSA9IHRyaWdnZXJSZWdleFJlc3VsdEFycmF5WzRdO1xyXG4gICAgICAgICAgICBsZXQgcmVnZXhUcmlnZ2VyTmFtZTtcclxuICAgICAgICAgICAgaWYodHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXkubGVuZ3RoID09IDYpe1xyXG4gICAgICAgICAgICAgICAgcmVnZXhUcmlnZ2VyTmFtZSA9IHRyaWdnZXJSZWdleFJlc3VsdEFycmF5WzVdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmVnZXhUcmlnZ2VyTmFtZSA9IFwiVW5uYW1lZCBUcmlnZ2VyXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIkZvdW5kIFwiICsgdHJpZ2dlck5hbWUpO1xyXG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJ0cmlnZ2VyaW5nIGJ1aWxkIGZvciByZWYgXCIgKyByZWdleFJlZk5hbWUgKyBcIiBvZiBcIiArIHJlZ2V4VHJpZ2dlck5hbWUpO1xyXG4gICAgICAgICAgICBwbHVnaW5zLnJlcXVlc3QucG9zdChcImh0dHBzOi8vZ2l0bGFiLmNvbS9hcGkvdjMvcHJvamVjdHMvXCIgKyByZWdleFByb2plY3RJZCArIFwiL3RyaWdnZXIvYnVpbGRzXCIsIHtmb3JtOnt0b2tlbjpyZWdleFByb2plY3RUcmlnZ2VyVG9rZW4scmVmOnJlZ2V4UmVmTmFtZX19KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBkb25lLnJlc29sdmUoKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn0iXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBSTNDLFdBQVc7QUFDWCxJQUFJLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBRTdCLGVBQU8sR0FBRztJQUNqQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDL0MsSUFBSSxZQUFZLEdBQUcsZ0dBQWdHLENBQUM7SUFDcEgsR0FBRyxDQUFBLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUN6QixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEMsSUFBSSxXQUFXLEdBQUcsZ0JBQWdCLEdBQUcsY0FBYyxDQUFBO1FBQ25ELEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQ3pCLElBQUksdUJBQXVCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDMUUsSUFBSSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxjQUFjLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBSSx3QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxJQUFJLFlBQVksR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxJQUFJLGdCQUFnQixTQUFBLENBQUM7WUFDckIsRUFBRSxDQUFBLENBQUMsdUJBQXVCLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUM7Z0JBQ3BDLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDJCQUEyQixHQUFHLFlBQVksR0FBRyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUM5RixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsR0FBRyxjQUFjLEdBQUcsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxLQUFLLEVBQUMsd0JBQXdCLEVBQUMsR0FBRyxFQUFDLFlBQVksRUFBQyxFQUFDLENBQUMsQ0FBQztRQUMvSixDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50cmlnZ2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0IHtwcmVwYXJlfSBmcm9tIFwiLi9ucG1jaS5wcmVwYXJlXCI7XG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcblxuLy9WYXJpYWJsZXNcbmxldCB0cmlnZ2VyRW52UHJlZml4ID0gXCJOUE1DSV9UUklHR0VSX1wiO1xuXG5leHBvcnQgbGV0IHRyaWdnZXIgPSBmdW5jdGlvbigpe1xuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIm5vdyBydW5uaW5nIHRyaWdnZXJzXCIpO1xuICAgIGxldCB0cmlnZ2VyUmVnZXggPSAvXihbYS16QS1aMC05XFwuXSopXFx8KFthLXpBLVowLTlcXC5dKilcXHwoW2EtekEtWjAtOVxcLl0qKVxcfChbYS16QS1aMC05XFwuXSopXFx8PyhbYS16QS1aMC05XFwuXFwtXFwvXSopLztcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspe1xuICAgICAgICBsZXQgaXRlcmF0b3JTdHJpbmcgPSBpLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCB0cmlnZ2VyTmFtZSA9IHRyaWdnZXJFbnZQcmVmaXggKyBpdGVyYXRvclN0cmluZ1xuICAgICAgICBpZihwcm9jZXNzLmVudlt0cmlnZ2VyTmFtZV0pe1xuICAgICAgICAgICAgbGV0IHRyaWdnZXJSZWdleFJlc3VsdEFycmF5ID0gdHJpZ2dlclJlZ2V4LmV4ZWMocHJvY2Vzcy5lbnZbdHJpZ2dlck5hbWVdKTtcbiAgICAgICAgICAgIGxldCByZWdleERvbWFpbiA9IHRyaWdnZXJSZWdleFJlc3VsdEFycmF5WzFdO1xuICAgICAgICAgICAgbGV0IHJlZ2V4UHJvamVjdElkID0gdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXlbMl07XG4gICAgICAgICAgICBsZXQgcmVnZXhQcm9qZWN0VHJpZ2dlclRva2VuID0gdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXlbM107XG4gICAgICAgICAgICBsZXQgcmVnZXhSZWZOYW1lID0gdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXlbNF07XG4gICAgICAgICAgICBsZXQgcmVnZXhUcmlnZ2VyTmFtZTtcbiAgICAgICAgICAgIGlmKHRyaWdnZXJSZWdleFJlc3VsdEFycmF5Lmxlbmd0aCA9PSA2KXtcbiAgICAgICAgICAgICAgICByZWdleFRyaWdnZXJOYW1lID0gdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXlbNV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlZ2V4VHJpZ2dlck5hbWUgPSBcIlVubmFtZWQgVHJpZ2dlclwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIkZvdW5kIFwiICsgdHJpZ2dlck5hbWUpO1xuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cubG9nKFwidHJpZ2dlcmluZyBidWlsZCBmb3IgcmVmIFwiICsgcmVnZXhSZWZOYW1lICsgXCIgb2YgXCIgKyByZWdleFRyaWdnZXJOYW1lKTtcbiAgICAgICAgICAgIHBsdWdpbnMucmVxdWVzdC5wb3N0KFwiaHR0cHM6Ly9naXRsYWIuY29tL2FwaS92My9wcm9qZWN0cy9cIiArIHJlZ2V4UHJvamVjdElkICsgXCIvdHJpZ2dlci9idWlsZHNcIiwge2Zvcm06e3Rva2VuOnJlZ2V4UHJvamVjdFRyaWdnZXJUb2tlbixyZWY6cmVnZXhSZWZOYW1lfX0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgIHJldHVybiBkb25lLnByb21pc2U7XG59Il19
|
||||||
|
|||||||
12
package.json
12
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "npmci",
|
"name": "npmci",
|
||||||
"version": "2.1.7",
|
"version": "2.1.51",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -20,17 +20,23 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/npmci#README",
|
"homepage": "https://gitlab.com/pushrocks/npmci#README",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"npmts": "^5.2.1"
|
"npmts": "^5.3.0",
|
||||||
|
"should": "^9.0.1",
|
||||||
|
"typings-test": "^1.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"beautylog": "^5.0.8",
|
"beautylog": "^5.0.8",
|
||||||
"commander": "^2.9.0",
|
"commander": "^2.9.0",
|
||||||
|
"gulp": "^3.9.1",
|
||||||
|
"gulp-function": "^1.3.5",
|
||||||
|
"projectinfo": "^1.0.3",
|
||||||
"q": "^1.4.1",
|
"q": "^1.4.1",
|
||||||
"request": "^2.72.0",
|
"request": "^2.72.0",
|
||||||
"shelljs": "^0.7.0",
|
"shelljs": "^0.7.0",
|
||||||
"smartfile": "^3.0.10",
|
"smartfile": "^3.0.10",
|
||||||
"smartssh": "^1.0.5",
|
"smartssh": "^1.0.5",
|
||||||
"smartstring": "^2.0.4",
|
"smartstring": "^2.0.6",
|
||||||
|
"through2": "^2.0.1",
|
||||||
"typings-global": "^1.0.3"
|
"typings-global": "^1.0.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
test/assets/Dockerfile
Normal file
2
test/assets/Dockerfile
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
FROM ubuntu
|
||||||
|
RUN apt-get update
|
||||||
2
test/assets/Dockerfile_sometag1
Normal file
2
test/assets/Dockerfile_sometag1
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
FROM mygroup/myrepo:sometag2
|
||||||
|
RUN apt-get update
|
||||||
1
test/assets/Dockerfile_sometag2
Normal file
1
test/assets/Dockerfile_sometag2
Normal file
@@ -0,0 +1 @@
|
|||||||
|
FROM mygroup/myrepo:latest
|
||||||
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
|
||||||
2
test/test.d.ts
vendored
Normal file
2
test/test.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
import "typings-test";
|
||||||
|
import "should";
|
||||||
82
test/test.js
Normal file
82
test/test.js
Normal file
File diff suppressed because one or more lines are too long
84
test/test.ts
Normal file
84
test/test.ts
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import "typings-test";
|
||||||
|
import "should";
|
||||||
|
import path = require("path");
|
||||||
|
import * as beautylog from "beautylog"
|
||||||
|
//set up environment
|
||||||
|
process.env.CI_BUILD_REPO = "https://yyyyyy:xxxxxxxx@gitlab.com/mygroup/myrepo.git";
|
||||||
|
process.env.NPMTS_TEST = "true";
|
||||||
|
process.cwd = () => {
|
||||||
|
return path.join(__dirname,"assets/");
|
||||||
|
};
|
||||||
|
|
||||||
|
//require NPMCI files
|
||||||
|
import npmci = require("../dist/index");
|
||||||
|
import NpmciBuildDocker = require("../dist/npmci.build.docker");
|
||||||
|
import NpmciPublish = require("../dist/npmci.publish");
|
||||||
|
import NpmciTest = require("../dist/npmci.test");
|
||||||
|
|
||||||
|
|
||||||
|
let dockerfile1:NpmciBuildDocker.Dockerfile;
|
||||||
|
let dockerfile2:NpmciBuildDocker.Dockerfile;
|
||||||
|
let sortableArray:NpmciBuildDocker.Dockerfile[];
|
||||||
|
|
||||||
|
describe("NPMCI",function(){
|
||||||
|
describe("build.docker",function(){
|
||||||
|
it("should return valid Dockerfiles",function(){
|
||||||
|
dockerfile1 = new NpmciBuildDocker.Dockerfile({filePath:"./Dockerfile",read:true});
|
||||||
|
dockerfile2 = new NpmciBuildDocker.Dockerfile({filePath:"./Dockerfile_sometag1",read:true});
|
||||||
|
dockerfile1.version.should.equal("latest");
|
||||||
|
dockerfile2.version.should.equal("sometag1");
|
||||||
|
});
|
||||||
|
it("should read a directory of Dockerfiles",function(done){
|
||||||
|
NpmciBuildDocker.readDockerfiles()
|
||||||
|
.then(function(readDockerfilesArrayArg:NpmciBuildDocker.Dockerfile[]){
|
||||||
|
readDockerfilesArrayArg[1].version.should.equal("sometag1");
|
||||||
|
sortableArray = readDockerfilesArrayArg
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
it("should sort an array of Dockerfiles",function(done){
|
||||||
|
NpmciBuildDocker.sortDockerfiles(sortableArray)
|
||||||
|
.then(function(sortedArrayArg:NpmciBuildDocker.Dockerfile[]){
|
||||||
|
beautylog.success("final result");
|
||||||
|
console.log(sortedArrayArg);
|
||||||
|
done();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
it("should correctly chain Dockerfile handling",function(done){
|
||||||
|
NpmciBuildDocker.build()
|
||||||
|
.then(()=>{
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
});
|
||||||
|
describe(".publish.docker",function(){
|
||||||
|
it("should publish all built Dockerfiles",function(done){
|
||||||
|
NpmciPublish.publish("docker")
|
||||||
|
.then(() => {
|
||||||
|
done();
|
||||||
|
});;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
describe(".test.npm",function(){
|
||||||
|
it("should source nvm using bash and install a specific node version, then test it",function(done){
|
||||||
|
NpmciTest.test("legacy")
|
||||||
|
.then(() => {
|
||||||
|
return NpmciTest.test("lts");
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
return NpmciTest.test("stable");
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
});
|
||||||
|
describe("test.docker",function(){
|
||||||
|
it("should test dockerfiles",function(done){
|
||||||
|
NpmciTest.test("docker")
|
||||||
|
.then(() => {
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
});
|
||||||
|
})
|
||||||
26
ts/index.ts
26
ts/index.ts
@@ -1,10 +1,9 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
import "typings-global";
|
import "typings-global";
|
||||||
import * as plugins from "./npmci.plugins";
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import * as paths from "./npmci.paths";
|
||||||
let packJson = require("../package.json");
|
let npmciInfo = new plugins.projectinfo.ProjectinfoNpm(paths.NpmciPackageRoot);
|
||||||
|
plugins.beautylog.log("npmci version: " + npmciInfo.version);
|
||||||
plugins.beautylog.info("npmci version: " + packJson.version);
|
|
||||||
|
|
||||||
import {build} from "./npmci.build"
|
import {build} from "./npmci.build"
|
||||||
import {install} from "./npmci.install";
|
import {install} from "./npmci.install";
|
||||||
@@ -13,7 +12,11 @@ import {prepare} from "./npmci.prepare";
|
|||||||
import {tag, retag} from "./npmci.tag";
|
import {tag, retag} from "./npmci.tag";
|
||||||
import {test} from "./npmci.test";
|
import {test} from "./npmci.test";
|
||||||
import {trigger} from "./npmci.trigger";
|
import {trigger} from "./npmci.trigger";
|
||||||
|
import * as NpmciEnv from "./npmci.env";
|
||||||
|
|
||||||
|
export {build} from "./npmci.build"
|
||||||
|
export {install} from "./npmci.install";
|
||||||
|
export {publish} from "./npmci.publish";
|
||||||
|
|
||||||
let command;
|
let command;
|
||||||
let commandOption;
|
let commandOption;
|
||||||
@@ -34,19 +37,24 @@ if (typeof command === 'undefined') {
|
|||||||
|
|
||||||
switch (command){
|
switch (command){
|
||||||
case "build":
|
case "build":
|
||||||
build("commandArg");
|
build(commandOption)
|
||||||
|
.then(NpmciEnv.configStore);
|
||||||
break;
|
break;
|
||||||
case "install":
|
case "install":
|
||||||
install(commandOption);
|
install(commandOption)
|
||||||
|
.then(NpmciEnv.configStore);;
|
||||||
break;
|
break;
|
||||||
case "prepare":
|
case "prepare":
|
||||||
prepare(commandOption);
|
prepare(commandOption)
|
||||||
|
.then(NpmciEnv.configStore);;
|
||||||
break;
|
break;
|
||||||
case "publish":
|
case "publish":
|
||||||
publish(commandOption);
|
publish(commandOption)
|
||||||
|
.then(NpmciEnv.configStore);;
|
||||||
break;
|
break;
|
||||||
case "test":
|
case "test":
|
||||||
test(commandOption);
|
test(commandOption)
|
||||||
|
.then(NpmciEnv.configStore);
|
||||||
break;
|
break;
|
||||||
case "trigger":
|
case "trigger":
|
||||||
trigger();
|
trigger();
|
||||||
|
|||||||
@@ -1,12 +1,38 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
import * as plugins from "./npmci.plugins";
|
import * as plugins from "./npmci.plugins";
|
||||||
export let bash = (commandArg) => {
|
|
||||||
let exitCode = plugins.shelljs.exec(
|
export let bash = (commandArg:string,retryArg = 2,bareArg = false) => {
|
||||||
|
let exitCode:number;
|
||||||
|
let stdOut:string;
|
||||||
|
let execResult;
|
||||||
|
if(!process.env.NPMTS_TEST){
|
||||||
|
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 {
|
||||||
process.exit(1);
|
execResult = plugins.shelljs.exec(commandArg);
|
||||||
}
|
}
|
||||||
|
exitCode = execResult.code;
|
||||||
|
stdOut = execResult.stdout;
|
||||||
|
if(exitCode !== 0 && i == retryArg){
|
||||||
|
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 {
|
||||||
|
plugins.beautylog.log("ShellExec would be: " + commandArg.blue)
|
||||||
|
}
|
||||||
|
return stdOut;
|
||||||
|
}
|
||||||
|
|
||||||
|
export let bashBare = (commandArg,retryArg = 2) => {
|
||||||
|
return bash(commandArg,retryArg,true);
|
||||||
}
|
}
|
||||||
229
ts/npmci.build.docker.ts
Normal file
229
ts/npmci.build.docker.ts
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import * as paths from "./npmci.paths";
|
||||||
|
import * as NpmciEnv from "./npmci.env";
|
||||||
|
import {bashBare} from "./npmci.bash";
|
||||||
|
|
||||||
|
export let build = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
readDockerfiles()
|
||||||
|
.then(sortDockerfiles)
|
||||||
|
.then(mapDockerfiles)
|
||||||
|
.then(buildDockerfiles)
|
||||||
|
.then(pushDockerfiles)
|
||||||
|
.then(() => {
|
||||||
|
done.resolve();
|
||||||
|
});
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
export let readDockerfiles = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
let readDockerfilesArray:Dockerfile[] = []
|
||||||
|
plugins.gulp.src("./Dockerfile*")
|
||||||
|
.pipe(plugins.through2.obj(function(file,enc,cb){
|
||||||
|
let myDockerfile = new Dockerfile({
|
||||||
|
filePath:file.path,
|
||||||
|
read:true
|
||||||
|
});
|
||||||
|
readDockerfilesArray.push(myDockerfile);
|
||||||
|
cb(null,file);
|
||||||
|
},function(){
|
||||||
|
done.resolve(readDockerfilesArray);
|
||||||
|
}));
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
export let sortDockerfiles = function(sortableArrayArg:Dockerfile[]){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
let sortedArray:Dockerfile[] = [];
|
||||||
|
let cleanTagsOriginal = cleanTagsArrayFunction(sortableArrayArg,sortedArray);
|
||||||
|
let sorterFunctionCounter:number = 0;
|
||||||
|
let sorterFunction = function(){
|
||||||
|
sortableArrayArg.forEach((dockerfileArg)=>{
|
||||||
|
let cleanTags = cleanTagsArrayFunction(sortableArrayArg,sortedArray);
|
||||||
|
if(cleanTags.indexOf(dockerfileArg.baseImage) == -1 && sortedArray.indexOf(dockerfileArg) == -1){
|
||||||
|
sortedArray.push(dockerfileArg);
|
||||||
|
};
|
||||||
|
if(cleanTagsOriginal.indexOf(dockerfileArg.baseImage) != -1){
|
||||||
|
dockerfileArg.localBaseImageDependent = true;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
if(sortableArrayArg.length == sortedArray.length){
|
||||||
|
done.resolve(sortedArray);
|
||||||
|
} else if (sorterFunctionCounter < 10) {
|
||||||
|
sorterFunctionCounter++;
|
||||||
|
sorterFunction();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
sorterFunction();
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
export let mapDockerfiles = function(sortedArray:Dockerfile[]){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
sortedArray.forEach((dockerfileArg) => {
|
||||||
|
if(dockerfileArg.localBaseImageDependent){
|
||||||
|
sortedArray.forEach((dockfile2:Dockerfile) => {
|
||||||
|
if(dockfile2.cleanTag == dockerfileArg.baseImage){
|
||||||
|
dockerfileArg.localBaseDockerfile = dockfile2;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
};
|
||||||
|
});
|
||||||
|
done.resolve(sortedArray);
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
export let buildDockerfiles = (sortedArrayArg:Dockerfile[]) => {
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
sortedArrayArg.forEach(function(dockerfileArg){
|
||||||
|
dockerfileArg.build();
|
||||||
|
})
|
||||||
|
done.resolve(sortedArrayArg);
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
export let pushDockerfiles = function(sortedArrayArg:Dockerfile[]){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
sortedArrayArg.forEach(function(dockerfileArg){
|
||||||
|
dockerfileArg.push(NpmciEnv.buildStage);
|
||||||
|
});
|
||||||
|
done.resolve(sortedArrayArg);
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
export let pullDockerfileImages = (sortableArrayArg:Dockerfile[],registryArg = "registry.gitlab.com") => {
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
sortableArrayArg.forEach((dockerfileArg) => {
|
||||||
|
dockerfileArg.pull(registryArg);
|
||||||
|
});
|
||||||
|
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 class Dockerfile {
|
||||||
|
filePath:string;
|
||||||
|
repo:string;
|
||||||
|
version:string;
|
||||||
|
cleanTag:string;
|
||||||
|
buildTag:string;
|
||||||
|
testTag:string;
|
||||||
|
releaseTag:string;
|
||||||
|
containerName:string
|
||||||
|
content:string;
|
||||||
|
baseImage:string;
|
||||||
|
localBaseImageDependent:boolean;
|
||||||
|
localBaseDockerfile:Dockerfile;
|
||||||
|
constructor(options:{filePath?:string,fileContents?:string|Buffer,read?:boolean}){
|
||||||
|
this.filePath = options.filePath;
|
||||||
|
this.repo = NpmciEnv.repo.user + "/" + NpmciEnv.repo.repo;
|
||||||
|
this.version = dockerFileVersion(plugins.path.parse(options.filePath).base);
|
||||||
|
this.cleanTag = this.repo + ":" + this.version;
|
||||||
|
this.buildTag = this.cleanTag;
|
||||||
|
this.testTag = dockerTag("registry.gitlab.com",this.repo,this.version,"test");
|
||||||
|
this.releaseTag = dockerTag(NpmciEnv.dockerRegistry,this.repo,this.version);
|
||||||
|
this.containerName = "dockerfile-" + this.version;
|
||||||
|
if(options.filePath && options.read){
|
||||||
|
this.content = plugins.smartfile.local.toStringSync(plugins.path.resolve(options.filePath));
|
||||||
|
};
|
||||||
|
this.baseImage = dockerBaseImage(this.content);
|
||||||
|
this.localBaseImageDependent = false;
|
||||||
|
};
|
||||||
|
build(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now building Dockerfile for " + this.cleanTag);
|
||||||
|
bashBare("docker build -t " + this.buildTag + " -f " + this.filePath + " .");
|
||||||
|
NpmciEnv.dockerFilesBuilt.push(this);
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
push(stageArg){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
let pushTag;
|
||||||
|
switch (stageArg){
|
||||||
|
case "release":
|
||||||
|
pushTag = this.releaseTag;
|
||||||
|
break;
|
||||||
|
case "test":
|
||||||
|
default:
|
||||||
|
pushTag = this.testTag;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
bashBare("docker tag " + this.buildTag + " " + pushTag);
|
||||||
|
bashBare("docker push " + pushTag);
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
pull(registryArg:string){
|
||||||
|
let pullTag = this.testTag;
|
||||||
|
bashBare("docker pull " + pullTag);
|
||||||
|
bashBare("docker tag " + pullTag + " " + 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!");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
getId(){
|
||||||
|
let containerId = bashBare("docker inspect --type=image --format=\"{{.Id}}\" " + this.buildTag);
|
||||||
|
return containerId;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export let dockerFileVersion = function(dockerfileNameArg:string):string{
|
||||||
|
let versionString:string;
|
||||||
|
let versionRegex = /Dockerfile_([a-zA-Z0-9\.]*)$/;
|
||||||
|
let regexResultArray = versionRegex.exec(dockerfileNameArg);
|
||||||
|
if(regexResultArray && regexResultArray.length == 2){
|
||||||
|
versionString = regexResultArray[1];
|
||||||
|
} else {
|
||||||
|
versionString = "latest";
|
||||||
|
}
|
||||||
|
return versionString;
|
||||||
|
}
|
||||||
|
|
||||||
|
export let dockerBaseImage = function(dockerfileContentArg:string){
|
||||||
|
let baseImageRegex = /FROM\s([a-zA-z0-9\/\-\:]*)\n?/
|
||||||
|
let regexResultArray = baseImageRegex.exec(dockerfileContentArg)
|
||||||
|
return regexResultArray[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
export let dockerTag = function(registryArg:string,repoArg:string,versionArg:string,suffixArg?:string):string{
|
||||||
|
let tagString:string;
|
||||||
|
let registry = registryArg;
|
||||||
|
let repo = repoArg;
|
||||||
|
let version = versionArg;
|
||||||
|
if(suffixArg){
|
||||||
|
version = versionArg + "_" + suffixArg;
|
||||||
|
};
|
||||||
|
tagString = registry + "/" + repo + ":" + version;
|
||||||
|
return tagString;
|
||||||
|
};
|
||||||
|
|
||||||
|
export let cleanTagsArrayFunction = function(dockerfileArrayArg:Dockerfile[],trackingArrayArg:Dockerfile[]):string[]{
|
||||||
|
let cleanTagsArray:string[] = [];
|
||||||
|
dockerfileArrayArg.forEach(function(dockerfileArg){
|
||||||
|
if(trackingArrayArg.indexOf(dockerfileArg) == -1){
|
||||||
|
cleanTagsArray.push(dockerfileArg.cleanTag);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return cleanTagsArray;
|
||||||
|
}
|
||||||
@@ -2,18 +2,16 @@ 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";
|
import * as env from "./npmci.env";
|
||||||
|
import * as buildDocker from "./npmci.build.docker"
|
||||||
|
|
||||||
export let build = function(commandArg){
|
export let build = function(commandArg){
|
||||||
switch(commandArg){
|
switch(commandArg){
|
||||||
case "docker":
|
case "docker":
|
||||||
return docker();
|
return buildDocker.build();
|
||||||
|
default:
|
||||||
|
plugins.beautylog.log("build target " + commandArg + " not recognised!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let docker = function(){
|
|
||||||
let done = plugins.q.defer();
|
|
||||||
plugins.shelljs.exec("docker build -t " + env.dockerTag());
|
|
||||||
done.resolve();
|
|
||||||
return done.promise;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,30 +1,46 @@
|
|||||||
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"
|
||||||
|
|
||||||
export let repo = new GitRepo(process.env.CI_BUILD_REPO);
|
export let repo:GitRepo;
|
||||||
export let dockerTestTag:string;
|
if(process.env.CI_BUILD_REPO) repo = new GitRepo(process.env.CI_BUILD_REPO);
|
||||||
export let dockerReleaseTag:string;
|
|
||||||
|
|
||||||
export let dockerRegistry = "docker.io"; // will be set by npmci.prepare
|
export let buildStage:string = process.env.CI_BUILD_STAGE;
|
||||||
|
|
||||||
export let dockerTagVersion = function(){
|
// handling config between commands
|
||||||
if(process.env.CI_BUILD_STAGE == "test"){
|
export let dockerRegistry; // will be set by npmci.prepare
|
||||||
return "test";
|
export let dockerFilesBuilt:Dockerfile[] = [];
|
||||||
} else {
|
export let dockerFiles:Dockerfile[] = [];
|
||||||
return "latest"
|
|
||||||
|
export let configStore = () => {
|
||||||
|
let config = {
|
||||||
|
dockerRegistry: dockerRegistry,
|
||||||
|
dockerFilesBuilt: dockerFilesBuilt,
|
||||||
|
dockerFiles: dockerFiles
|
||||||
}
|
}
|
||||||
|
plugins.smartfile.memory.toFsSync(
|
||||||
|
JSON.stringify(config),
|
||||||
|
{
|
||||||
|
fileName:"config.json",
|
||||||
|
filePath:paths.NpmciPackageRoot
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export let dockerTag = function(){
|
export let configLoad = () => {
|
||||||
return dockerRegistry + "/" + repo.user + "/" + repo.repo + ":" + dockerTagVersion() +" .";
|
let config;
|
||||||
}
|
try {
|
||||||
|
config = plugins.smartfile.local.toObjectSync(paths.NpmciPackageConfig,"json");
|
||||||
|
}
|
||||||
|
catch(err){
|
||||||
|
config = {};
|
||||||
|
configStore();
|
||||||
|
plugins.beautylog.log("config initialized!");
|
||||||
|
}
|
||||||
|
|
||||||
export let dockerTagTest = function(){
|
config.dockerRegistry ? dockerRegistry = config.dockerRegistry : void(0);
|
||||||
return dockerRegistry + "/" + repo.user + "/" + repo.repo + ":test .";
|
config.dockerFilesBuilt ? dockerFilesBuilt = config.dockerFilesBuilt : void(0);
|
||||||
}
|
|
||||||
|
|
||||||
export let dockerTagRelease = function(){
|
|
||||||
return dockerRegistry + "/" + repo.user + "/" + repo.repo + ":latest .";
|
|
||||||
}
|
}
|
||||||
|
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");
|
||||||
@@ -1,9 +1,14 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
export import beautylog = require("beautylog");
|
export import beautylog = require("beautylog");
|
||||||
export let commander = require("commander");
|
export let commander = require("commander");
|
||||||
|
export let gulp = require("gulp");
|
||||||
|
export let gulpFunction = require("gulp-function");
|
||||||
|
export import path = require("path");
|
||||||
|
export import projectinfo = require("projectinfo");
|
||||||
export let q = require("q");
|
export let q = require("q");
|
||||||
export let request = require("request");
|
export let request = require("request");
|
||||||
export let shelljs = require("shelljs");
|
export let shelljs = require("shelljs");
|
||||||
export let smartssh = require("smartssh");
|
export import smartssh = require("smartssh");
|
||||||
export import smartstring = require("smartstring");
|
export import smartstring = require("smartstring");
|
||||||
export import smartfile = require("smartfile");
|
export import smartfile = require("smartfile");
|
||||||
|
export let through2 = require("through2");
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
@@ -53,7 +53,7 @@ export let prepare = function(serviceArg:string){
|
|||||||
case "docker":
|
case "docker":
|
||||||
return docker();
|
return docker();
|
||||||
case "docker-gitlab":
|
case "docker-gitlab":
|
||||||
return dockerGitlab();
|
return dockerGitlab()
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ import "typings-global";
|
|||||||
import * as plugins from "./npmci.plugins";
|
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 env 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,11 +27,9 @@ let publishNpm = function(){
|
|||||||
|
|
||||||
let publishDocker = function(){
|
let publishDocker = function(){
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
prepare("docker")
|
NpmciBuildDocker.readDockerfiles()
|
||||||
.then(function(){
|
.then(NpmciBuildDocker.pullDockerfileImages)
|
||||||
bash
|
.then(NpmciBuildDocker.pushDockerfiles)
|
||||||
bash("docker push " + env.dockerTag());
|
.then(done.resolve);
|
||||||
done.resolve();
|
|
||||||
});
|
|
||||||
return done.promise;
|
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,17 +3,48 @@ 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();
|
||||||
install(versionArg)
|
if(versionArg == "docker"){
|
||||||
.then(function(){
|
testDocker()
|
||||||
plugins.beautylog.info("now installing dependencies:");
|
.then(()=>{
|
||||||
bash("npm install");
|
|
||||||
plugins.beautylog.info("now starting tests:");
|
|
||||||
bash("npm test");
|
|
||||||
plugins.beautylog.success("test finished");
|
|
||||||
done.resolve();
|
done.resolve();
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
install(versionArg)
|
||||||
|
.then(npmDependencies)
|
||||||
|
.then(npmTest)
|
||||||
|
.then(()=>{
|
||||||
|
done.resolve();
|
||||||
|
});
|
||||||
|
}
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let npmDependencies = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now installing dependencies:");
|
||||||
|
bash("npm install");
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
let npmTest = () => {
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now starting tests:");
|
||||||
|
bash("npm test");
|
||||||
|
done.resolve();
|
||||||
|
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