Compare commits

...

92 Commits

Author SHA1 Message Date
faf538aa4d 2.3.67 2017-05-19 12:17:37 +02:00
8c28fcc906 add cflare 2017-05-19 12:14:43 +02:00
7c5cafeb1b complete modular transition 2017-05-19 12:09:33 +02:00
Phil Kunz
cf41e81153 Merge branch 'master' into 'master'
Go modular

See merge request !3
2017-05-18 20:40:14 +00:00
PhilKunz External
b6a85319b0 Go modular 2017-05-18 20:40:09 +00:00
6edd51c6e6 start modular infrastructure 2017-05-16 21:09:59 +02:00
eb57697f96 2.3.66 2017-05-15 18:27:17 +02:00
800e4d8956 fix environment detection 2017-05-15 18:27:13 +02:00
a5633a01c5 2.3.65 2017-05-15 18:10:48 +02:00
0694d3a393 update 2017-05-15 18:10:24 +02:00
b31cc4cbbf 2.3.64 2017-05-15 16:35:23 +02:00
d1e7448b40 update 2017-05-15 16:35:16 +02:00
e541159019 2.3.63 2017-05-15 16:07:08 +02:00
b6c06e2b17 remove bashBare 2017-05-15 16:07:05 +02:00
3505b2effc 2.3.62 2017-05-15 15:54:14 +02:00
29df49addb update 2017-05-15 15:54:09 +02:00
3484575108 2.3.61 2017-05-15 15:36:15 +02:00
7c4890f57a improve logging for docker 2017-05-15 15:36:09 +02:00
308d969540 2.3.60 2017-05-15 15:22:01 +02:00
5065587275 update 2017-05-15 15:21:56 +02:00
8f0092b2ef 2.3.59 2017-05-15 14:33:03 +02:00
e81d001aeb update base image for ci 2017-05-15 14:33:01 +02:00
993f6f691e 2.3.58 2017-05-15 14:28:20 +02:00
64053de75a update base image 2017-05-15 14:28:15 +02:00
1edea1046b 2.3.57 2017-05-15 14:20:00 +02:00
0f8a76ca02 update dependencies 2017-05-15 14:19:56 +02:00
7dc76be1bb 2.3.56 2017-04-03 00:06:04 +02:00
8920110783 update README 2017-04-03 00:06:00 +02:00
7419ee28e4 Merge branch 'master' of gitlab.com:gitzone/npmci 2017-04-02 23:57:25 +02:00
1f4ecb6ff6 2.3.55 2017-04-02 23:56:18 +02:00
a042674a81 fix gitlabTestTag 2017-04-02 23:56:15 +02:00
Phil Kunz
764cd8f7ee Update README.md 2017-04-02 21:48:51 +00:00
657c6870ec 2.3.54 2017-04-02 23:41:54 +02:00
566e074cf4 fix docker execution 2017-04-02 23:41:51 +02:00
90b9b61a37 update 2017-04-02 23:11:19 +02:00
88bc772ea7 2.3.53 2017-04-02 22:56:42 +02:00
76530985e7 now using newest npmts and uploading public docker images also to gitlab registry 2017-04-02 22:56:40 +02:00
2525bc1ad4 update ci 2017-03-24 22:00:14 +01:00
20bca85a12 2.3.52 2017-03-24 11:48:54 +01:00
dd260538a7 now using yarn upgrade instead yarn install to better reflect updates of packages for automatic triggers 2017-03-24 11:48:50 +01:00
d511e8c2f7 update 2017-03-24 11:44:58 +01:00
c44d6c036c 2.3.51 2017-03-11 15:56:51 +01:00
9cec914c94 now using yarn for dependencies as well 2017-03-11 15:56:48 +01:00
52a09bb8dd 2.3.50 2017-03-11 15:17:31 +01:00
1224fce295 fix yarn install decision 2017-03-11 15:17:24 +01:00
6343731772 2.3.49 2017-03-11 14:07:40 +01:00
129d22b537 update usage of yarn 2017-03-11 14:07:36 +01:00
8075281499 readd lodash typings 2017-03-11 11:52:47 +01:00
fe5f602aca 2.3.48 2017-03-11 03:35:18 +01:00
577a9b3e49 update source strings 2017-03-11 03:35:15 +01:00
e6ad22547c 2.3.47 2017-03-11 03:15:17 +01:00
8adeb5bb5c update deps 2017-03-11 03:15:13 +01:00
db0d55636e 2.3.46 2017-03-11 02:41:22 +01:00
0a73134e1c update smartshell 2017-03-11 02:41:18 +01:00
2994a9ef5b 2.3.45 2017-03-11 02:27:50 +01:00
af74e730cc fix async loop execution 2017-03-11 02:27:48 +01:00
798c909f1e 2.3.44 2017-03-11 01:34:06 +01:00
ba41776c0e update 2017-03-11 01:34:03 +01:00
254f7dcfa6 2.3.43 2017-03-11 01:20:08 +01:00
d1e060e1dc now fully async 2017-03-11 01:10:37 +01:00
Phil Kunz
bbc2e9002a Merge branch 'master' into 'master'
Go fully async with shelljs to reduce processor strain

Closes #2

See merge request !2
2017-03-08 19:22:39 +00:00
1db5d6e669 update async 2017-03-08 14:50:58 +01:00
a54015da16 update async functions 2017-03-08 14:50:41 +01:00
d9b8eb3bf0 update 2017-03-07 18:07:03 +01:00
5ede124f56 2.3.42 2017-02-19 14:53:00 +01:00
e835a17fe4 2.3.41 2017-02-19 14:46:14 +01:00
b86b090c07 update dependencies and add yarn 2017-02-19 14:46:05 +01:00
97d2a8d1b7 improve gitlab.yml 2017-02-08 23:44:47 +01:00
38e54f13ff 2.3.40 2017-02-08 21:32:49 +01:00
a11233ddb6 update package.json 2017-02-08 21:32:45 +01:00
7cfd5e4358 update links 2017-02-08 21:32:22 +01:00
431371db5a 2.3.39 2016-12-15 01:09:00 +01:00
e784c02a40 now correctly evaluating which output 2016-12-15 01:08:54 +01:00
f156b58b95 2.3.38 2016-12-15 00:06:15 +01:00
40a00cb1b0 readd logging 2016-12-15 00:06:11 +01:00
0f384a799a 2.3.37 2016-12-14 23:10:57 +01:00
d2f4512ca4 compile 2016-12-14 23:10:54 +01:00
Phil Kunz
ee7e7e2551 Merge branch 'master' into 'master'
fix tool Installation and bash without error.

See merge request !1
2016-12-14 22:03:00 +00:00
Philipp Kunz
4c3d284186 Update npmci.bash.ts 2016-12-14 16:45:48 +00:00
Philipp Kunz
5a472326ad Update npmci.install.ts 2016-12-14 16:38:57 +00:00
5021ee099d 2.3.36 2016-12-13 23:16:22 +01:00
cd7363625d now logging path 2016-12-13 23:16:19 +01:00
399168f5d0 2.3.35 2016-12-11 16:34:16 +01:00
a272556ccd improve README 2016-12-11 16:33:56 +01:00
172b9f9b3f 2.3.34 2016-12-11 16:20:33 +01:00
9eb3d1d06a fix README 2016-12-11 16:20:29 +01:00
4093675a9d 2.3.33 2016-12-11 16:19:46 +01:00
53a2fb4c78 update README 2016-12-11 16:19:25 +01:00
59ed6829e4 2.3.32 2016-12-10 23:27:37 +01:00
4e01b0c9b6 improve logs 2016-12-10 23:27:34 +01:00
85a6099d56 2.3.31 2016-12-10 22:43:16 +01:00
787145816a fix npm global Tool installation 2016-12-10 22:43:14 +01:00
130 changed files with 5345 additions and 1856 deletions

4
.gitignore vendored
View File

@@ -1,5 +1,5 @@
node_modules/ node_modules/
coverage/ coverage/
pages/
public/ public/
config.json config.json
.yarn/

View File

@@ -1,4 +1,4 @@
image: node:latest image: hosttoday/ht-docker-node:stable
stages: stages:
- test - test
@@ -14,7 +14,7 @@ testLTS:
stage: test stage: test
script: script:
- npmci install lts - npmci install lts
- npmci command npm install -g npmts - npmci command npm install -g -q npmts
- npmci test lts - npmci test lts
tags: tags:
- docker - docker
@@ -23,7 +23,7 @@ testSTABLE:
stage: test stage: test
script: script:
- npmci install stable - npmci install stable
- npmci command npm install -g npmts - npmci command npm install -g -q npmts
- npmci test stable - npmci test stable
tags: tags:
- docker - docker
@@ -32,7 +32,7 @@ testLEGACY:
stage: test stage: test
script: script:
- npmci install legacy - npmci install legacy
- npmci command npm install -g npmts - npmci command npm install -g -q npmts
- npmci test legacy - npmci test legacy
tags: tags:
- docker - docker
@@ -64,6 +64,8 @@ pages:
- npmci command npmpage --host gitlab - npmci command npmpage --host gitlab
only: only:
- tags - tags
tags:
- docker
artifacts: artifacts:
expire_in: 1 week expire_in: 1 week
paths: paths:

1
dist/cli.js vendored
View File

@@ -1,2 +1,3 @@
#!/usr/bin/env node #!/usr/bin/env node
process.env.CLI_CALL = 'true'
var index = require("../dist/index.js"); var index = require("../dist/index.js");

4
dist/index.d.ts vendored
View File

@@ -1,3 +1 @@
export { build } from './npmci.build'; import './npmci.cli';
export { install } from './npmci.install';
export { publish } from './npmci.publish';

81
dist/index.js vendored
View File

@@ -1,79 +1,4 @@
"use strict"; "use strict";
const plugins = require("./npmci.plugins"); Object.defineProperty(exports, "__esModule", { value: true });
const paths = require("./npmci.paths"); require("./npmci.cli");
let npmciInfo = new plugins.projectinfo.ProjectinfoNpm(paths.NpmciPackageRoot); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVCQUFvQiJ9
plugins.beautylog.log('npmci version: ' + npmciInfo.version);
const npmci_build_1 = require("./npmci.build");
const npmci_clean_1 = require("./npmci.clean");
const npmci_command_1 = require("./npmci.command");
const npmci_install_1 = require("./npmci.install");
const npmci_publish_1 = require("./npmci.publish");
const npmci_prepare_1 = require("./npmci.prepare");
const npmci_test_1 = require("./npmci.test");
const npmci_trigger_1 = require("./npmci.trigger");
const 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;
let smartcli = new plugins.smartcli.Smartcli();
smartcli.addVersion(npmciInfo.version);
// build
smartcli.addCommand({
commandName: 'build'
}).then((argv) => {
npmci_build_1.build(argv._[1])
.then(NpmciEnv.configStore);
});
// clean
smartcli.addCommand({
commandName: 'clean'
}).then((argv) => {
npmci_clean_1.clean()
.then(NpmciEnv.configStore);
});
// command
smartcli.addCommand({
commandName: 'command'
}).then((argv) => {
npmci_command_1.command()
.then(NpmciEnv.configStore);
});
// install
smartcli.addCommand({
commandName: 'install'
}).then((argv) => {
npmci_install_1.install(argv._[1])
.then(NpmciEnv.configStore);
});
// prepare
smartcli.addCommand({
commandName: 'prepare'
}).then((argv) => {
npmci_prepare_1.prepare(argv._[1])
.then(NpmciEnv.configStore);
});
// publish
smartcli.addCommand({
commandName: 'publish'
}).then((argv) => {
npmci_publish_1.publish(argv._[1])
.then(NpmciEnv.configStore);
});
// test
smartcli.addCommand({
commandName: 'test'
}).then((argv) => {
npmci_test_1.test(argv._[1])
.then(NpmciEnv.configStore);
});
// trigger
smartcli.addCommand({
commandName: 'trigger'
}).then((argv) => {
npmci_trigger_1.trigger();
});
smartcli.startParse();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkNBQTBDO0FBQzFDLHVDQUFzQztBQUN0QyxJQUFJLFNBQVMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQzlFLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUU1RCwrQ0FBbUM7QUFDbkMsK0NBQW1DO0FBQ25DLG1EQUF1QztBQUN2QyxtREFBdUM7QUFDdkMsbURBQXVDO0FBQ3ZDLG1EQUF1QztBQUN2Qyw2Q0FBaUM7QUFDakMsbURBQXVDO0FBQ3ZDLHdDQUF1QztBQUV2Qyw2Q0FBbUM7QUFBM0IsOEJBQUEsS0FBSyxDQUFBO0FBQ2IsaURBQXdDO0FBQWhDLGtDQUFBLE9BQU8sQ0FBQTtBQUNmLGlEQUF3QztBQUFoQyxrQ0FBQSxPQUFPLENBQUE7QUFFZixJQUFJLFFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUE7QUFDOUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7QUFFdEMsUUFBUTtBQUNSLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDaEIsV0FBVyxFQUFFLE9BQU87Q0FDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUk7SUFDVCxtQkFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ25DLENBQUMsQ0FBQyxDQUFBO0FBRUYsUUFBUTtBQUNSLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDaEIsV0FBVyxFQUFFLE9BQU87Q0FDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUk7SUFDVCxtQkFBSyxFQUFFO1NBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUNuQyxDQUFDLENBQUMsQ0FBQTtBQUVGLFVBQVU7QUFDVixRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ2hCLFdBQVcsRUFBRSxTQUFTO0NBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJO0lBQ1QsdUJBQU8sRUFBRTtTQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFDLENBQUE7QUFFRixVQUFVO0FBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNoQixXQUFXLEVBQUUsU0FBUztDQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULHVCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFDLENBQUE7QUFFRixVQUFVO0FBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNoQixXQUFXLEVBQUUsU0FBUztDQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULHVCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFDLENBQUE7QUFFRixVQUFVO0FBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNoQixXQUFXLEVBQUUsU0FBUztDQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULHVCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFDLENBQUE7QUFFRixPQUFPO0FBQ1AsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNoQixXQUFXLEVBQUUsTUFBTTtDQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULGlCQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFDLENBQUE7QUFFRixVQUFVO0FBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNoQixXQUFXLEVBQUUsU0FBUztDQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULHVCQUFPLEVBQUUsQ0FBQTtBQUNiLENBQUMsQ0FBQyxDQUFBO0FBRUYsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFBIn0=

8
dist/mod_build/index.d.ts vendored Normal file
View File

@@ -0,0 +1,8 @@
/**
* defines possible build services
*/
export declare type TBuildService = 'docker';
/**
* builds for a specific service
*/
export declare let build: (commandArg: any) => Promise<void>;

28
dist/mod_build/index.js vendored Normal file
View File

@@ -0,0 +1,28 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./mod.plugins");
const npmciMods = require("../npmci.mods");
/**
* builds for a specific service
*/
exports.build = (commandArg) => __awaiter(this, void 0, void 0, function* () {
switch (commandArg) {
case 'docker':
let modDocker = yield npmciMods.modDocker.load();
yield modDocker.build();
break;
default:
plugins.beautylog.log('build target ' + commandArg + ' not recognised!');
}
;
return;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfYnVpbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLHlDQUF3QztBQUd4QywyQ0FBMEM7QUFPMUM7O0dBRUc7QUFDUSxRQUFBLEtBQUssR0FBRyxDQUFPLFVBQVU7SUFDbEMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNuQixLQUFLLFFBQVE7WUFDWCxJQUFJLFNBQVMsR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDaEQsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDdkIsS0FBSyxDQUFBO1FBQ1A7WUFDRSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsVUFBVSxHQUFHLGtCQUFrQixDQUFDLENBQUE7SUFDNUUsQ0FBQztJQUFBLENBQUM7SUFDRixNQUFNLENBQUE7QUFDUixDQUFDLENBQUEsQ0FBQSJ9

1
dist/mod_build/mod.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from '../npmci.plugins';

7
dist/mod_build/mod.plugins.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmci.plugins"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfYnVpbGQvbW9kLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzQ0FBZ0MifQ==

4
dist/mod_clean/index.d.ts vendored Normal file
View File

@@ -0,0 +1,4 @@
/**
* cleans npmci config files
*/
export declare let clean: () => Promise<void>;

20
dist/mod_clean/index.js vendored Normal file
View File

@@ -0,0 +1,20 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./mod.plugins");
const paths = require("../npmci.paths");
/**
* cleans npmci config files
*/
exports.clean = () => __awaiter(this, void 0, void 0, function* () {
plugins.smartfile.fs.removeSync(paths.NpmciPackageConfig);
return;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfY2xlYW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLHlDQUF3QztBQUN4Qyx3Q0FBdUM7QUFFdkM7O0dBRUc7QUFDUSxRQUFBLEtBQUssR0FBRztJQUNqQixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDekQsTUFBTSxDQUFBO0FBQ1IsQ0FBQyxDQUFBLENBQUEifQ==

1
dist/mod_clean/mod.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from '../npmci.plugins';

7
dist/mod_clean/mod.plugins.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmci.plugins"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfY2xlYW4vbW9kLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzQ0FBZ0MifQ==

0
dist/mod_cloudflare/index.d.ts vendored Normal file
View File

1
dist/mod_cloudflare/index.js vendored Normal file
View File

@@ -0,0 +1 @@
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfY2xvdWRmbGFyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=

3
dist/mod_cloudflare/mod.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
export * from '../npmci.plugins';
import * as cflare from 'cflare';
export { cflare };

9
dist/mod_cloudflare/mod.plugins.js vendored Normal file
View File

@@ -0,0 +1,9 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmci.plugins"));
const cflare = require("cflare");
exports.cflare = cflare;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfY2xvdWRmbGFyZS9tb2QucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNDQUFnQztBQUVoQyxpQ0FBZ0M7QUFHNUIsd0JBQU0ifQ==

1
dist/mod_command/index.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export declare let command: () => Promise<void>;

24
dist/mod_command/index.js vendored Normal file
View File

@@ -0,0 +1,24 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const npmci_bash_1 = require("../npmci.bash");
exports.command = () => __awaiter(this, void 0, void 0, function* () {
let wrappedCommand = '';
let argvArray = process.argv;
for (let i = 3; i < argvArray.length; i++) {
wrappedCommand = wrappedCommand + argvArray[i];
if (i + 1 !== argvArray.length) {
wrappedCommand = wrappedCommand + ' ';
}
}
yield npmci_bash_1.bash(wrappedCommand);
return;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfY29tbWFuZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsOENBQW9DO0FBRXpCLFFBQUEsT0FBTyxHQUFHO0lBQ25CLElBQUksY0FBYyxHQUFXLEVBQUUsQ0FBQTtJQUMvQixJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFBO0lBQzVCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzFDLGNBQWMsR0FBRyxjQUFjLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzlDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFBQyxjQUFjLEdBQUcsY0FBYyxHQUFHLEdBQUcsQ0FBQTtRQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELE1BQU0saUJBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUMxQixNQUFNLENBQUE7QUFDUixDQUFDLENBQUEsQ0FBQSJ9

1
dist/mod_command/mod.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from '../npmci.plugins';

7
dist/mod_command/mod.plugins.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmci.plugins"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfY29tbWFuZC9tb2QucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNDQUFnQyJ9

1
dist/mod_docker/index.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from './mod.builddocker';

7
dist/mod_docker/index.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("./mod.builddocker"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfZG9ja2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUNBQWlDIn0=

View File

@@ -1,43 +1,41 @@
/// <reference types="q" />
/// <reference types="node" /> /// <reference types="node" />
import * as plugins from './npmci.plugins';
/** /**
* builds a cwd of Dockerfiles by triggering a promisechain * builds a cwd of Dockerfiles by triggering a promisechain
*/ */
export declare let build: () => plugins.q.Promise<{}>; export declare let build: () => Promise<void>;
/** /**
* creates instance of class Dockerfile for all Dockerfiles in cwd * creates instance of class Dockerfile for all Dockerfiles in cwd
* @returns Promise<Dockerfile[]> * @returns Promise<Dockerfile[]>
*/ */
export declare let readDockerfiles: () => plugins.q.Promise<Dockerfile[]>; export declare let readDockerfiles: () => Promise<Dockerfile[]>;
/** /**
* sorts Dockerfiles into a dependency chain * sorts Dockerfiles into a dependency chain
* @param sortableArrayArg an array of instances of class Dockerfile * @param sortableArrayArg an array of instances of class Dockerfile
* @returns Promise<Dockerfile[]> * @returns Promise<Dockerfile[]>
*/ */
export declare let sortDockerfiles: (sortableArrayArg: Dockerfile[]) => plugins.q.Promise<Dockerfile[]>; export declare let sortDockerfiles: (sortableArrayArg: Dockerfile[]) => Promise<Dockerfile[]>;
/** /**
* maps local Dockerfiles dependencies to the correspoding Dockerfile class instances * maps local Dockerfiles dependencies to the correspoding Dockerfile class instances
*/ */
export declare let mapDockerfiles: (sortedArray: Dockerfile[]) => plugins.q.Promise<Dockerfile[]>; export declare let mapDockerfiles: (sortedArray: Dockerfile[]) => Promise<Dockerfile[]>;
/** /**
* builds the correspoding real docker image for each Dockerfile class instance * builds the correspoding real docker image for each Dockerfile class instance
*/ */
export declare let buildDockerfiles: (sortedArrayArg: Dockerfile[]) => plugins.q.Promise<{}>; export declare let buildDockerfiles: (sortedArrayArg: Dockerfile[]) => Promise<Dockerfile[]>;
/** /**
* pushes the real Dockerfile images to a Docker registry * pushes the real Dockerfile images to a Docker registry
*/ */
export declare let pushDockerfiles: (sortedArrayArg: Dockerfile[]) => plugins.q.Promise<{}>; export declare let pushDockerfiles: (sortedArrayArg: Dockerfile[]) => Promise<Dockerfile[]>;
/** /**
* pulls corresponding real Docker images for instances of Dockerfile from a registry. * pulls corresponding real Docker images for instances of Dockerfile from a registry.
* This is needed if building, testing, and publishing of Docker images is carried out in seperate CI stages. * This is needed if building, testing, and publishing of Docker images is carried out in seperate CI stages.
*/ */
export declare let pullDockerfileImages: (sortableArrayArg: Dockerfile[], registryArg?: string) => plugins.q.Promise<{}>; export declare let pullDockerfileImages: (sortableArrayArg: Dockerfile[], registryArg?: string) => Promise<Dockerfile[]>;
/** /**
* tests all Dockerfiles in by calling class Dockerfile.test(); * tests all Dockerfiles in by calling class Dockerfile.test();
* @param sortedArrayArg Dockerfile[] that contains all Dockerfiles in cwd * @param sortedArrayArg Dockerfile[] that contains all Dockerfiles in cwd
*/ */
export declare let testDockerfiles: (sortedArrayArg: Dockerfile[]) => plugins.q.Promise<{}>; export declare let testDockerfiles: (sortedArrayArg: Dockerfile[]) => Promise<Dockerfile[]>;
/** /**
* class Dockerfile represents a Dockerfile on disk in npmci * class Dockerfile represents a Dockerfile on disk in npmci
*/ */
@@ -47,7 +45,8 @@ export declare class Dockerfile {
version: string; version: string;
cleanTag: string; cleanTag: string;
buildTag: string; buildTag: string;
testTag: string; gitlabTestTag: string;
gitlabReleaseTag: string;
releaseTag: string; releaseTag: string;
containerName: string; containerName: string;
content: string; content: string;
@@ -62,26 +61,27 @@ export declare class Dockerfile {
/** /**
* builds the Dockerfile * builds the Dockerfile
*/ */
build(): plugins.q.Promise<{}>; build(): Promise<void>;
/** /**
* pushes the Dockerfile to a registry * pushes the Dockerfile to a registry
*/ */
push(stageArg: any): plugins.q.Promise<{}>; push(stageArg: any): Promise<void>;
/** /**
* pulls the Dockerfile from a registry * pulls the Dockerfile from a registry
*/ */
pull(registryArg: string): void; pull(registryArg: string): Promise<void>;
/** /**
* tests the Dockerfile; * tests the Dockerfile;
*/ */
test(): void; test(): Promise<void>;
/** /**
* gets the id of a Dockerfile * gets the id of a Dockerfile
*/ */
getId(): string; getId(): Promise<string>;
} }
/** /**
* * returns a version for a docker file
* @execution SYNC
*/ */
export declare let dockerFileVersion: (dockerfileNameArg: string) => string; export declare let dockerFileVersion: (dockerfileNameArg: string) => string;
/** /**

291
dist/mod_docker/mod.builddocker.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/mod_docker/mod.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from '../npmci.plugins';

7
dist/mod_docker/mod.plugins.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmci.plugins"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfZG9ja2VyL21vZC5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0NBQWdDIn0=

5
dist/mod_install/index.d.ts vendored Normal file
View File

@@ -0,0 +1,5 @@
/**
* Install a specific version of node
* @param versionArg
*/
export declare let install: (versionArg: any) => Promise<void>;

68
dist/mod_install/index.js vendored Normal file
View File

@@ -0,0 +1,68 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./mod.plugins");
const configModule = require("../npmci.config");
const npmci_bash_1 = require("../npmci.bash");
/**
* Install a specific version of node
* @param versionArg
*/
exports.install = (versionArg) => __awaiter(this, void 0, void 0, function* () {
plugins.beautylog.log(`now installing node version ${versionArg}`);
let version;
if (versionArg === 'stable') {
version = 'stable';
}
else if (versionArg === 'lts') {
version = '6';
}
else if (versionArg === 'legacy') {
version = '6';
}
else {
version = versionArg;
}
;
if (yield npmci_bash_1.nvmAvailable.promise) {
yield npmci_bash_1.bash(`nvm install ${version} && nvm alias default ${version}`);
plugins.beautylog.success(`Node version ${version} successfully installed!`);
}
else {
plugins.beautylog.warn('Nvm not in path so staying at installed node version!');
}
;
yield npmci_bash_1.bash('node -v');
yield npmci_bash_1.bash('npm -v');
// lets look for further config
yield configModule.getConfig()
.then((configArg) => __awaiter(this, void 0, void 0, function* () {
plugins.beautylog.log('Now checking for needed global npm tools...');
for (let npmTool of configArg.globalNpmTools) {
plugins.beautylog.info(`Checking for global "${npmTool}"`);
let whichOutput = yield npmci_bash_1.bashNoError(`which ${npmTool}`);
let toolAvailable = !((/not\sfound/.test(whichOutput)) || whichOutput === '');
if (toolAvailable) {
plugins.beautylog.log(`Tool ${npmTool} is available`);
}
else {
plugins.beautylog.info(`globally installing ${npmTool} from npm`);
if (yield npmci_bash_1.yarnAvailable.promise) {
yield npmci_bash_1.bash(`yarn global add ${npmTool}`);
}
else {
yield npmci_bash_1.bash(`npm install ${npmTool} -q -g`);
}
}
}
plugins.beautylog.success('all global npm tools specified in npmextra.json are now available!');
}));
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfaW5zdGFsbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEseUNBQXdDO0FBQ3hDLGdEQUErQztBQUMvQyw4Q0FJc0M7QUFFdEM7OztHQUdHO0FBQ1EsUUFBQSxPQUFPLEdBQUcsQ0FBTyxVQUFVO0lBQ3BDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLCtCQUErQixVQUFVLEVBQUUsQ0FBQyxDQUFBO0lBQ2xFLElBQUksT0FBZSxDQUFBO0lBQ25CLEVBQUUsQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVCLE9BQU8sR0FBRyxRQUFRLENBQUE7SUFDcEIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoQyxPQUFPLEdBQUcsR0FBRyxDQUFBO0lBQ2YsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNuQyxPQUFPLEdBQUcsR0FBRyxDQUFBO0lBQ2YsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sT0FBTyxHQUFHLFVBQVUsQ0FBQTtJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUNGLEVBQUUsQ0FBQyxDQUFDLE1BQU0seUJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQy9CLE1BQU0saUJBQUksQ0FBQyxlQUFlLE9BQU8seUJBQXlCLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDcEUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLE9BQU8sMEJBQTBCLENBQUMsQ0FBQTtJQUM5RSxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFBO0lBQ2pGLENBQUM7SUFBQSxDQUFDO0lBQ0YsTUFBTSxpQkFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3JCLE1BQU0saUJBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNwQiwrQkFBK0I7SUFDL0IsTUFBTSxZQUFZLENBQUMsU0FBUyxFQUFFO1NBQzNCLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtRQUNwRSxHQUFHLENBQUMsQ0FBQyxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUM3QyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsT0FBTyxHQUFHLENBQUMsQ0FBQTtZQUMxRCxJQUFJLFdBQVcsR0FBVyxNQUFNLHdCQUFXLENBQUMsU0FBUyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1lBQy9ELElBQUksYUFBYSxHQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxXQUFXLEtBQUssRUFBRSxDQUFDLENBQUE7WUFDdEYsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDbEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxPQUFPLGVBQWUsQ0FBQyxDQUFBO1lBQ3ZELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsT0FBTyxXQUFXLENBQUMsQ0FBQTtnQkFDakUsRUFBRSxDQUFDLENBQUMsTUFBTSwwQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ2hDLE1BQU0saUJBQUksQ0FBQyxtQkFBbUIsT0FBTyxFQUFFLENBQUMsQ0FBQTtnQkFDMUMsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixNQUFNLGlCQUFJLENBQUMsZUFBZSxPQUFPLFFBQVEsQ0FBQyxDQUFBO2dCQUM1QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvRUFBb0UsQ0FBQyxDQUFBO0lBQ2pHLENBQUMsQ0FBQSxDQUFDLENBQUE7QUFDTixDQUFDLENBQUEsQ0FBQSJ9

1
dist/mod_install/mod.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from '../npmci.plugins';

7
dist/mod_install/mod.plugins.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmci.plugins"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfaW5zdGFsbC9tb2QucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNDQUFnQyJ9

View File

@@ -1,5 +1,3 @@
/// <reference types="q" />
import * as plugins from './npmci.plugins';
/** /**
* defines possible prepare services * defines possible prepare services
*/ */
@@ -8,4 +6,4 @@ export declare type TPrepService = 'npm' | 'docker' | 'docker-gitlab' | 'ssh';
* the main exported prepare function * the main exported prepare function
* @param servieArg describes the service to prepare * @param servieArg describes the service to prepare
*/ */
export declare let prepare: (serviceArg: TPrepService) => plugins.q.Promise<{}>; export declare let prepare: (serviceArg: TPrepService) => Promise<void>;

81
dist/mod_prepare/index.js vendored Normal file
View File

@@ -0,0 +1,81 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./mod.plugins");
const npmci_bash_1 = require("../npmci.bash");
const env = require("../npmci.env");
const sshModule = require("../npmci.ssh");
/**
* authenticates npm with token from env var
*/
let npm = () => __awaiter(this, void 0, void 0, function* () {
let npmrcPrefix = '//registry.npmjs.org/:_authToken=';
let npmToken = process.env.NPMCI_TOKEN_NPM;
let npmrcFileString = npmrcPrefix + npmToken;
if (npmToken) {
plugins.beautylog.info('found access token');
}
else {
plugins.beautylog.error('no access token found! Exiting!');
process.exit(1);
}
plugins.smartfile.memory.toFsSync(npmrcFileString, '/root/.npmrc');
return;
});
/**
* logs in docker
*/
let docker = () => __awaiter(this, void 0, void 0, function* () {
env.setDockerRegistry('docker.io');
let dockerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)/;
if (!process.env.NPMCI_LOGIN_DOCKER) {
plugins.beautylog.error('You have to specify Login Data to the Docker Registry');
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 username = dockerRegexResultArray[1];
let password = dockerRegexResultArray[2];
yield npmci_bash_1.bash('docker login -u ' + username + ' -p ' + password);
return;
});
/**
* prepare docker for gitlab registry
*/
let dockerGitlab = () => __awaiter(this, void 0, void 0, function* () {
env.setDockerRegistry('registry.gitlab.com');
plugins.shelljs.exec('docker login -u gitlab-ci-token -p ' + process.env.CI_BUILD_TOKEN + ' ' + 'registry.gitlab.com');
return;
});
/**
* prepare ssh
*/
let ssh = () => __awaiter(this, void 0, void 0, function* () {
yield sshModule.ssh();
});
/**
* the main exported prepare function
* @param servieArg describes the service to prepare
*/
exports.prepare = (serviceArg) => __awaiter(this, void 0, void 0, function* () {
switch (serviceArg) {
case 'npm':
return yield npm();
case 'docker':
return yield docker();
case 'docker-gitlab':
return yield dockerGitlab();
case 'ssh':
return yield ssh();
default:
break;
}
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcHJlcGFyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEseUNBQXdDO0FBQ3hDLDhDQUFvQztBQUNwQyxvQ0FBbUM7QUFDbkMsMENBQXlDO0FBVXpDOztHQUVHO0FBQ0gsSUFBSSxHQUFHLEdBQUc7SUFDUixJQUFJLFdBQVcsR0FBVyxtQ0FBbUMsQ0FBQTtJQUM3RCxJQUFJLFFBQVEsR0FBVyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQTtJQUNsRCxJQUFJLGVBQWUsR0FBVyxXQUFXLEdBQUcsUUFBUSxDQUFBO0lBQ3BELEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDYixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUE7UUFDMUQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNsRSxNQUFNLENBQUE7QUFDUixDQUFDLENBQUEsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxNQUFNLEdBQUc7SUFDWCxHQUFHLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDbEMsSUFBSSxXQUFXLEdBQUcscUNBQXFDLENBQUE7SUFDdkQsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUNwQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFBO1FBQ2hGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxDQUFBLENBQUMsdUNBQXVDO0lBQzlKLElBQUksc0JBQXNCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDN0UsSUFBSSxRQUFRLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEMsSUFBSSxRQUFRLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEMsTUFBTSxpQkFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUE7SUFDN0QsTUFBTSxDQUFBO0FBQ1IsQ0FBQyxDQUFBLENBQUE7QUFFRDs7R0FFRztBQUNILElBQUksWUFBWSxHQUFHO0lBQ2pCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQzVDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxDQUFBO0lBQ3RILE1BQU0sQ0FBQTtBQUNSLENBQUMsQ0FBQSxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxJQUFJLEdBQUcsR0FBRztJQUNSLE1BQU0sU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSxDQUFBO0FBRUQ7OztHQUdHO0FBQ1EsUUFBQSxPQUFPLEdBQUcsQ0FBTyxVQUF3QjtJQUNsRCxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ25CLEtBQUssS0FBSztZQUNSLE1BQU0sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLEtBQUssUUFBUTtZQUNYLE1BQU0sQ0FBQyxNQUFNLE1BQU0sRUFBRSxDQUFBO1FBQ3ZCLEtBQUssZUFBZTtZQUNsQixNQUFNLENBQUMsTUFBTSxZQUFZLEVBQUUsQ0FBQTtRQUM3QixLQUFLLEtBQUs7WUFDUixNQUFNLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUNwQjtZQUNFLEtBQUssQ0FBQTtJQUNULENBQUM7QUFDSCxDQUFDLENBQUEsQ0FBQSJ9

1
dist/mod_prepare/mod.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from '../npmci.plugins';

7
dist/mod_prepare/mod.plugins.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmci.plugins"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcHJlcGFyZS9tb2QucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNDQUFnQyJ9

View File

@@ -1,5 +1,4 @@
/// <reference types="q" /> import { Dockerfile } from '../mod_docker/index';
import * as plugins from './npmci.plugins';
/** /**
* type of supported services * type of supported services
*/ */
@@ -8,4 +7,4 @@ export declare type TPubService = 'npm' | 'docker';
* the main exported publish function. * the main exported publish function.
* @param pubServiceArg references targeted service to publish to * @param pubServiceArg references targeted service to publish to
*/ */
export declare let publish: (pubServiceArg?: TPubService) => plugins.q.Promise<{}>; export declare let publish: (pubServiceArg?: TPubService) => Promise<void | Dockerfile[]>;

47
dist/mod_publish/index.js vendored Normal file
View File

@@ -0,0 +1,47 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./mod.plugins");
const npmci_bash_1 = require("../npmci.bash");
const npmciMods = require("../npmci.mods");
/**
* the main exported publish function.
* @param pubServiceArg references targeted service to publish to
*/
exports.publish = (pubServiceArg = 'npm') => __awaiter(this, void 0, void 0, function* () {
switch (pubServiceArg) {
case 'npm':
return yield publishNpm();
case 'docker':
return yield publishDocker();
}
});
/**
* tries to publish current cwd to NPM registry
*/
let publishNpm = () => __awaiter(this, void 0, void 0, function* () {
let modPrepare = yield npmciMods.modPrepare.load();
yield modPrepare.prepare('npm');
yield npmci_bash_1.bash('npm publish');
plugins.beautylog.ok('Done!');
});
/**
* tries to publish current cwd to Docker registry
*/
let publishDocker = () => __awaiter(this, void 0, void 0, function* () {
let modDocker = yield npmciMods.modDocker.load();
return yield modDocker.readDockerfiles()
.then(modDocker.pullDockerfileImages)
.then(modDocker.pushDockerfiles)
.then(dockerfileArray => {
return dockerfileArray;
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcHVibGlzaC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEseUNBQXdDO0FBQ3hDLDhDQUFvQztBQUdwQywyQ0FBMEM7QUFXMUM7OztHQUdHO0FBQ1EsUUFBQSxPQUFPLEdBQUcsQ0FBTyxnQkFBNkIsS0FBSztJQUM1RCxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLEtBQUssS0FBSztZQUNSLE1BQU0sQ0FBQyxNQUFNLFVBQVUsRUFBRSxDQUFBO1FBQzNCLEtBQUssUUFBUTtZQUNYLE1BQU0sQ0FBQyxNQUFNLGFBQWEsRUFBRSxDQUFBO0lBQ2hDLENBQUM7QUFDSCxDQUFDLENBQUEsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxVQUFVLEdBQUc7SUFDZixJQUFJLFVBQVUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDbEQsTUFBTSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQy9CLE1BQU0saUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUN6QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUMvQixDQUFDLENBQUEsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxhQUFhLEdBQUc7SUFDbEIsSUFBSSxTQUFTLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2hELE1BQU0sQ0FBQyxNQUFNLFNBQVMsQ0FBQyxlQUFlLEVBQUU7U0FDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQztTQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztTQUMvQixJQUFJLENBQUMsZUFBZTtRQUNuQixNQUFNLENBQUMsZUFBZSxDQUFBO0lBQ3hCLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFBLENBQUEifQ==

1
dist/mod_publish/mod.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from '../npmci.plugins';

7
dist/mod_publish/mod.plugins.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmci.plugins"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcHVibGlzaC9tb2QucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNDQUFnQyJ9

View File

@@ -1,4 +1,4 @@
/** /**
* the main run function to submit a service to a servezone * the main run function to submit a service to a servezone
*/ */
export declare let run: (configArg: any) => void; export declare let run: (configArg: any) => Promise<void>;

37
dist/mod_servezone/index.js vendored Normal file
View File

@@ -0,0 +1,37 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("../npmci.plugins");
/**
* servezoneRegex is the regex that parses the servezone connection data
* parses strings in the form of "servezone.example.com|3000|somepassword"
*/
let servezoneRegex = /^(.*)\|(.*)\|(.*)/;
/**
* holds the results of the parsed servezone env string
*/
let servezoneRegexResultArray = servezoneRegex.exec(process.env.NPMCI_SERVEZONE);
/**
* the data object that is used for the smartsocket client object
*/
let smartsocketClientConstructorOptions = {
alias: 'npmci',
password: servezoneRegexResultArray[3],
port: parseInt(servezoneRegexResultArray[2]),
role: 'ci',
url: servezoneRegexResultArray[1]
};
/**
* the main run function to submit a service to a servezone
*/
exports.run = (configArg) => __awaiter(this, void 0, void 0, function* () {
new plugins.smartsocket.SmartsocketClient(smartsocketClientConstructorOptions);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2Rfc2VydmV6b25lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMkM7QUFFM0M7OztHQUdHO0FBQ0gsSUFBSSxjQUFjLEdBQUcsbUJBQW1CLENBQUE7QUFFeEM7O0dBRUc7QUFDSCxJQUFJLHlCQUF5QixHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUVoRjs7R0FFRztBQUNILElBQUksbUNBQW1DLEdBQUc7SUFDeEMsS0FBSyxFQUFFLE9BQU87SUFDZCxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLElBQUksRUFBRSxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsSUFBSSxFQUFFLElBQUk7SUFDVixHQUFHLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDO0NBQ2xDLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsR0FBRyxHQUFHLENBQU8sU0FBUztJQUMvQixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQ3ZDLG1DQUFtQyxDQUNwQyxDQUFBO0FBQ0gsQ0FBQyxDQUFBLENBQUEifQ==

5
dist/mod_test/index.d.ts vendored Normal file
View File

@@ -0,0 +1,5 @@
/**
* the main test function
* @param versionArg
*/
export declare let test: (versionArg: any) => Promise<void>;

48
dist/mod_test/index.js vendored Normal file
View File

@@ -0,0 +1,48 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./mod.plugins");
const npmci_bash_1 = require("../npmci.bash");
const npmciMods = require("../npmci.mods");
let npmDependencies = () => __awaiter(this, void 0, void 0, function* () {
plugins.beautylog.info('now installing dependencies:');
if (yield npmci_bash_1.yarnAvailable.promise) {
yield npmci_bash_1.bash('yarn upgrade');
}
else {
yield npmci_bash_1.bash('npm install');
}
});
let npmTest = () => __awaiter(this, void 0, void 0, function* () {
plugins.beautylog.info('now starting tests:');
yield npmci_bash_1.bash('npm test');
});
let testDocker = () => __awaiter(this, void 0, void 0, function* () {
let modDocker = yield npmciMods.modDocker.load();
return yield modDocker.readDockerfiles()
.then(modDocker.pullDockerfileImages)
.then(modDocker.testDockerfiles);
});
/**
* the main test function
* @param versionArg
*/
exports.test = (versionArg) => __awaiter(this, void 0, void 0, function* () {
if (versionArg === 'docker') {
yield testDocker();
}
else {
let modInstall = yield npmciMods.modInstall.load();
yield modInstall.install(versionArg)
.then(npmDependencies)
.then(npmTest);
}
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfdGVzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEseUNBQXdDO0FBQ3hDLDhDQUFtRDtBQUVuRCwyQ0FBMEM7QUFLMUMsSUFBSSxlQUFlLEdBQUc7SUFDcEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQTtJQUN0RCxFQUFFLENBQUMsQ0FBQyxNQUFNLDBCQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLGlCQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxpQkFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzNCLENBQUM7QUFDSCxDQUFDLENBQUEsQ0FBQTtBQUVELElBQUksT0FBTyxHQUFHO0lBQ1osT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUM3QyxNQUFNLGlCQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7QUFDeEIsQ0FBQyxDQUFBLENBQUE7QUFFRCxJQUFJLFVBQVUsR0FBRztJQUNmLElBQUksU0FBUyxHQUFHLE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNoRCxNQUFNLENBQUMsTUFBTSxTQUFTLENBQUMsZUFBZSxFQUFFO1NBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7U0FDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUNwQyxDQUFDLENBQUEsQ0FBQTtBQUVEOzs7R0FHRztBQUNRLFFBQUEsSUFBSSxHQUFHLENBQU8sVUFBVTtJQUNqQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM1QixNQUFNLFVBQVUsRUFBRSxDQUFBO0lBQ3BCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLElBQUksVUFBVSxHQUFHLE1BQU0sU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNsRCxNQUFNLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO2FBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2xCLENBQUM7QUFDSCxDQUFDLENBQUEsQ0FBQSJ9

1
dist/mod_test/mod.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from '../npmci.plugins';

7
dist/mod_test/mod.plugins.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmci.plugins"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfdGVzdC9tb2QucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNDQUFnQyJ9

1
dist/mod_trigger/index.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export declare let trigger: () => Promise<void>;

35
dist/mod_trigger/index.js vendored Normal file
View File

@@ -0,0 +1,35 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./mod.plugins");
let triggerValueRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|?([a-zA-Z0-9\.\-\/]*)/;
exports.trigger = () => __awaiter(this, void 0, void 0, function* () {
plugins.beautylog.info('now running triggers');
plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_TRIGGER_*', evaluateTrigger);
});
let evaluateTrigger = (triggerEnvVarArg) => __awaiter(this, void 0, void 0, function* () {
let triggerRegexResultArray = triggerValueRegex.exec(triggerEnvVarArg);
let regexDomain = triggerRegexResultArray[1];
let regexProjectId = triggerRegexResultArray[2];
let regexProjectTriggerToken = triggerRegexResultArray[3];
let regexRefName = triggerRegexResultArray[4];
let regexTriggerName;
if (triggerRegexResultArray.length === 6) {
regexTriggerName = triggerRegexResultArray[5];
}
else {
regexTriggerName = 'Unnamed Trigger';
}
plugins.beautylog.info('Found Trigger!');
plugins.beautylog.log('triggering build for ref ' + regexRefName + ' of ' + regexTriggerName);
plugins.request.post('https://gitlab.com/api/v3/projects/' + regexProjectId + '/trigger/builds', { form: { token: regexProjectTriggerToken, ref: regexRefName }
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfdHJpZ2dlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEseUNBQXdDO0FBR3hDLElBQUksaUJBQWlCLEdBQUcsZ0dBQWdHLENBQUE7QUFFN0csUUFBQSxPQUFPLEdBQUc7SUFDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUM5QyxPQUFPLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLENBQUE7QUFDdEYsQ0FBQyxDQUFBLENBQUE7QUFFRCxJQUFJLGVBQWUsR0FBRyxDQUFPLGdCQUFnQjtJQUMzQyxJQUFJLHVCQUF1QixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ3RFLElBQUksV0FBVyxHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzVDLElBQUksY0FBYyxHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLElBQUksd0JBQXdCLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekQsSUFBSSxZQUFZLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDN0MsSUFBSSxnQkFBZ0IsQ0FBQTtJQUNwQixFQUFFLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxnQkFBZ0IsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQTtJQUN0QyxDQUFDO0lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUN4QyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsR0FBRyxZQUFZLEdBQUcsTUFBTSxHQUFHLGdCQUFnQixDQUFDLENBQUE7SUFDN0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2xCLHFDQUFxQyxHQUFHLGNBQWMsR0FBRyxpQkFBaUIsRUFDMUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtLQUMvRCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUEsQ0FBQSJ9

1
dist/mod_trigger/mod.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from '../npmci.plugins';

7
dist/mod_trigger/mod.plugins.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmci.plugins"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfdHJpZ2dlci9tb2QucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNDQUFnQyJ9

19
dist/npmci.bash.d.ts vendored
View File

@@ -1,3 +1,16 @@
export declare let nvmAvailable: boolean; import * as plugins from './npmci.plugins';
export declare let bash: (commandArg: string, retryArg?: number, bareArg?: boolean) => string; /**
export declare let bashBare: (commandArg: any, retryArg?: number) => string; * wether nvm is available or not
*/
export declare let nvmAvailable: plugins.q.Deferred<boolean>;
export declare let yarnAvailable: plugins.q.Deferred<boolean>;
/**
* bash() allows using bash with nvm in path
* @param commandArg - The command to execute
* @param retryArg - The retryArg: 0 to any positive number will retry, -1 will always succeed, -2 will return undefined
*/
export declare let bash: (commandArg: string, retryArg?: number) => Promise<string>;
/**
* bashNoError allows executing stuff without throwing an error
*/
export declare let bashNoError: (commandArg: string) => Promise<string>;

129
dist/npmci.bash.js vendored
View File

@@ -1,51 +1,106 @@
"use strict"; "use strict";
const plugins = require("./npmci.plugins"); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
let nvmSourceString = ''; return new (P || (P = Promise))(function (resolve, reject) {
exports.nvmAvailable = false; function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
let checkNvm = () => { function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
if (plugins.shelljs.exec(`bash -c "source /usr/local/nvm/nvm.sh"`, { silent: true }).code === 0) { function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
nvmSourceString = `source /usr/local/nvm/nvm.sh && `; step((generator = generator.apply(thisArg, _arguments || [])).next());
exports.nvmAvailable = true; });
}
else if (plugins.shelljs.exec(`bash -c "source ~/.nvm/nvm.sh"`, { silent: true }).code === 0) {
nvmSourceString = `source ~/.nvm/nvm.sh && `;
exports.nvmAvailable = true;
}
;
}; };
checkNvm(); Object.defineProperty(exports, "__esModule", { value: true });
exports.bash = (commandArg, retryArg = 2, bareArg = false) => { const plugins = require("./npmci.plugins");
let exitCode; const paths = require("./npmci.paths");
let stdOut; const smartq = require("smartq");
/**
* wether nvm is available or not
*/
exports.nvmAvailable = smartq.defer();
exports.yarnAvailable = smartq.defer();
/**
* the smartshell instance for npmci
*/
let npmciSmartshell = new plugins.smartshell.Smartshell({
executor: 'bash',
sourceFilePaths: []
});
/**
* check for tools.
*/
let checkToolsAvailable = () => __awaiter(this, void 0, void 0, function* () {
// check for nvm
if (!process.env.NPMTS_TEST) {
if ((yield plugins.smartshell.execSilent(`bash -c "source /usr/local/nvm/nvm.sh"`)).exitCode === 0) {
npmciSmartshell.addSourceFiles([`/usr/local/nvm/nvm.sh`]);
exports.nvmAvailable.resolve(true);
}
else if ((yield plugins.smartshell.execSilent(`bash -c "source ~/.nvm/nvm.sh"`)).exitCode === 0) {
npmciSmartshell.addSourceFiles([`~/.nvm/nvm.sh`]);
exports.nvmAvailable.resolve(true);
}
else {
exports.nvmAvailable.resolve(false);
}
// check for yarn
yield plugins.smartshell.which('yarn').then(() => __awaiter(this, void 0, void 0, function* () {
yield plugins.smartshell.exec(`yarn config set cache-folder ${plugins.path.join(paths.cwd, '.yarn')}`);
exports.yarnAvailable.resolve(true);
}), () => { exports.yarnAvailable.resolve(false); });
}
else {
exports.nvmAvailable.resolve(true);
exports.yarnAvailable.resolve(true);
}
});
checkToolsAvailable();
/**
* bash() allows using bash with nvm in path
* @param commandArg - The command to execute
* @param retryArg - The retryArg: 0 to any positive number will retry, -1 will always succeed, -2 will return undefined
*/
exports.bash = (commandArg, retryArg = 2) => __awaiter(this, void 0, void 0, function* () {
yield exports.nvmAvailable.promise; // make sure nvm check has run
let execResult; let execResult;
// determine if we fail
let failOnError = true;
if (retryArg === -1) {
failOnError = false;
retryArg = 0;
}
if (!process.env.NPMTS_TEST) { if (!process.env.NPMTS_TEST) {
for (let i = 0; i <= retryArg; i++) { for (let i = 0; i <= retryArg; i++) {
if (!bareArg) { if (process.env.DEBUG_NPMCI === 'true') {
execResult = plugins.shelljs.exec(`bash -c "${nvmSourceString} ${commandArg}"`); console.log(commandArg);
}
execResult = yield npmciSmartshell.exec(commandArg);
// determine how bash reacts to error and success
if (execResult.exitCode !== 0 && i === retryArg) {
if (failOnError) {
plugins.beautylog.error('something went wrong and retries are exhausted');
process.exit(1);
}
}
else if (execResult.exitCode === 0) {
i = retryArg + 1; // retry +1 breaks for loop, if everything works out ok retrials are not wanted
} }
else { else {
execResult = plugins.shelljs.exec(commandArg); plugins.beautylog.warn('Something went wrong! Exit Code: ' + execResult.exitCode.toString());
}
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()); plugins.beautylog.info('Retry ' + (i + 1).toString() + ' of ' + retryArg.toString());
} }
} }
} }
else { else {
plugins.beautylog.log('ShellExec would be: ' + commandArg); plugins.beautylog.log('ShellExec would be: ' + commandArg);
execResult = {
exitCode: 0,
stdout: 'testOutput'
};
} }
return stdOut; return execResult.stdout;
}; });
exports.bashBare = (commandArg, retryArg = 2) => { /**
return exports.bash(commandArg, retryArg, true); * bashNoError allows executing stuff without throwing an error
}; */
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUUxQyxJQUFJLGVBQWUsR0FBVyxFQUFFLENBQUE7QUFDckIsUUFBQSxZQUFZLEdBQVksS0FBSyxDQUFBO0FBQ3hDLElBQUksUUFBUSxHQUFHO0lBQ1gsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLEVBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRixlQUFlLEdBQUcsa0NBQWtDLENBQUE7UUFDcEQsb0JBQVksR0FBRyxJQUFJLENBQUE7SUFDdkIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFGLGVBQWUsR0FBRywwQkFBMEIsQ0FBQTtRQUM1QyxvQkFBWSxHQUFHLElBQUksQ0FBQTtJQUN2QixDQUFDO0lBQUEsQ0FBQztBQUNOLENBQUMsQ0FBQTtBQUNELFFBQVEsRUFBRSxDQUFBO0FBRUMsUUFBQSxJQUFJLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLEtBQUs7SUFDaEUsSUFBSSxRQUFnQixDQUFBO0lBQ3BCLElBQUksTUFBYyxDQUFBO0lBQ2xCLElBQUksVUFBVSxDQUFBO0lBQ2QsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QixZQUFZLGVBQWUsSUFBSSxVQUFVLEdBQUcsQ0FDL0MsQ0FBQTtZQUNMLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDakQsQ0FBQztZQUNELFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO1lBQzFCLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFBO1lBQzFCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDbkIsQ0FBQztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUEsQ0FBQyxxREFBcUQ7WUFDMUUsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO2dCQUNqRixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1lBQ3hGLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEdBQUcsVUFBVSxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNLENBQUE7QUFDakIsQ0FBQyxDQUFBO0FBRVUsUUFBQSxRQUFRLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxHQUFHLENBQUM7SUFDM0MsTUFBTSxDQUFDLFlBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQzNDLENBQUMsQ0FBQSJ9 exports.bashNoError = (commandArg) => __awaiter(this, void 0, void 0, function* () {
return yield exports.bash(commandArg, -1);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLDJDQUEwQztBQUMxQyx1Q0FBc0M7QUFFdEMsaUNBQWdDO0FBRWhDOztHQUVHO0FBQ1EsUUFBQSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBVyxDQUFBO0FBQ3RDLFFBQUEsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQVcsQ0FBQTtBQUNsRDs7R0FFRztBQUNILElBQUksZUFBZSxHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7SUFDdEQsUUFBUSxFQUFFLE1BQU07SUFDaEIsZUFBZSxFQUFFLEVBQUU7Q0FDcEIsQ0FBQyxDQUFBO0FBRUY7O0dBRUc7QUFDSCxJQUFJLG1CQUFtQixHQUFHO0lBQ3hCLGdCQUFnQjtJQUNoQixFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM1QixFQUFFLENBQUMsQ0FDRCxDQUFDLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUMvRixDQUFDLENBQUMsQ0FBQztZQUNELGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBRSx1QkFBdUIsQ0FBRSxDQUFDLENBQUE7WUFDM0Qsb0JBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUIsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDUixDQUFDLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUN2RixDQUFDLENBQUMsQ0FBQztZQUNELGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBRSxlQUFlLENBQUUsQ0FBQyxDQUFBO1lBQ25ELG9CQUFZ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

10
dist/npmci.build.d.ts vendored
View File

@@ -1,10 +0,0 @@
/// <reference types="q" />
import * as plugins from './npmci.plugins';
/**
* defines possible build services
*/
export declare type TBuildService = 'docker';
/**
* builds for a specific service
*/
export declare let build: (commandArg: any) => plugins.q.Promise<any>;

File diff suppressed because one or more lines are too long

17
dist/npmci.build.js vendored
View File

@@ -1,17 +0,0 @@
"use strict";
const plugins = require("./npmci.plugins");
const buildDocker = require("./npmci.build.docker");
/**
* builds for a specific service
*/
exports.build = function (commandArg) {
switch (commandArg) {
case 'docker':
return buildDocker.build();
default:
plugins.beautylog.log('build target ' + commandArg + ' not recognised!');
}
;
return;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9ucG1jaS5idWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkNBQTBDO0FBRzFDLG9EQUFtRDtBQU9uRDs7R0FFRztBQUNRLFFBQUEsS0FBSyxHQUFHLFVBQVMsVUFBVTtJQUNsQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLEtBQUssUUFBUTtZQUNULE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDOUI7WUFDSSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsVUFBVSxHQUFHLGtCQUFrQixDQUFDLENBQUE7SUFDaEYsQ0FBQztJQUFBLENBQUM7SUFDRixNQUFNLENBQUE7QUFDVixDQUFDLENBQUEifQ==

View File

@@ -1,6 +0,0 @@
/// <reference types="q" />
import * as plugins from './npmci.plugins';
/**
* cleans npmci config files
*/
export declare let clean: () => plugins.q.Promise<{}>;

13
dist/npmci.clean.js vendored
View File

@@ -1,13 +0,0 @@
"use strict";
const plugins = require("./npmci.plugins");
const paths = require("./npmci.paths");
/**
* cleans npmci config files
*/
exports.clean = () => {
let done = plugins.q.defer();
plugins.smartfile.fs.removeSync(paths.NpmciPackageConfig);
done.resolve();
return done.promise;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuY2xlYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9ucG1jaS5jbGVhbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkNBQTBDO0FBQzFDLHVDQUFzQztBQUV0Qzs7R0FFRztBQUNRLFFBQUEsS0FBSyxHQUFHO0lBQ2YsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDekQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDdkIsQ0FBQyxDQUFBIn0=

0
dist/npmci.cli.d.ts vendored Normal file
View File

100
dist/npmci.cli.js vendored Normal file
View File

@@ -0,0 +1,100 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./npmci.plugins");
const paths = require("./npmci.paths");
let npmciInfo = new plugins.projectinfo.ProjectinfoNpm(paths.NpmciPackageRoot);
plugins.beautylog.log('npmci version: ' + npmciInfo.version);
const NpmciEnv = require("./npmci.env");
const npmciMods = require("./npmci.mods");
let smartcli = new plugins.smartcli.Smartcli();
smartcli.addVersion(npmciInfo.version);
// build
smartcli.addCommand('build')
.then((argv) => __awaiter(this, void 0, void 0, function* () {
let modBuild = yield npmciMods.modBuild.load();
yield modBuild.build(argv._[1]);
NpmciEnv.configStore();
})).catch(err => {
console.log(err);
process.exit(1);
});
// clean
smartcli.addCommand('clean')
.then((argv) => __awaiter(this, void 0, void 0, function* () {
let modClean = yield npmciMods.modClean.load();
yield modClean.clean();
yield NpmciEnv.configStore();
})).catch(err => {
console.log(err);
process.exit(1);
});
// command
smartcli.addCommand('command')
.then((argv) => __awaiter(this, void 0, void 0, function* () {
let modCommand = yield npmciMods.modCommand.load();
yield modCommand.command();
yield NpmciEnv.configStore();
})).catch(err => {
console.log(err);
process.exit(1);
});
// install
smartcli.addCommand('install')
.then((argv) => __awaiter(this, void 0, void 0, function* () {
let modInstall = yield npmciMods.modInstall.load();
yield modInstall.install(argv._[1]);
yield NpmciEnv.configStore();
})).catch(err => {
console.log(err);
process.exit(1);
});
// prepare
smartcli.addCommand('prepare')
.then((argv) => __awaiter(this, void 0, void 0, function* () {
let modPrepare = yield npmciMods.modPrepare.load();
yield modPrepare.prepare(argv._[1]);
yield NpmciEnv.configStore();
})).catch(err => {
console.log(err);
process.exit(1);
});
// publish
smartcli.addCommand('publish')
.then((argv) => __awaiter(this, void 0, void 0, function* () {
let modPublish = yield npmciMods.modPublish.load();
yield modPublish.publish(argv._[1]);
yield NpmciEnv.configStore();
})).catch(err => {
console.log(err);
process.exit(1);
});
// test
smartcli.addCommand('test')
.then((argv) => __awaiter(this, void 0, void 0, function* () {
let modTest = yield npmciMods.modTest.load();
yield modTest.test(argv._[1]);
yield NpmciEnv.configStore();
})).catch(err => {
console.log(err);
process.exit(1);
});
// trigger
smartcli.addCommand('trigger')
.then((argv) => __awaiter(this, void 0, void 0, function* () {
let modTrigger = yield npmciMods.modTrigger.load();
yield modTrigger.trigger();
yield NpmciEnv.configStore();
})).catch(err => {
console.log(err);
process.exit(1);
});
smartcli.startParse();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSwyQ0FBMEM7QUFDMUMsdUNBQXNDO0FBQ3RDLElBQUksU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7QUFDOUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBRTVELHdDQUF1QztBQUV2QywwQ0FBeUM7QUFFekMsSUFBSSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFBO0FBQzlDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBRXRDLFFBQVE7QUFDUixRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztLQUN6QixJQUFJLENBQUMsQ0FBTyxJQUFJO0lBQ2YsSUFBSSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzlDLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0IsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFBO0FBQ3hCLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUc7SUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDakIsQ0FBQyxDQUFDLENBQUE7QUFFSixRQUFRO0FBQ1IsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7S0FDekIsSUFBSSxDQUFDLENBQU8sSUFBSTtJQUNmLElBQUksUUFBUSxH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

View File

@@ -1,3 +0,0 @@
/// <reference types="q" />
import * as plugins from './npmci.plugins';
export declare let command: () => plugins.q.Promise<{}>;

18
dist/npmci.command.js vendored
View File

@@ -1,18 +0,0 @@
"use strict";
const plugins = require("./npmci.plugins");
const npmci_bash_1 = require("./npmci.bash");
exports.command = () => {
let done = plugins.q.defer();
let wrappedCommand = '';
let argvArray = process.argv;
for (let i = 3; i < argvArray.length; i++) {
wrappedCommand = wrappedCommand + argvArray[i];
if (i + 1 !== argvArray.length) {
wrappedCommand = wrappedCommand + ' ';
}
}
npmci_bash_1.bash(wrappedCommand);
done.resolve();
return done.promise;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUMxQyw2Q0FBaUM7QUFFdEIsUUFBQSxPQUFPLEdBQUc7SUFDakIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM1QixJQUFJLGNBQWMsR0FBVyxFQUFFLENBQUE7SUFDL0IsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQTtJQUM1QixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN4QyxjQUFjLEdBQUcsY0FBYyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM5QyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQUMsY0FBYyxHQUFHLGNBQWMsR0FBRyxHQUFHLENBQUE7UUFBQyxDQUFDO0lBQzdFLENBQUM7SUFDRCxpQkFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSJ9

View File

@@ -1,6 +1,4 @@
/// <reference types="q" />
import * as q from 'q';
export interface INpmciOptions { export interface INpmciOptions {
globalNpmTools: string[]; globalNpmTools: string[];
} }
export declare let getConfig: () => q.Promise<INpmciOptions>; export declare let getConfig: () => Promise<INpmciOptions>;

20
dist/npmci.config.js vendored
View File

@@ -1,15 +1,21 @@
"use strict"; "use strict";
const q = require("q"); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./npmci.plugins"); const plugins = require("./npmci.plugins");
const paths = require("./npmci.paths"); const paths = require("./npmci.paths");
exports.getConfig = () => { exports.getConfig = () => __awaiter(this, void 0, void 0, function* () {
let done = q.defer();
let npmciNpmextra = new plugins.npmextra.Npmextra(paths.cwd); let npmciNpmextra = new plugins.npmextra.Npmextra(paths.cwd);
let defaultConfig = { let defaultConfig = {
globalNpmTools: [] globalNpmTools: []
}; };
let npmciConfig = npmciNpmextra.dataFor('npmci', defaultConfig); let npmciConfig = npmciNpmextra.dataFor('npmci', defaultConfig);
done.resolve(npmciConfig); return npmciConfig;
return done.promise; });
}; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFFQSwyQ0FBMEM7QUFDMUMsdUNBQXNDO0FBTTNCLFFBQUEsU0FBUyxHQUFHO0lBQ3JCLElBQUksYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzVELElBQUksYUFBYSxHQUFrQjtRQUNqQyxjQUFjLEVBQUUsRUFBRTtLQUNuQixDQUFBO0lBQ0QsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBZ0IsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sQ0FBQyxXQUFXLENBQUE7QUFDcEIsQ0FBQyxDQUFBLENBQUEifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1QkFBc0I7QUFFdEIsMkNBQTBDO0FBQzFDLHVDQUFzQztBQU0zQixRQUFBLFNBQVMsR0FBRztJQUNuQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFpQixDQUFBO0lBQ25DLElBQUksYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzVELElBQUksYUFBYSxHQUFrQjtRQUMvQixjQUFjLEVBQUUsRUFBRTtLQUNyQixDQUFBO0lBQ0QsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBZ0IsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQzlFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDdkIsQ0FBQyxDQUFBIn0=

4
dist/npmci.env.d.ts vendored
View File

@@ -1,5 +1,5 @@
import { GitRepo } from 'smartstring'; import { GitRepo } from 'smartstring';
import { Dockerfile } from './npmci.build.docker'; import { Dockerfile } from './mod_docker/index';
export declare let repo: GitRepo; export declare let repo: GitRepo;
export declare let buildStage: string; export declare let buildStage: string;
export declare let dockerRegistry: string; export declare let dockerRegistry: string;
@@ -12,4 +12,4 @@ export declare let config: {
dockerFiles: Dockerfile[]; dockerFiles: Dockerfile[];
project: any; project: any;
}; };
export declare let configStore: () => void; export declare let configStore: () => Promise<void>;

21
dist/npmci.env.js vendored
View File

@@ -1,9 +1,19 @@
"use strict"; "use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./npmci.plugins"); const plugins = require("./npmci.plugins");
const paths = require("./npmci.paths"); const paths = require("./npmci.paths");
const smartstring_1 = require("smartstring"); const smartstring_1 = require("smartstring");
if (process.env.CI_BUILD_REPO) if (process.env.CI_REPOSITORY_URL) {
exports.repo = new smartstring_1.GitRepo(process.env.CI_BUILD_REPO); exports.repo = new smartstring_1.GitRepo(process.env.CI_REPOSITORY_URL);
}
exports.buildStage = process.env.CI_BUILD_STAGE; exports.buildStage = process.env.CI_BUILD_STAGE;
exports.setDockerRegistry = (dockerRegistryArg) => { exports.setDockerRegistry = (dockerRegistryArg) => {
exports.dockerRegistry = dockerRegistryArg; exports.dockerRegistry = dockerRegistryArg;
@@ -16,10 +26,10 @@ exports.config = {
dockerFiles: exports.dockerFiles, dockerFiles: exports.dockerFiles,
project: undefined project: undefined
}; };
exports.configStore = () => { exports.configStore = () => __awaiter(this, void 0, void 0, function* () {
exports.config.dockerRegistry = exports.dockerRegistry; exports.config.dockerRegistry = exports.dockerRegistry;
plugins.smartfile.memory.toFsSync(JSON.stringify(exports.config), paths.NpmciPackageConfig); plugins.smartfile.memory.toFsSync(JSON.stringify(exports.config), paths.NpmciPackageConfig);
}; });
let configLoad = () => { let configLoad = () => {
// internal config to transfer information in between npmci shell calls // internal config to transfer information in between npmci shell calls
try { try {
@@ -35,7 +45,6 @@ let configLoad = () => {
exports.config.project = plugins.smartfile.fs.toObjectSync(paths.NpmciProjectDir, 'npmci.json'); exports.config.project = plugins.smartfile.fs.toObjectSync(paths.NpmciProjectDir, 'npmci.json');
plugins.beautylog.ok('project config found!'); plugins.beautylog.ok('project config found!');
} }
;
} }
catch (err) { catch (err) {
exports.config.project = {}; exports.config.project = {};
@@ -45,4 +54,4 @@ let configLoad = () => {
exports.config.dockerFilesBuilt ? exports.dockerFilesBuilt = exports.config.dockerFilesBuilt : void (0); exports.config.dockerFilesBuilt ? exports.dockerFilesBuilt = exports.config.dockerFilesBuilt : void (0);
}; };
configLoad(); configLoad();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwyQ0FBMEM7QUFDMUMsdUNBQXNDO0FBQ3RDLDZDQUFtQztBQUluQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUFDLFlBQUksR0FBRyxJQUFJLHFCQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUVqRSxRQUFBLFVBQVUsR0FBVyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQTtBQUkvQyxRQUFBLGlCQUFpQixHQUFHLENBQUMsaUJBQXlCO0lBQ3JELHNCQUFjLEdBQUcsaUJBQWlCLENBQUE7QUFDdEMsQ0FBQyxDQUFBO0FBQ1UsUUFBQSxnQkFBZ0IsR0FBaUIsRUFBRSxDQUFBO0FBQ25DLFFBQUEsV0FBVyxHQUFpQixFQUFFLENBQUE7QUFDOUIsUUFBQSxNQUFNLEdBQUc7SUFDaEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsZ0JBQWdCLEVBQUUsd0JBQWdCO0lBQ2xDLFdBQVcsRUFBRSxtQkFBVztJQUN4QixPQUFPLEVBQUUsU0FBUztDQUNyQixDQUFBO0FBRVUsUUFBQSxXQUFXLEdBQUc7SUFDckIsY0FBTSxDQUFDLGNBQWMsR0FBRyxzQkFBYyxDQUFBO0lBQ3RDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFNLENBQUMsRUFDdEIsS0FBSyxDQUFDLGtCQUFrQixDQUMzQixDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsSUFBSSxVQUFVLEdBQUc7SUFDYix1RUFBdUU7SUFDdkUsSUFBSSxDQUFDO1FBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBTSxFQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNwRyxDQUNBO0lBQUEsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNULG1CQUFXLEVBQUUsQ0FBQTtRQUNiLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELGlCQUFpQjtJQUNqQixJQUFJLENBQUM7UUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLGNBQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUMsWUFBWSxDQUFDLENBQUE7WUFDdEYsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUNqRCxDQUFDO1FBQUEsQ0FBQztJQUNOLENBQ0E7SUFBQSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ1QsY0FBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0VBQWdFLENBQUMsQ0FBQTtJQUMzRixDQUFDO0lBRUQsY0FBTSxDQUFDLGNBQWMsR0FBRyxzQkFBYyxHQUFHLGNBQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3hFLGNBQU0sQ0FBQyxnQkFBZ0IsR0FBRyx3QkFBZ0IsR0FBRyxjQUFNLENBQUMsZ0JBQWdCLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2xGLENBQUMsQ0FBQTtBQUNELFVBQVUsRUFBRSxDQUFBIn0= //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSwyQ0FBMEM7QUFDMUMsdUNBQXNDO0FBQ3RDLDZDQUFxQztBQUlyQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUNsQyxZQUFJLEdBQUcsSUFBSSxxQkFBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUNuRCxDQUFDO0FBRVUsUUFBQSxVQUFVLEdBQVcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUE7QUFJL0MsUUFBQSxpQkFBaUIsR0FBRyxDQUFDLGlCQUF5QjtJQUN2RCxzQkFBYyxHQUFHLGlCQUFpQixDQUFBO0FBQ3BDLENBQUMsQ0FBQTtBQUNVLFFBQUEsZ0JBQWdCLEdBQWlCLEVBQUUsQ0FBQTtBQUNuQyxRQUFBLFdBQVcsR0FBaUIsRUFBRSxDQUFBO0FBQzlCLFFBQUEsTUFBTSxHQUFHO0lBQ2xCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGdCQUFnQixFQUFFLHdCQUFnQjtJQUNsQyxXQUFXLEVBQUUsbUJBQVc7SUFDeEIsT0FBTyxFQUFFLFNBQVM7Q0FDbkIsQ0FBQTtBQUVVLFFBQUEsV0FBVyxHQUFHO0lBQ3ZCLGNBQU0sQ0FBQyxjQUFjLEdBQUcsc0JBQWMsQ0FBQTtJQUN0QyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBTSxDQUFDLEVBQ3RCLEtBQUssQ0FBQyxrQkFBa0IsQ0FDekIsQ0FBQTtBQUNILENBQUMsQ0FBQSxDQUFBO0FBRUQsSUFBSSxVQUFVLEdBQUc7SUFDZix1RUFBdUU7SUFDdkUsSUFBSSxDQUFDO1FBQ0gsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBTSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNwRyxDQUFDO0lBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNiLG1CQUFXLEVBQUUsQ0FBQTtRQUNiLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELGlCQUFpQjtJQUNqQixJQUFJLENBQUM7UUFDSCxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLGNBQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUE7WUFDdkYsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDYixjQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtRQUNuQixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFBO0lBQ3pGLENBQUM7SUFFRCxjQUFNLENBQUMsY0FBYyxHQUFHLHNCQUFjLEdBQUcsY0FBTSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekUsY0FBTSxDQUFDLGdCQUFnQixHQUFHLHdCQUFnQixHQUFHLGNBQU0sQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDakYsQ0FBQyxDQUFBO0FBQ0QsVUFBVSxFQUFFLENBQUEifQ==

View File

@@ -1,3 +0,0 @@
/// <reference types="q" />
import * as plugins from './npmci.plugins';
export declare let install: (versionArg: any) => plugins.q.Promise<{}>;

52
dist/npmci.install.js vendored
View File

@@ -1,52 +0,0 @@
"use strict";
const plugins = require("./npmci.plugins");
const configModule = require("./npmci.config");
const npmci_bash_1 = require("./npmci.bash");
const npmci_bash_2 = require("./npmci.bash");
exports.install = (versionArg) => {
let done = plugins.q.defer();
plugins.beautylog.log(`now installing node version ${versionArg}`);
let version;
if (versionArg === 'stable') {
version = 'stable';
}
else if (versionArg === 'lts') {
version = '6';
}
else if (versionArg === 'legacy') {
version = '6';
}
else {
version = versionArg;
}
;
if (npmci_bash_2.nvmAvailable) {
npmci_bash_1.bash(`nvm install ${version} && nvm alias default ${version}`);
plugins.beautylog.success(`Node version ${version} successfully installed!`);
}
else {
plugins.beautylog.warn('Nvm not in path so staying at installed node version!');
}
;
npmci_bash_1.bash('node -v');
npmci_bash_1.bash('npm -v');
// lets look for further config
configModule.getConfig()
.then(configArg => {
for (let npmTool of configArg.globalNpmTools) {
plugins.beautylog.info(`Checking for global "${npmTool}"`);
let whichOutput = npmci_bash_1.bash(`which ${npmTool}`);
let toolAvailable = !(/not found/.test(whichOutput));
if (toolAvailable) {
plugins.beautylog.log(`Tool ${npmTool} is available`);
}
else {
plugins.beautylog.info(`globally installing ${npmTool} from npm`);
npmci_bash_1.bash(`npm install ${npmTool} -q -g`);
}
}
done.resolve();
});
return done.promise;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuaW5zdGFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUMxQywrQ0FBOEM7QUFDOUMsNkNBQW1DO0FBQ25DLDZDQUEyQztBQUNoQyxRQUFBLE9BQU8sR0FBRyxDQUFDLFVBQVU7SUFDNUIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUNsRSxJQUFJLE9BQWUsQ0FBQTtJQUNuQixFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxQixPQUFPLEdBQUcsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUIsT0FBTyxHQUFHLEdBQUcsQ0FBQTtJQUNqQixDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxHQUFHLENBQUE7SUFDakIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxHQUFHLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBQUEsQ0FBQztJQUNGLEVBQUUsQ0FBQyxDQUFDLHlCQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2YsaUJBQUksQ0FBQyxlQUFlLE9BQU8seUJBQXlCLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDOUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLE9BQU8sMEJBQTBCLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNmLGlCQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFZCwrQkFBK0I7SUFDL0IsWUFBWSxDQUFDLFNBQVMsRUFBRTtTQUNuQixJQUFJLENBQUMsU0FBUztRQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksT0FBTyxJQUFJLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHdCQUF3QixPQUFPLEdBQUcsQ0FBQyxDQUFBO1lBQzFELElBQUksV0FBVyxHQUFHLGlCQUFJLENBQUMsU0FBUyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1lBQzFDLElBQUksYUFBYSxHQUFZLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7WUFDN0QsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDaEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxPQUFPLGVBQWUsQ0FBQyxDQUFBO1lBQ3pELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsT0FBTyxXQUFXLENBQUMsQ0FBQTtnQkFDakUsaUJBQUksQ0FBQyxlQUFlLE9BQU8sUUFBUSxDQUFDLENBQUE7WUFDeEMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbEIsQ0FBQyxDQUFDLENBQUE7SUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUN2QixDQUFDLENBQUEifQ==

19
dist/npmci.mods.d.ts vendored Normal file
View File

@@ -0,0 +1,19 @@
import * as _modBuild from './mod_build/index';
import * as _modClean from './mod_clean/index';
import * as _modCommand from './mod_command/index';
import * as _modDocker from './mod_docker/index';
import * as _modInstall from './mod_install/index';
import * as _modPublish from './mod_publish/index';
import * as _modPrepare from './mod_prepare/index';
import * as _modTrigger from './mod_trigger/index';
import * as _modTest from './mod_test/index';
import { LazyModule } from 'smartsystem';
export declare let modBuild: LazyModule<typeof _modBuild>;
export declare let modClean: LazyModule<typeof _modClean>;
export declare let modCommand: LazyModule<typeof _modCommand>;
export declare let modDocker: LazyModule<typeof _modDocker>;
export declare let modInstall: LazyModule<typeof _modInstall>;
export declare let modPublish: LazyModule<typeof _modPublish>;
export declare let modPrepare: LazyModule<typeof _modPrepare>;
export declare let modTrigger: LazyModule<typeof _modTrigger>;
export declare let modTest: LazyModule<typeof _modTest>;

13
dist/npmci.mods.js vendored Normal file
View File

@@ -0,0 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const smartsystem_1 = require("smartsystem");
exports.modBuild = new smartsystem_1.LazyModule('./mod_build/index', __dirname);
exports.modClean = new smartsystem_1.LazyModule('./mod_clean/index', __dirname);
exports.modCommand = new smartsystem_1.LazyModule('./mod_command/index', __dirname);
exports.modDocker = new smartsystem_1.LazyModule('./mod_docker/index', __dirname);
exports.modInstall = new smartsystem_1.LazyModule('./mod_install/index', __dirname);
exports.modPublish = new smartsystem_1.LazyModule('./mod_publish/index', __dirname);
exports.modPrepare = new smartsystem_1.LazyModule('./mod_prepare/index', __dirname);
exports.modTrigger = new smartsystem_1.LazyModule('./mod_trigger/index', __dirname);
exports.modTest = new smartsystem_1.LazyModule('./mod_test/index', __dirname);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kubW9kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLm1vZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSw2Q0FBd0M7QUFFN0IsUUFBQSxRQUFRLEdBQUcsSUFBSSx3QkFBVSxDQUFtQixtQkFBbUIsRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUMzRSxRQUFBLFFBQVEsR0FBRyxJQUFJLHdCQUFVLENBQW1CLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxDQUFBO0FBQzNFLFFBQUEsVUFBVSxHQUFHLElBQUksd0JBQVUsQ0FBcUIscUJBQXFCLEVBQUUsU0FBUyxDQUFDLENBQUE7QUFDakYsUUFBQSxTQUFTLEdBQUcsSUFBSSx3QkFBVSxDQUFvQixvQkFBb0IsRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUM5RSxRQUFBLFVBQVUsR0FBRyxJQUFJLHdCQUFVLENBQXFCLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxDQUFBO0FBQ2pGLFFBQUEsVUFBVSxHQUFHLElBQUksd0JBQVUsQ0FBcUIscUJBQXFCLEVBQUUsU0FBUyxDQUFDLENBQUE7QUFDakYsUUFBQSxVQUFVLEdBQUcsSUFBSSx3QkFBVSxDQUFxQixxQkFBcUIsRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUNqRixRQUFBLFVBQVUsR0FBRyxJQUFJLHdCQUFVLENBQXFCLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxDQUFBO0FBQ2pGLFFBQUEsT0FBTyxHQUFHLElBQUksd0JBQVUsQ0FBa0Isa0JBQWtCLEVBQUMsU0FBUyxDQUFDLENBQUEifQ==

2
dist/npmci.monitor.d.ts vendored Normal file
View File

@@ -0,0 +1,2 @@
import { Smartmonitor } from 'smartmonitor';
export declare let npmciMonitor: Smartmonitor;

16
dist/npmci.monitor.js vendored Normal file
View File

@@ -0,0 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./npmci.plugins");
const smartmonitor_1 = require("smartmonitor");
exports.npmciMonitor = new smartmonitor_1.Smartmonitor();
if (process.env.SMARTMONITOR) {
exports.npmciMonitor.addInstrumental({
apiKey: process.env.SMARTMONITOR
});
plugins.beautylog.info('Monitoring activated');
}
else {
plugins.beautylog.warn('Monitoring could not be enabled due to missing API-KEY');
}
exports.npmciMonitor.increment('lossless-ci.builds', 1);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kubW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLm1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBMEM7QUFHMUMsK0NBQTJDO0FBRWhDLFFBQUEsWUFBWSxHQUFHLElBQUksMkJBQVksRUFBRSxDQUFBO0FBRTVDLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM1QixvQkFBWSxDQUFDLGVBQWUsQ0FBQztRQUMzQixNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZO0tBQ2pDLENBQUMsQ0FBQTtJQUNGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUE7QUFDaEQsQ0FBQztBQUFDLElBQUksQ0FBQyxDQUFDO0lBQ04sT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsd0RBQXdELENBQUMsQ0FBQTtBQUNsRixDQUFDO0FBRUQsb0JBQVksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUEifQ==

3
dist/npmci.paths.js vendored
View File

@@ -1,8 +1,9 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./npmci.plugins"); const plugins = require("./npmci.plugins");
exports.cwd = process.cwd(); exports.cwd = process.cwd();
exports.NpmciPackageRoot = plugins.path.join(__dirname, '../'); exports.NpmciPackageRoot = plugins.path.join(__dirname, '../');
exports.NpmciPackageConfig = plugins.path.join(exports.NpmciPackageRoot, './config.json'); exports.NpmciPackageConfig = plugins.path.join(exports.NpmciPackageRoot, './config.json');
exports.NpmciProjectDir = exports.cwd; exports.NpmciProjectDir = exports.cwd;
exports.NpmciTestDir = plugins.path.join(exports.cwd, './test'); exports.NpmciTestDir = plugins.path.join(exports.cwd, './test');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kucGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9ucG1jaS5wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkNBQTBDO0FBRS9CLFFBQUEsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtBQUVuQixRQUFBLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQTtBQUNyRCxRQUFBLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUFnQixFQUFDLGVBQWUsQ0FBQyxDQUFBO0FBQ3hFLFFBQUEsZUFBZSxHQUFHLFdBQUcsQ0FBQTtBQUNyQixRQUFBLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFHLEVBQUMsUUFBUSxDQUFDLENBQUEifQ== //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kucGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9ucG1jaS5wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEwQztBQUUvQixRQUFBLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7QUFFbkIsUUFBQSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsS0FBSyxDQUFDLENBQUE7QUFDckQsUUFBQSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBZ0IsRUFBQyxlQUFlLENBQUMsQ0FBQTtBQUN4RSxRQUFBLGVBQWUsR0FBRyxXQUFHLENBQUE7QUFDckIsUUFBQSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBRyxFQUFDLFFBQVEsQ0FBQyxDQUFBIn0=

View File

@@ -5,13 +5,18 @@ export import lodash = require('lodash');
export import npmextra = require('npmextra'); export import npmextra = require('npmextra');
export import path = require('path'); export import path = require('path');
export import projectinfo = require('projectinfo'); export import projectinfo = require('projectinfo');
export import q = require('q'); export import q = require('smartq');
export declare let request: any; export declare let request: any;
export import shelljs = require('shelljs');
export import smartcli = require('smartcli'); export import smartcli = require('smartcli');
export import smartdelay = require('smartdelay');
export import smartfile = require('smartfile'); export import smartfile = require('smartfile');
export import shelljs = require('shelljs');
export import smartmonitor = require('smartmonitor');
export import smartparam = require('smartparam'); export import smartparam = require('smartparam');
export import smartq = require('smartq');
export import smartshell = require('smartshell');
export import smartsocket = require('smartsocket'); export import smartsocket = require('smartsocket');
export import smartsystem = require('smartsystem');
export import smartssh = require('smartssh'); export import smartssh = require('smartssh');
export import smartstring = require('smartstring'); export import smartstring = require('smartstring');
export import through2 = require('through2'); export import through2 = require('through2');

12
dist/npmci.plugins.js vendored
View File

@@ -1,4 +1,5 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.beautylog = require("beautylog"); exports.beautylog = require("beautylog");
exports.gulp = require('gulp'); exports.gulp = require('gulp');
exports.gulpFunction = require("gulp-function"); exports.gulpFunction = require("gulp-function");
@@ -6,14 +7,19 @@ exports.lodash = require("lodash");
exports.npmextra = require("npmextra"); exports.npmextra = require("npmextra");
exports.path = require("path"); exports.path = require("path");
exports.projectinfo = require("projectinfo"); exports.projectinfo = require("projectinfo");
exports.q = require("q"); exports.q = require("smartq");
exports.request = require('request'); exports.request = require('request');
exports.shelljs = require("shelljs");
exports.smartcli = require("smartcli"); exports.smartcli = require("smartcli");
exports.smartdelay = require("smartdelay");
exports.smartfile = require("smartfile"); exports.smartfile = require("smartfile");
exports.shelljs = require("shelljs");
exports.smartmonitor = require("smartmonitor");
exports.smartparam = require("smartparam"); exports.smartparam = require("smartparam");
exports.smartq = require("smartq");
exports.smartshell = require("smartshell");
exports.smartsocket = require("smartsocket"); exports.smartsocket = require("smartsocket");
exports.smartsystem = require("smartsystem");
exports.smartssh = require("smartssh"); exports.smartssh = require("smartssh");
exports.smartstring = require("smartstring"); exports.smartstring = require("smartstring");
exports.through2 = require("through2"); exports.through2 = require("through2");
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlDQUE4QztBQUNuQyxRQUFBLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDakMsZ0RBQXFEO0FBQ3JELG1DQUF3QztBQUN4Qyx1Q0FBNEM7QUFDNUMsK0JBQW9DO0FBQ3BDLDZDQUFrRDtBQUNsRCx5QkFBOEI7QUFDbkIsUUFBQSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQ3ZDLHFDQUEwQztBQUMxQyx1Q0FBNEM7QUFDNUMseUNBQThDO0FBQzlDLDJDQUFnRDtBQUNoRCw2Q0FBa0Q7QUFDbEQsdUNBQTRDO0FBQzVDLDZDQUFrRDtBQUNsRCx1Q0FBNEMifQ== //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBOEM7QUFDbkMsUUFBQSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ2pDLGdEQUFxRDtBQUNyRCxtQ0FBd0M7QUFDeEMsdUNBQTRDO0FBQzVDLCtCQUFvQztBQUNwQyw2Q0FBa0Q7QUFDbEQsOEJBQW1DO0FBQ3hCLFFBQUEsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUN2Qyx1Q0FBNEM7QUFDNUMsMkNBQWdEO0FBQ2hELHlDQUE4QztBQUM5QyxxQ0FBMEM7QUFDMUMsK0NBQW9EO0FBQ3BELDJDQUFnRDtBQUNoRCxtQ0FBd0M7QUFDeEMsMkNBQWdEO0FBQ2hELDZDQUFrRDtBQUNsRCw2Q0FBa0Q7QUFDbEQsdUNBQTRDO0FBQzVDLDZDQUFrRDtBQUNsRCx1Q0FBNEMifQ==

80
dist/npmci.prepare.js vendored
View File

@@ -1,80 +0,0 @@
"use strict";
const plugins = require("./npmci.plugins");
const env = require("./npmci.env");
const sshModule = require("./npmci.ssh");
/**
* authenticates npm with token from env var
*/
let npm = function () {
let done = plugins.q.defer();
let npmrcPrefix = '//registry.npmjs.org/:_authToken=';
let npmToken = process.env.NPMCI_TOKEN_NPM;
let npmrcFileString = npmrcPrefix + npmToken;
if (npmToken) {
plugins.beautylog.info('found access token');
}
else {
plugins.beautylog.error('no access token found! Exiting!');
process.exit(1);
}
plugins.smartfile.memory.toFsSync(npmrcFileString, '/root/.npmrc');
done.resolve();
return done.promise;
};
/**
* logs in docker
*/
let docker = function () {
let done = plugins.q.defer();
env.setDockerRegistry('docker.io');
let dockerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)/;
if (!process.env.NPMCI_LOGIN_DOCKER) {
plugins.beautylog.error('You have to specify Login Data to the Docker Registry');
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 username = dockerRegexResultArray[1];
let password = dockerRegexResultArray[2];
plugins.shelljs.exec('docker login -u ' + username + ' -p ' + password);
done.resolve();
return done.promise;
};
/**
* prepare docker for gitlab registry
*/
let dockerGitlab = function () {
let done = plugins.q.defer();
env.setDockerRegistry('registry.gitlab.com');
plugins.shelljs.exec('docker login -u gitlab-ci-token -p ' + process.env.CI_BUILD_TOKEN + ' ' + 'registry.gitlab.com');
done.resolve();
return done.promise;
};
/**
* prepare ssh
*/
let ssh = function () {
let done = plugins.q.defer();
sshModule.ssh()
.then(done.resolve);
return done.promise;
};
/**
* the main exported prepare function
* @param servieArg describes the service to prepare
*/
exports.prepare = function (serviceArg) {
switch (serviceArg) {
case 'npm':
return npm();
case 'docker':
return docker();
case 'docker-gitlab':
return dockerGitlab();
case 'ssh':
return ssh();
default:
break;
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kucHJlcGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLnByZXBhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUUxQyxtQ0FBa0M7QUFDbEMseUNBQXdDO0FBVXhDOztHQUVHO0FBQ0gsSUFBSSxHQUFHLEdBQUc7SUFDTixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBRTVCLElBQUksV0FBVyxHQUFXLG1DQUFtQyxDQUFBO0lBQzdELElBQUksUUFBUSxHQUFXLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFBO0lBQ2xELElBQUksZUFBZSxHQUFHLFdBQVcsR0FBRyxRQUFRLENBQUE7SUFFNUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNYLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtRQUMxRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ25CLENBQUM7SUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ2pFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxNQUFNLEdBQUc7SUFDVCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzVCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNsQyxJQUFJLFdBQVcsR0FBRyxxQ0FBcUMsQ0FBQTtJQUN2RCxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7UUFDaEYsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNuQixDQUFDO0lBQ0QsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUNBQXFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsR0FBRyxHQUFHLHFCQUFxQixDQUFDLENBQUEsQ0FBQyx1Q0FBdUM7SUFDOUosSUFBSSxzQkFBc0IsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUM3RSxJQUFJLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN4QyxJQUFJLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN4QyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFBO0lBQ3ZFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxZQUFZLEdBQUc7SUFDZixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzVCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQzVDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxDQUFBO0lBQ3RILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxHQUFHLEdBQUc7SUFDTixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzVCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7U0FDVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQUVEOzs7R0FHRztBQUNRLFFBQUEsT0FBTyxHQUFHLFVBQVMsVUFBd0I7SUFDbEQsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNqQixLQUFLLEtBQUs7WUFDTixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDaEIsS0FBSyxRQUFRO1lBQ1QsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ25CLEtBQUssZUFBZTtZQUNoQixNQUFNLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDekIsS0FBSyxLQUFLO1lBQ04sTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ2hCO1lBQ0ksS0FBSyxDQUFBO0lBQ2IsQ0FBQztBQUNMLENBQUMsQ0FBQSJ9

42
dist/npmci.publish.js vendored
View File

@@ -1,42 +0,0 @@
"use strict";
const plugins = require("./npmci.plugins");
const npmci_prepare_1 = require("./npmci.prepare");
const npmci_bash_1 = require("./npmci.bash");
const NpmciBuildDocker = require("./npmci.build.docker");
/**
* the main exported publish function.
* @param pubServiceArg references targeted service to publish to
*/
exports.publish = (pubServiceArg = 'npm') => {
switch (pubServiceArg) {
case 'npm':
return publishNpm();
case 'docker':
return publishDocker();
}
};
/**
* tries to publish current cwd to NPM registry
*/
let publishNpm = function () {
let done = plugins.q.defer();
npmci_prepare_1.prepare('npm')
.then(function () {
npmci_bash_1.bash('npm publish');
plugins.beautylog.ok('Done!');
done.resolve();
});
return done.promise;
};
/**
* tries to pubish current cwd to Docker registry
*/
let publishDocker = function () {
let done = plugins.q.defer();
NpmciBuildDocker.readDockerfiles()
.then(NpmciBuildDocker.pullDockerfileImages)
.then(NpmciBuildDocker.pushDockerfiles)
.then(done.resolve);
return done.promise;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kucHVibGlzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUMxQyxtREFBdUM7QUFDdkMsNkNBQWlDO0FBRWpDLHlEQUF3RDtBQU94RDs7O0dBR0c7QUFDUSxRQUFBLE9BQU8sR0FBRyxDQUFDLGdCQUE2QixLQUFLO0lBQ3BELE1BQU0sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDcEIsS0FBSyxLQUFLO1lBQ04sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ3ZCLEtBQUssUUFBUTtZQUNULE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUM5QixDQUFDO0FBQ0wsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxJQUFJLFVBQVUsR0FBSTtJQUNkLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDNUIsdUJBQU8sQ0FBQyxLQUFLLENBQUM7U0FDVCxJQUFJLENBQUM7UUFDRixpQkFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ25CLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNsQixDQUFDLENBQUMsQ0FBQTtJQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3RCLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxhQUFhLEdBQUc7SUFDaEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN4QixnQkFBZ0IsQ0FBQyxlQUFlLEVBQUU7U0FDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDO1NBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7U0FDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUN2QixDQUFDLENBQUEifQ==

View File

@@ -1,28 +0,0 @@
"use strict";
const plugins = require("./npmci.plugins");
/**
* servezoneRegex is the regex that parses the servezone connection data
* parses strings in the form of "servezone.example.com|3000|somepassword"
*/
let servezoneRegex = /^(.*)\|(.*)\|(.*)/;
/**
* holds the results of the parsed servezone env string
*/
let servezoneRegexResultArray = servezoneRegex.exec(process.env.NPMCI_SERVEZONE);
/**
* the data object that is used for the smartsocket client object
*/
let smartsocketClientConstructorOptions = {
alias: 'npmci',
password: servezoneRegexResultArray[3],
port: parseInt(servezoneRegexResultArray[2]),
role: 'ci',
url: servezoneRegexResultArray[1]
};
/**
* the main run function to submit a service to a servezone
*/
exports.run = (configArg) => {
new plugins.smartsocket.SmartsocketClient(smartsocketClientConstructorOptions);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuc2VydmV6b25lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuc2VydmV6b25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwyQ0FBMEM7QUFFMUM7OztHQUdHO0FBQ0gsSUFBSSxjQUFjLEdBQUcsbUJBQW1CLENBQUE7QUFFeEM7O0dBRUc7QUFDSCxJQUFJLHlCQUF5QixHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUVoRjs7R0FFRztBQUNILElBQUksbUNBQW1DLEdBQUc7SUFDdEMsS0FBSyxFQUFFLE9BQU87SUFDZCxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLElBQUksRUFBRSxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsSUFBSSxFQUFFLElBQUk7SUFDVixHQUFHLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDO0NBQ3BDLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsR0FBRyxHQUFHLENBQUMsU0FBUztJQUN2QixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQ3JDLG1DQUFtQyxDQUN0QyxDQUFBO0FBQ0wsQ0FBQyxDQUFBIn0=

4
dist/npmci.ssh.d.ts vendored
View File

@@ -1,6 +1,4 @@
/// <reference types="q" />
import * as plugins from './npmci.plugins';
/** /**
* checks for ENV vars in form of NPMCI_SSHKEY_* and deploys any found ones * checks for ENV vars in form of NPMCI_SSHKEY_* and deploys any found ones
*/ */
export declare let ssh: () => plugins.q.Promise<{}>; export declare let ssh: () => Promise<void>;

35
dist/npmci.ssh.js vendored
View File

@@ -1,12 +1,26 @@
"use strict"; "use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./npmci.plugins"); const plugins = require("./npmci.plugins");
let sshRegex = /^(.*)\|(.*)\|(.*)/; let sshRegex = /^(.*)\|(.*)\|(.*)/;
let sshInstance; let sshInstance;
/**
* checks if not undefined
*/
let notUndefined = (stringArg) => {
return (stringArg && stringArg !== 'undefined' && stringArg !== '##');
};
/** /**
* checks for ENV vars in form of NPMCI_SSHKEY_* and deploys any found ones * checks for ENV vars in form of NPMCI_SSHKEY_* and deploys any found ones
*/ */
exports.ssh = () => { exports.ssh = () => __awaiter(this, void 0, void 0, function* () {
let done = plugins.q.defer();
sshInstance = new plugins.smartssh.SshInstance(); // init ssh instance sshInstance = new plugins.smartssh.SshInstance(); // init ssh instance
plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_SSHKEY_*', evaluateSshEnv); plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_SSHKEY_*', evaluateSshEnv);
if (!process.env.NPMTS_TEST) { if (!process.env.NPMTS_TEST) {
@@ -16,13 +30,11 @@ exports.ssh = () => {
plugins.beautylog.log('In test mode, so not storing SSH keys to disk!'); plugins.beautylog.log('In test mode, so not storing SSH keys to disk!');
} }
; ;
done.resolve(); });
return done.promise;
};
/** /**
* gets called for each found SSH ENV Var and deploys it * gets called for each found SSH ENV Var and deploys it
*/ */
let evaluateSshEnv = (sshkeyEnvVarArg) => { let evaluateSshEnv = (sshkeyEnvVarArg) => __awaiter(this, void 0, void 0, function* () {
let resultArray = sshRegex.exec(sshkeyEnvVarArg); let resultArray = sshRegex.exec(sshkeyEnvVarArg);
let sshKey = new plugins.smartssh.SshKey(); let sshKey = new plugins.smartssh.SshKey();
plugins.beautylog.info('Found SSH identity for ' + resultArray[1]); plugins.beautylog.info('Found SSH identity for ' + resultArray[1]);
@@ -41,11 +53,6 @@ let evaluateSshEnv = (sshkeyEnvVarArg) => {
} }
; ;
sshInstance.addKey(sshKey); sshInstance.addKey(sshKey);
}; return;
/** });
* checks if not undefined //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuc3NoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuc3NoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSwyQ0FBMEM7QUFFMUMsSUFBSSxRQUFRLEdBQUcsbUJBQW1CLENBQUE7QUFDbEMsSUFBSSxXQUF5QyxDQUFBO0FBRTdDOztHQUVHO0FBQ0gsSUFBSSxZQUFZLEdBQUcsQ0FBQyxTQUFpQjtJQUNuQyxNQUFNLENBQUMsQ0FBQyxTQUFTLElBQUksU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUE7QUFDdkUsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDUSxRQUFBLEdBQUcsR0FBRztJQUNmLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUEsQ0FBQyxvQkFBb0I7SUFDckUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBQ2xGLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzVCLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUMzQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFBQSxDQUFDO0FBQ0osQ0FBQyxDQUFBLENBQUE7QUFFRDs7R0FFRztBQUNILElBQUksY0FBYyxHQUFHLENBQU8sZUFBZTtJQUN6QyxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ2hELElBQUksTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUMxQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNsRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFDM0MsTUFBTSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUNELEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUM5QyxNQUFNLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBQUEsQ0FBQztJQUNGLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsc0JBQXNCLENBQUE7UUFDdEIsTUFBTSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUFBLENBQUM7SUFFRixXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzFCLE1BQU0sQ0FBQTtBQUNSLENBQUMsQ0FBQSxDQUFBIn0=
*/
let notUndefined = (stringArg) => {
return (stringArg && stringArg !== 'undefined' && stringArg !== '##');
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuc3NoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuc3NoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwyQ0FBMEM7QUFFMUMsSUFBSSxRQUFRLEdBQUcsbUJBQW1CLENBQUE7QUFDbEMsSUFBSSxXQUF5QyxDQUFBO0FBRTdDOztHQUVHO0FBQ1EsUUFBQSxHQUFHLEdBQUc7SUFDYixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzVCLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUEsQ0FBQyxvQkFBb0I7SUFDckUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFDLGdCQUFnQixFQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ2hGLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO0lBQzNFLENBQUM7SUFBQSxDQUFDO0lBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDdkIsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxJQUFJLGNBQWMsR0FBRyxDQUFDLGVBQWU7SUFDakMsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUNoRCxJQUFJLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDMUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbEUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBQzNDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFDRCxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFDOUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUFBLENBQUM7SUFDRixFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLHNCQUFzQixDQUFBO1FBQ3RCLE1BQU0sQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFBQSxDQUFDO0lBRUYsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUM5QixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNILElBQUksWUFBWSxHQUFHLENBQUMsU0FBaUI7SUFDakMsTUFBTSxDQUFDLENBQUMsU0FBUyxJQUFJLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFBO0FBQ3pFLENBQUMsQ0FBQSJ9

View File

@@ -1,3 +0,0 @@
/// <reference types="q" />
import * as plugins from './npmci.plugins';
export declare let test: (versionArg: any) => plugins.q.Promise<{}>;

46
dist/npmci.test.js vendored
View File

@@ -1,46 +0,0 @@
"use strict";
const plugins = require("./npmci.plugins");
const npmci_bash_1 = require("./npmci.bash");
const npmci_install_1 = require("./npmci.install");
const NpmciBuildDocker = require("./npmci.build.docker");
exports.test = (versionArg) => {
let done = plugins.q.defer();
if (versionArg === 'docker') {
testDocker()
.then(() => {
done.resolve();
});
}
else {
npmci_install_1.install(versionArg)
.then(npmDependencies)
.then(npmTest)
.then(() => {
done.resolve();
});
}
return done.promise;
};
let npmDependencies = function () {
let done = plugins.q.defer();
plugins.beautylog.info('now installing dependencies:');
npmci_bash_1.bash('npm install');
done.resolve();
return done.promise;
};
let npmTest = () => {
let done = plugins.q.defer();
plugins.beautylog.info('now starting tests:');
npmci_bash_1.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;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUMxQyw2Q0FBaUM7QUFDakMsbURBQXVDO0FBRXZDLHlEQUF3RDtBQUU3QyxRQUFBLElBQUksR0FBRyxDQUFDLFVBQVU7SUFDekIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM1QixFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxQixVQUFVLEVBQUU7YUFDUCxJQUFJLENBQUM7WUFDRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDbEIsQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSix1QkFBTyxDQUFDLFVBQVUsQ0FBQzthQUNkLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUNiLElBQUksQ0FBQztZQUNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNsQixDQUFDLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUN2QixDQUFDLENBQUE7QUFFRCxJQUFJLGVBQWUsR0FBRztJQUNsQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzVCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLENBQUE7SUFDdEQsaUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUN2QixDQUFDLENBQUE7QUFFRCxJQUFJLE9BQU8sR0FBRztJQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDNUIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUM3QyxpQkFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQUVELElBQUksVUFBVSxHQUFHO0lBQ2IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM1QixnQkFBZ0IsQ0FBQyxlQUFlLEVBQUU7U0FDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDO1NBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7U0FDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUN2QixDQUFDLENBQUEifQ==

View File

@@ -1,3 +0,0 @@
/// <reference types="q" />
import * as plugins from './npmci.plugins';
export declare let trigger: () => plugins.q.Promise<{}>;

28
dist/npmci.trigger.js vendored
View File

@@ -1,28 +0,0 @@
"use strict";
const plugins = require("./npmci.plugins");
let triggerValueRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|?([a-zA-Z0-9\.\-\/]*)/;
exports.trigger = function () {
let done = plugins.q.defer();
plugins.beautylog.info('now running triggers');
plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_TRIGGER_*', evaluateTrigger);
done.resolve();
return done.promise;
};
let evaluateTrigger = (triggerEnvVarArg) => {
let triggerRegexResultArray = triggerValueRegex.exec(triggerEnvVarArg);
let regexDomain = triggerRegexResultArray[1];
let regexProjectId = triggerRegexResultArray[2];
let regexProjectTriggerToken = triggerRegexResultArray[3];
let regexRefName = triggerRegexResultArray[4];
let regexTriggerName;
if (triggerRegexResultArray.length === 6) {
regexTriggerName = triggerRegexResultArray[5];
}
else {
regexTriggerName = 'Unnamed Trigger';
}
plugins.beautylog.info('Found Trigger!');
plugins.beautylog.log('triggering build for ref ' + regexRefName + ' of ' + regexTriggerName);
plugins.request.post('https://gitlab.com/api/v3/projects/' + regexProjectId + '/trigger/builds', { form: { token: regexProjectTriggerToken, ref: regexRefName } });
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kudHJpZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLnRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUkxQyxJQUFJLGlCQUFpQixHQUFHLGdHQUFnRyxDQUFBO0FBRTdHLFFBQUEsT0FBTyxHQUFHO0lBQ2pCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDNUIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUM5QyxPQUFPLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDcEYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDdkIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxlQUFlLEdBQUcsQ0FBQyxnQkFBZ0I7SUFDbkMsSUFBSSx1QkFBdUIsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUN0RSxJQUFJLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1QyxJQUFJLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvQyxJQUFJLHdCQUF3QixHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3pELElBQUksWUFBWSxHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzdDLElBQUksZ0JBQWdCLENBQUE7SUFDcEIsRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakQsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUE7SUFDeEMsQ0FBQztJQUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDeEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEdBQUcsWUFBWSxHQUFHLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzdGLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxHQUFHLGNBQWMsR0FBRyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ3RLLENBQUMsQ0FBQSJ9

View File

@@ -2,17 +2,17 @@
npmci is your friend when it comes to handling npm packages during CI builds. It is optimized for GitLab CI npmci is your friend when it comes to handling npm packages during CI builds. It is optimized for GitLab CI
## Availabililty ## Availabililty
[![npm](https://push.rocks/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmci) [![npm](https://gitzone.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmci)
[![git](https://push.rocks/assets/repo-button-git.svg)](https://gitlab.com/pushrocks/npmci) [![git](https://gitzone.gitlab.io/assets/repo-button-git.svg)](https://gitlab.com/gitzone/npmci)
[![git](https://push.rocks/assets/repo-button-mirror.svg)](https://github.com/pushrocks/npmci) [![git](https://gitzone.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/gitzone/npmci)
[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/npmci/docs) [![docs](https://gitzone.gitlab.io/assets/repo-button-docs.svg)](https://gitzone.gitlab.io/npmci/docs)
## Status for master ## Status for master
[![build status](https://gitlab.com/pushrocks/npmci/badges/master/build.svg)](https://gitlab.com/pushrocks/npmci/commits/master) [![build status](https://gitlab.com/gitzone/npmci/badges/master/build.svg)](https://gitlab.com/gitzone/npmci/commits/master)
[![coverage report](https://gitlab.com/pushrocks/npmci/badges/master/coverage.svg)](https://gitlab.com/pushrocks/npmci/commits/master) [![coverage report](https://gitlab.com/gitzone/npmci/badges/master/coverage.svg)](https://gitlab.com/gitzone/npmci/commits/master)
[![Dependency Status](https://david-dm.org/pushrocks/npmci.svg)](https://david-dm.org/pushrocks/npmci) [![Dependency Status](https://david-dm.org/gitzonetools/npmci.svg)](https://david-dm.org/gitzonetools/npmci)
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/npmci/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/npmci/master/dependencies/npm) [![bitHound Dependencies](https://www.bithound.io/github/gitzonetools/npmci/badges/dependencies.svg)](https://www.bithound.io/github/gitzonetools/npmci/master/dependencies/npm)
[![bitHound Code](https://www.bithound.io/github/pushrocks/npmci/badges/code.svg)](https://www.bithound.io/github/pushrocks/npmci) [![bitHound Code](https://www.bithound.io/github/gitzonetools/npmci/badges/code.svg)](https://www.bithound.io/github/gitzonetools/npmci)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/) [![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/) [![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
@@ -50,8 +50,8 @@ npmci prepare docker-gitlab # will authenticate docker for gitlab container regi
# build containers # build containers
npmci build docker # will build containers npmci build docker # will build containers
## all Dockerfiles named DOckerfile* are picked up. ## all Dockerfiles named Dockerfile* are picked up.
## specify tags lake this Dockerfile_[tag] ## specify tags like this Dockerfile_[tag]
## uploads all built images as [username]/[reponame]:[tag]_test to GitLab ## uploads all built images as [username]/[reponame]:[tag]_test to GitLab
## then test in next step with "npmci test docker" ## then test in next step with "npmci test docker"
@@ -63,4 +63,28 @@ npmci publish docker
npmci trigger # will look for NPMCI_TRIGGER_1 to NPMCI_TRIGGER_100 in form domain|id|token|ref|name npmci trigger # will look for NPMCI_TRIGGER_1 to NPMCI_TRIGGER_100 in form domain|id|token|ref|name
``` ```
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks) ## Configuration
npmci supports the use of npmextra.
To configure npmci create a `npmextra.json` file at the root of your project
```json
{
"npmci": {
"globalNpmTools": [
"npm-check-updates",
"protractor",
"npmts",
"gitzone"
]
}
}
```
**Available options**
setting | example | description
--- | --- | ---
globalNpmTools | "globalNpmTools": ["gitbook"] | Will look for the specified package names locally and (if not yet present) install them from npm.
[![npm](https://gitzone.gitlab.io/assets/repo-footer.svg)](https://push.rocks)

View File

@@ -4,7 +4,13 @@
"coverageTreshold": "70", "coverageTreshold": "70",
"cli": true "cli": true
}, },
"npmci": {
"globalNpmTools": [
"npmts"
]
},
"npmdocker":{ "npmdocker":{
"baseImage":"hosttoday/ht-docker-node:npmts" "baseImage":"hosttoday/ht-docker-node:npmci",
"command": "npmci test stable"
} }
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "npmci", "name": "npmci",
"version": "2.3.30", "version": "2.3.67",
"description": "", "description": "",
"main": "dist/index.js", "main": "dist/index.js",
"typings": "dist/index.d.ts", "typings": "dist/index.d.ts",
@@ -13,43 +13,44 @@
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+ssh://git@github.com/pushrocks/npmci.git" "url": "git+ssh://git@gitlab.com/gitzone/npmci.git"
}, },
"author": "Lossless GmbH", "author": "Lossless GmbH",
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://gitlab.com/pushrocks/npmci/issues" "url": "https://gitlab.com/gitzone/npmci/issues"
}, },
"homepage": "https://gitlab.com/pushrocks/npmci#README", "homepage": "https://gitlab.com/gitzone/npmci#README",
"devDependencies": { "devDependencies": {
"@types/should": "^8.1.30", "tapbundle": "^1.0.12"
"npmts-g": "^5.2.8",
"should": "^11.1.1",
"typings-test": "^1.0.3"
}, },
"dependencies": { "dependencies": {
"@types/lodash": "^4.14.40", "@types/lodash": "^4.14.64",
"@types/node": "^6.0.51", "@types/node": "^7.0.18",
"@types/q": "0.x.x",
"@types/request": "0.x.x", "@types/request": "0.x.x",
"@types/shelljs": "^0.3.33", "@types/shelljs": "^0.7.1",
"@types/through2": "^2.0.32", "@types/through2": "^2.0.32",
"beautylog": "^6.0.0", "beautylog": "^6.1.10",
"cflare": "^0.0.19",
"gulp": "^3.9.1", "gulp": "^3.9.1",
"gulp-function": "^2.2.0", "gulp-function": "^2.2.9",
"lodash": "^4.17.2", "lodash": "^4.17.4",
"npmextra": "^2.0.3", "npmextra": "^2.0.5",
"projectinfo": "^1.0.4", "projectinfo": "^3.0.2",
"q": "^1.4.1", "request": "^2.81.0",
"request": "^2.79.0", "shelljs": "^0.7.7",
"shelljs": "^0.7.5", "smartcli": "^2.0.7",
"smartcli": "^1.0.15", "smartdelay": "^1.0.1",
"smartfile": "^4.1.0", "smartfile": "^4.2.11",
"smartmonitor": "^1.0.3",
"smartparam": "^0.1.1", "smartparam": "^0.1.1",
"smartq": "^1.1.1",
"smartshell": "^1.0.6",
"smartsocket": "^1.1.7", "smartsocket": "^1.1.7",
"smartssh": "^1.2.1", "smartssh": "^1.2.1",
"smartstring": "^2.0.22", "smartstring": "^2.0.24",
"through2": "^2.0.1", "smartsystem": "^1.0.17",
"typings-global": "^1.0.14" "through2": "^2.0.3",
"typings-global": "^1.0.16"
} }
} }

99
readme.md Normal file
View File

@@ -0,0 +1,99 @@
# npmci
helps with pushing to npm registry from any CI
## Availabililty
[![npm](https://gitzone.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmci)
[![git](https://gitzone.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/gitzone/npmci)
[![git](https://gitzone.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/gitzone/npmci)
[![docs](https://gitzone.gitlab.io/assets/repo-button-docs.svg)](https://gitzone.gitlab.io/npmci/)
## Status for master
[![build status](https://GitLab.com/gitzone/npmci/badges/master/build.svg)](https://GitLab.com/gitzone/npmci/commits/master)
[![coverage report](https://GitLab.com/gitzone/npmci/badges/master/coverage.svg)](https://GitLab.com/gitzone/npmci/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/npmci.svg)](https://www.npmjs.com/package/npmci)
[![Dependency Status](https://david-dm.org/gitzonetools/npmci.svg)](https://david-dm.org/gitzonetools/npmci)
[![bitHound Dependencies](https://www.bithound.io/github/gitzonetools/npmci/badges/dependencies.svg)](https://www.bithound.io/github/gitzonetools/npmci/master/dependencies/npm)
[![bitHound Code](https://www.bithound.io/github/gitzonetools/npmci/badges/code.svg)](https://www.bithound.io/github/gitzonetools/npmci)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Usage
Use TypeScript for best in class instellisense.
npmci is designed to work in docker CI environments. The following docker images come with npmci presinstalled:
Docker Hub:
* [hosttoday/ht-docker-node:npmci](https://hub.docker.com/r/hosttoday/ht-docker-node/)
has LTS node version and npmci preinstalled.
* [hosttoday/ht-docker-dbase](https://hub.docker.com/r/hosttoday/ht-docker-dbase/)
based on docker:git, can be used to build docker images in conjunction with docker:dind
npmci can be called from commandline:
```shell
# Install any node version:
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 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.
# 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 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 like 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
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
```
## Configuration
npmci supports the use of npmextra.
To configure npmci create a `npmextra.json` file at the root of your project
```json
{
"npmci": {
"globalNpmTools": [
"npm-check-updates",
"protractor",
"npmts",
"gitzone"
]
}
}
```
**Available options**
setting | example | description
--- | --- | ---
globalNpmTools | "globalNpmTools": ["gitbook"] | Will look for the specified package names locally and (if not yet present) install them from npm.
For further information read the linked docs at the top of this README.
> MIT licensed | **&copy;** [Lossless GmbH](https://lossless.gmbh)
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
[![repo-footer](https://gitzone.gitlab.io/assets/repo-footer.svg)](https://push.rocks)

1
test/test.d.ts vendored
View File

@@ -1 +0,0 @@
import 'typings-test';

View File

@@ -1,88 +0,0 @@
"use strict";
require("typings-test");
const should = require("should");
const path = require("path");
// set up environment
process.env.CI_BUILD_REPO = 'https://yyyyyy:xxxxxxxx@gitlab.com/mygroup/myrepo.git';
process.env.NPMCI_SSHKEY_1 = 'hostString|somePrivKey|##';
process.env.NPMTS_TEST = 'true';
process.cwd = () => {
return path.join(__dirname, 'assets/');
};
const NpmciBuildDocker = require("../dist/npmci.build.docker");
const NpmciPublish = require("../dist/npmci.publish");
const NpmciTest = require("../dist/npmci.test");
const NpmciSsh = require("../dist/npmci.ssh");
let dockerfile1;
let dockerfile2;
let sortableArray;
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 });
should(dockerfile1.version).equal('latest');
should(dockerfile2.version).equal('sometag1');
});
it('should read a directory of Dockerfiles', function (done) {
NpmciBuildDocker.readDockerfiles()
.then(function (readDockerfilesArrayArg) {
should(readDockerfilesArrayArg[1].version).equal('sometag1');
sortableArray = readDockerfilesArrayArg;
done();
});
});
it('should sort an array of Dockerfiles', function (done) {
NpmciBuildDocker.sortDockerfiles(sortableArray)
.then(function (sortedArrayArg) {
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();
});
});
});
describe('npmci prepare ssh', function () {
it('should pick up SSH keys', function (done) {
NpmciSsh.ssh()
.then(() => {
done();
});
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFDaEMsNkJBQTRCO0FBRTVCLHFCQUFxQjtBQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyx1REFBdUQsQ0FBQTtBQUNuRixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRywyQkFBMkIsQ0FBQTtBQUN4RCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUE7QUFDL0IsT0FBTyxDQUFDLEdBQUcsR0FBRztJQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxTQUFTLENBQUMsQ0FBQTtBQUN6QyxDQUFDLENBQUE7QUFJRCwrREFBK0Q7QUFDL0Qsc0RBQXNEO0FBQ3RELGdEQUFnRDtBQUNoRCw4Q0FBOEM7QUFHOUMsSUFBSSxXQUF3QyxDQUFBO0FBQzVDLElBQUksV0FBd0MsQ0FBQTtBQUM1QyxJQUFJLGFBQTRDLENBQUE7QUFFaEQsUUFBUSxDQUFDLE9BQU8sRUFBQztJQUNiLFFBQVEsQ0FBQyxjQUFjLEVBQUM7UUFDcEIsRUFBRSxDQUFDLGlDQUFpQyxFQUFDO1lBQ2pDLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUE7WUFDckYsV0FBVyxHQUFHLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFBO1lBQzlGLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQzNDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFVB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

View File

@@ -1,100 +1,78 @@
import 'typings-test' import { tap, expect } from 'tapbundle'
import * as should from 'should'
import * as path from 'path' import * as path from 'path'
// set up environment // set up environment
process.env.CI_BUILD_REPO = 'https://yyyyyy:xxxxxxxx@gitlab.com/mygroup/myrepo.git' process.env.CI_REPOSITORY_URL = 'https://yyyyyy:xxxxxxxx@gitlab.com/mygroup/myrepo.git'
process.env.NPMCI_SSHKEY_1 = 'hostString|somePrivKey|##' process.env.NPMCI_SSHKEY_1 = 'hostString|somePrivKey|##'
process.env.NPMTS_TEST = 'true' process.env.NPMTS_TEST = 'true'
process.cwd = () => { process.cwd = () => {
return path.join(__dirname,'assets/') return path.join(__dirname, 'assets/')
} }
// require NPMCI files // require NPMCI files
import npmci = require('../dist/index') import '../dist/index'
import NpmciBuildDocker = require('../dist/npmci.build.docker') import NpmciBuildDocker = require('../dist/mod_docker/index')
import NpmciPublish = require('../dist/npmci.publish') import NpmciPublish = require('../dist/mod_publish/index')
import NpmciTest = require('../dist/npmci.test') import NpmciTest = require('../dist/mod_test/index')
import NpmciSsh = require('../dist/npmci.ssh') import NpmciSsh = require('../dist/npmci.ssh')
let dockerfile1: NpmciBuildDocker.Dockerfile let dockerfile1: NpmciBuildDocker.Dockerfile
let dockerfile2: NpmciBuildDocker.Dockerfile let dockerfile2: NpmciBuildDocker.Dockerfile
let sortableArray: 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})
should(dockerfile1.version).equal('latest')
should(dockerfile2.version).equal('sometag1')
})
it('should read a directory of Dockerfiles',function(done){ tap.test('should return valid Dockerfiles', async () => {
NpmciBuildDocker.readDockerfiles() dockerfile1 = new NpmciBuildDocker.Dockerfile({ filePath: './Dockerfile', read: true })
.then(function(readDockerfilesArrayArg: NpmciBuildDocker.Dockerfile[]){ dockerfile2 = new NpmciBuildDocker.Dockerfile({ filePath: './Dockerfile_sometag1', read: true })
should(readDockerfilesArrayArg[1].version).equal('sometag1') expect(dockerfile1.version).to.equal('latest')
sortableArray = readDockerfilesArrayArg return expect(dockerfile2.version).to.equal('sometag1')
done() })
})
})
it('should sort an array of Dockerfiles',function(done){ tap.test('should read a directory of Dockerfiles', async () => {
NpmciBuildDocker.sortDockerfiles(sortableArray) return NpmciBuildDocker.readDockerfiles()
.then(function(sortedArrayArg: NpmciBuildDocker.Dockerfile[]){ .then(async (readDockerfilesArrayArg: NpmciBuildDocker.Dockerfile[]) => {
console.log(sortedArrayArg) sortableArray = readDockerfilesArrayArg
done() return expect(readDockerfilesArrayArg[ 1 ].version).to.equal('sometag1')
})
})
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()
})
})
})
describe('npmci prepare ssh',function(){
it('should pick up SSH keys',function(done){
NpmciSsh.ssh()
.then(() => {
done()
})
})
}) })
}) })
tap.test('should sort an array of Dockerfiles', async () => {
return NpmciBuildDocker.sortDockerfiles(sortableArray)
.then(async (sortedArrayArg: NpmciBuildDocker.Dockerfile[]) => {
console.log(sortedArrayArg)
})
})
tap.test('should correctly chain Dockerfile handling', async () => {
return NpmciBuildDocker.build()
})
tap.test('should publish all built Dockerfiles', async () => {
return NpmciPublish.publish('docker')
})
tap.test('should source nvm using bash and install a specific node version, then test it', async () => {
return NpmciTest.test('legacy')
.then(() => {
return NpmciTest.test('lts')
})
.then(() => {
return NpmciTest.test('stable')
})
})
tap.test('should test dockerfiles', async () => {
return NpmciTest.test('docker')
})
tap.test('should pick up SSH keys', async () => {
return NpmciSsh.ssh()
})
tap.test('reset paths', async () => {
process.cwd = () => {
return path.join(__dirname, '../')
}
})
tap.start()

View File

@@ -1,86 +1,2 @@
import * as plugins from './npmci.plugins' import './npmci.cli'
import * as paths from './npmci.paths'
let npmciInfo = new plugins.projectinfo.ProjectinfoNpm(paths.NpmciPackageRoot)
plugins.beautylog.log('npmci version: ' + npmciInfo.version)
import {build} from './npmci.build'
import {clean} from './npmci.clean'
import {command} from './npmci.command'
import {install} from './npmci.install'
import {publish} from './npmci.publish'
import {prepare} from './npmci.prepare'
import {test} from './npmci.test'
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 smartcli = new plugins.smartcli.Smartcli()
smartcli.addVersion(npmciInfo.version)
// build
smartcli.addCommand({
commandName: 'build'
}).then((argv) => {
build(argv._[1])
.then(NpmciEnv.configStore)
})
// clean
smartcli.addCommand({
commandName: 'clean'
}).then((argv) => {
clean()
.then(NpmciEnv.configStore)
})
// command
smartcli.addCommand({
commandName: 'command'
}).then((argv) => {
command()
.then(NpmciEnv.configStore)
})
// install
smartcli.addCommand({
commandName: 'install'
}).then((argv) => {
install(argv._[1])
.then(NpmciEnv.configStore)
})
// prepare
smartcli.addCommand({
commandName: 'prepare'
}).then((argv) => {
prepare(argv._[1])
.then(NpmciEnv.configStore)
})
// publish
smartcli.addCommand({
commandName: 'publish'
}).then((argv) => {
publish(argv._[1])
.then(NpmciEnv.configStore)
})
// test
smartcli.addCommand({
commandName: 'test'
}).then((argv) => {
test(argv._[1])
.then(NpmciEnv.configStore)
})
// trigger
smartcli.addCommand({
commandName: 'trigger'
}).then((argv) => {
trigger()
})
smartcli.startParse()

24
ts/mod_build/index.ts Normal file
View File

@@ -0,0 +1,24 @@
import * as plugins from './mod.plugins'
import { bash } from '../npmci.bash'
import * as env from '../npmci.env'
import * as npmciMods from '../npmci.mods'
/**
* defines possible build services
*/
export type TBuildService = 'docker'
/**
* builds for a specific service
*/
export let build = async (commandArg): Promise<void> => {
switch (commandArg) {
case 'docker':
let modDocker = await npmciMods.modDocker.load()
await modDocker.build()
break
default:
plugins.beautylog.log('build target ' + commandArg + ' not recognised!')
};
return
}

View File

@@ -0,0 +1 @@
export * from '../npmci.plugins'

10
ts/mod_clean/index.ts Normal file
View File

@@ -0,0 +1,10 @@
import * as plugins from './mod.plugins'
import * as paths from '../npmci.paths'
/**
* cleans npmci config files
*/
export let clean = async (): Promise<void> => {
plugins.smartfile.fs.removeSync(paths.NpmciPackageConfig)
return
}

View File

@@ -0,0 +1 @@
export * from '../npmci.plugins'

View File

View File

@@ -0,0 +1,7 @@
export * from '../npmci.plugins'
import * as cflare from 'cflare'
export {
cflare
}

13
ts/mod_command/index.ts Normal file
View File

@@ -0,0 +1,13 @@
import * as plugins from './mod.plugins'
import { bash } from '../npmci.bash'
export let command = async () => {
let wrappedCommand: string = ''
let argvArray = process.argv
for (let i = 3; i < argvArray.length; i++) {
wrappedCommand = wrappedCommand + argvArray[i]
if (i + 1 !== argvArray.length) { wrappedCommand = wrappedCommand + ' ' }
}
await bash(wrappedCommand)
return
}

View File

@@ -0,0 +1 @@
export * from '../npmci.plugins'

1
ts/mod_docker/index.ts Normal file
View File

@@ -0,0 +1 @@
export * from './mod.builddocker'

View File

@@ -0,0 +1,292 @@
import * as plugins from './mod.plugins'
import * as paths from '../npmci.paths'
import * as NpmciEnv from '../npmci.env'
import { bash } from '../npmci.bash'
/**
* builds a cwd of Dockerfiles by triggering a promisechain
*/
export let build = async () => {
plugins.beautylog.log('now building Dockerfiles...')
await readDockerfiles()
.then(sortDockerfiles)
.then(mapDockerfiles)
.then(buildDockerfiles)
.then(pushDockerfiles)
}
/**
* creates instance of class Dockerfile for all Dockerfiles in cwd
* @returns Promise<Dockerfile[]>
*/
export let readDockerfiles = async (): Promise<Dockerfile[]> => {
let fileTree = await plugins.smartfile.fs.listFileTree(paths.cwd, 'Dockerfile*')
// create the Dockerfile array
let readDockerfilesArray: Dockerfile[] = []
plugins.beautylog.info(`found ${fileTree.length} Dockerfiles:`)
console.log(fileTree)
for (let dockerfilePath of fileTree) {
let myDockerfile = new Dockerfile({
filePath: dockerfilePath,
read: true
})
readDockerfilesArray.push(myDockerfile)
}
return readDockerfilesArray
}
/**
* sorts Dockerfiles into a dependency chain
* @param sortableArrayArg an array of instances of class Dockerfile
* @returns Promise<Dockerfile[]>
*/
export let sortDockerfiles = (sortableArrayArg: Dockerfile[]): Promise<Dockerfile[]> => {
let done = plugins.q.defer<Dockerfile[]>()
plugins.beautylog.info('sorting Dockerfiles:')
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) {
let counter = 1
for (let dockerfile of sortedArray) {
plugins.beautylog.log(`tag ${counter}: -> ${dockerfile.cleanTag}`)
counter++
}
done.resolve(sortedArray)
} else if (sorterFunctionCounter < 10) {
sorterFunctionCounter++
sorterFunction()
}
}
sorterFunction()
return done.promise
}
/**
* maps local Dockerfiles dependencies to the correspoding Dockerfile class instances
*/
export let mapDockerfiles = async (sortedArray: Dockerfile[]): Promise<Dockerfile[]> => {
sortedArray.forEach((dockerfileArg) => {
if (dockerfileArg.localBaseImageDependent) {
sortedArray.forEach((dockfile2: Dockerfile) => {
if (dockfile2.cleanTag === dockerfileArg.baseImage) {
dockerfileArg.localBaseDockerfile = dockfile2
}
})
};
})
return sortedArray
}
/**
* builds the correspoding real docker image for each Dockerfile class instance
*/
export let buildDockerfiles = async (sortedArrayArg: Dockerfile[]) => {
for (let dockerfileArg of sortedArrayArg) {
await dockerfileArg.build()
}
return sortedArrayArg
}
/**
* pushes the real Dockerfile images to a Docker registry
*/
export let pushDockerfiles = async (sortedArrayArg: Dockerfile[]) => {
for (let dockerfileArg of sortedArrayArg) {
await dockerfileArg.push(NpmciEnv.buildStage)
}
return sortedArrayArg
}
/**
* pulls corresponding real Docker images for instances of Dockerfile from a registry.
* This is needed if building, testing, and publishing of Docker images is carried out in seperate CI stages.
*/
export let pullDockerfileImages = async (sortableArrayArg: Dockerfile[], registryArg = 'registry.gitlab.com') => {
for (let dockerfileArg of sortableArrayArg) {
await dockerfileArg.pull(registryArg)
}
return sortableArrayArg
}
/**
* tests all Dockerfiles in by calling class Dockerfile.test();
* @param sortedArrayArg Dockerfile[] that contains all Dockerfiles in cwd
*/
export let testDockerfiles = async (sortedArrayArg: Dockerfile[]) => {
for (let dockerfileArg of sortedArrayArg) {
await dockerfileArg.test()
}
return sortedArrayArg
}
/**
* class Dockerfile represents a Dockerfile on disk in npmci
*/
export class Dockerfile {
filePath: string
repo: string
version: string
cleanTag: string
buildTag: string
gitlabTestTag: string
gitlabReleaseTag: 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.gitlabTestTag = dockerTag('registry.gitlab.com', this.repo, this.version, 'test')
this.gitlabReleaseTag = dockerTag('registry.gitlab.com', this.repo, this.version)
this.releaseTag = dockerTag(NpmciEnv.dockerRegistry, this.repo, this.version)
this.containerName = 'dockerfile-' + this.version
if (options.filePath && options.read) {
this.content = plugins.smartfile.fs.toStringSync(plugins.path.resolve(options.filePath))
};
this.baseImage = dockerBaseImage(this.content)
this.localBaseImageDependent = false
};
/**
* builds the Dockerfile
*/
async build () {
plugins.beautylog.info('now building Dockerfile for ' + this.cleanTag)
let buildCommand = `docker build -t ${this.buildTag} -f ${this.filePath} .`
await bash(buildCommand)
NpmciEnv.dockerFilesBuilt.push(this)
return
};
/**
* pushes the Dockerfile to a registry
*/
async push(stageArg) {
switch (stageArg) {
case 'release':
await bash(`docker tag ${this.buildTag} ${this.releaseTag}`)
await bash(`docker push ${this.releaseTag}`)
// if release registry is different from gitlab
if (NpmciEnv.dockerRegistry !== 'registry.gitlab.com') {
await bash(`docker tag ${this.buildTag} ${this.gitlabReleaseTag}`)
await bash(`docker push ${this.gitlabReleaseTag}`)
}
break
case 'test':
default:
await bash(`docker tag ${this.buildTag} ${this.gitlabTestTag}`)
await bash(`docker push ${this.gitlabTestTag}`)
break
}
};
/**
* pulls the Dockerfile from a registry
*/
async pull(registryArg: string) {
let pullTag = this.gitlabTestTag
await bash('docker pull ' + pullTag)
await bash('docker tag ' + pullTag + ' ' + this.buildTag)
};
/**
* tests the Dockerfile;
*/
async test() {
let testFile: string = plugins.path.join(paths.NpmciTestDir, 'test_' + this.version + '.sh')
let testFileExists: boolean = plugins.smartfile.fs.fileExistsSync(testFile)
if (testFileExists) {
// run tests
await bash('docker run --name npmci_test_container ' + this.buildTag + ' mkdir /npmci_test')
await bash('docker cp ' + testFile + ' npmci_test_container:/npmci_test/test.sh')
await bash('docker commit npmci_test_container npmci_test_image')
await bash('docker run npmci_test_image sh /npmci_test/test.sh')
await bash('docker rm npmci_test_container')
await bash('docker rmi --force npmci_test_image')
} else {
plugins.beautylog.warn('skipping tests for ' + this.cleanTag + ' because no testfile was found!')
}
};
/**
* gets the id of a Dockerfile
*/
async getId() {
let containerId = await bash('docker inspect --type=image --format=\"{{.Id}}\" ' + this.buildTag)
return containerId
};
}
/**
* returns a version for a docker file
* @execution SYNC
*/
export let dockerFileVersion = (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
}

Some files were not shown because too many files have changed in this diff Show More