Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 90490b928c | |||
| 86d29325cb | |||
| 73de81d912 | |||
| 7d5162e631 | |||
| 6101d716c1 | |||
| 69f93bb817 | |||
| ca272d1282 | |||
| 884d9f8a34 | |||
| b2968005aa | |||
| e759b731ea | |||
| e28d864d17 | |||
| 993b99891a | |||
| baea86e087 | |||
| bc3679d614 | |||
| 61e3edc827 | |||
| 77ce4eea00 | |||
| 5632bd5d0b | |||
| 922d052287 | |||
| b0f8134afa | |||
| d9ff7957e9 | |||
| e92827de57 | |||
| 2782a242be | |||
| eef63f6b38 | |||
| ce9f3871b4 | |||
| 3e9a62e4c9 | |||
| 242c5f2873 | |||
| 57e2fd8da1 | |||
| 742899472c | |||
| 3f126d849f | |||
| 911392e00e | |||
| 3f5d4ee091 | |||
| c13ab8e428 | |||
| d82e28f5d1 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
dist/
|
|
||||||
coverage/
|
coverage/
|
||||||
docs/
|
docs/
|
||||||
29
.gitlab-ci.yml
Normal file
29
.gitlab-ci.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
image: hosttoday/ht-docker-node:latest
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- test
|
||||||
|
- release
|
||||||
|
|
||||||
|
testLTS:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test lts
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
testSTABLE:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test stable
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
release:
|
||||||
|
stage: release
|
||||||
|
script:
|
||||||
|
- npm install npmci -g
|
||||||
|
- npmci publish
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
4
README.md
Normal file
4
README.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# NPMCI
|
||||||
|
|
||||||
|
npmci is your friend when it comes to handling npm packages during CI builds.
|
||||||
|
It is designed to work hand in hand with npmts
|
||||||
1
alias.json
Normal file
1
alias.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
10
appveyor.yml
Normal file
10
appveyor.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
environment:
|
||||||
|
nodejs_version: "4"
|
||||||
|
install:
|
||||||
|
- ps: Install-Product node $env:nodejs_version
|
||||||
|
- npm install
|
||||||
|
test_script:
|
||||||
|
- node --version
|
||||||
|
- npm --version
|
||||||
|
- npm test
|
||||||
|
build: off
|
||||||
1
dist/index.d.ts
vendored
Normal file
1
dist/index.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import "typings-global";
|
||||||
37
dist/index.js
vendored
Normal file
37
dist/index.js
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
var plugins = require("./npmci.plugins");
|
||||||
|
var packJson = require("../package.json");
|
||||||
|
plugins.beautylog.log("npmci in version" + packJson.version);
|
||||||
|
var npmci_install_1 = require("./npmci.install");
|
||||||
|
var npmci_test_1 = require("./npmci.test");
|
||||||
|
var npmci_publish_1 = require("./npmci.publish");
|
||||||
|
var command;
|
||||||
|
var commandOption;
|
||||||
|
plugins.commander
|
||||||
|
.arguments('<commandarg> [commandoptionarg]')
|
||||||
|
.action(function (commandarg, commandoptionarg) {
|
||||||
|
command = commandarg;
|
||||||
|
commandOption = commandoptionarg;
|
||||||
|
});
|
||||||
|
plugins.commander.parse(process.argv);
|
||||||
|
if (typeof command === 'undefined') {
|
||||||
|
console.error('no command given!');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
switch (command) {
|
||||||
|
case "install":
|
||||||
|
npmci_install_1.install(commandOption);
|
||||||
|
break;
|
||||||
|
case "test":
|
||||||
|
npmci_test_1.test(commandOption);
|
||||||
|
break;
|
||||||
|
case "publish":
|
||||||
|
npmci_publish_1.publish();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3hCLElBQVksT0FBTyxXQUFNLGlCQUFpQixDQUFDLENBQUE7QUFFM0MsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFMUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRTdELDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUd4QyxJQUFJLE9BQU8sQ0FBQztBQUNaLElBQUksYUFBYSxDQUFDO0FBRWxCLE9BQU8sQ0FBQyxTQUFTO0tBQ1osU0FBUyxDQUFDLGlDQUFpQyxDQUFDO0tBQzVDLE1BQU0sQ0FBQyxVQUFVLFVBQVUsRUFBRSxnQkFBZ0I7SUFDMUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUNyQixhQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFDckMsQ0FBQyxDQUFDLENBQUM7QUFFUCxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdEMsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQztJQUNiLEtBQUssU0FBUztRQUNWLHVCQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkIsS0FBSyxDQUFDO0lBQ1YsS0FBSyxNQUFNO1FBQ1AsaUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQixLQUFLLENBQUM7SUFDVixLQUFLLFNBQVM7UUFDVix1QkFBTyxFQUFFLENBQUM7UUFDVixLQUFLLENBQUM7SUFDVjtRQUNJLEtBQUssQ0FBQztBQUNkLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXHJcbmltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5cclxubGV0IHBhY2tKc29uID0gcmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKTtcclxuXHJcbnBsdWdpbnMuYmVhdXR5bG9nLmxvZyhcIm5wbWNpIGluIHZlcnNpb25cIiArIHBhY2tKc29uLnZlcnNpb24pO1xyXG5cclxuaW1wb3J0IHtpbnN0YWxsfSBmcm9tIFwiLi9ucG1jaS5pbnN0YWxsXCI7XHJcbmltcG9ydCB7dGVzdH0gZnJvbSBcIi4vbnBtY2kudGVzdFwiO1xyXG5pbXBvcnQge3B1Ymxpc2h9IGZyb20gXCIuL25wbWNpLnB1Ymxpc2hcIjtcclxuXHJcblxyXG5sZXQgY29tbWFuZDtcclxubGV0IGNvbW1hbmRPcHRpb247XHJcblxyXG5wbHVnaW5zLmNvbW1hbmRlclxyXG4gICAgLmFyZ3VtZW50cygnPGNvbW1hbmRhcmc+IFtjb21tYW5kb3B0aW9uYXJnXScpXHJcbiAgICAuYWN0aW9uKGZ1bmN0aW9uIChjb21tYW5kYXJnLCBjb21tYW5kb3B0aW9uYXJnKSB7XHJcbiAgICAgICAgY29tbWFuZCA9IGNvbW1hbmRhcmc7XHJcbiAgICAgICAgY29tbWFuZE9wdGlvbiA9IGNvbW1hbmRvcHRpb25hcmc7XHJcbiAgICB9KTtcclxuIFxyXG5wbHVnaW5zLmNvbW1hbmRlci5wYXJzZShwcm9jZXNzLmFyZ3YpO1xyXG4gXHJcbmlmICh0eXBlb2YgY29tbWFuZCA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoJ25vIGNvbW1hbmQgZ2l2ZW4hJyk7XHJcbiAgICBwcm9jZXNzLmV4aXQoMSk7XHJcbn1cclxuXHJcbnN3aXRjaCAoY29tbWFuZCl7XHJcbiAgICBjYXNlIFwiaW5zdGFsbFwiOlxyXG4gICAgICAgIGluc3RhbGwoY29tbWFuZE9wdGlvbik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICBjYXNlIFwidGVzdFwiOlxyXG4gICAgICAgIHRlc3QoY29tbWFuZE9wdGlvbik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICBjYXNlIFwicHVibGlzaFwiOlxyXG4gICAgICAgIHB1Ymxpc2goKTtcclxuICAgICAgICBicmVhaztcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbn1cclxuXHJcbiJdfQ==
|
||||||
2
dist/npmci.bash.d.ts
vendored
Normal file
2
dist/npmci.bash.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare let bash: (commandArg: any) => void;
|
||||||
13
dist/npmci.bash.js
vendored
Normal file
13
dist/npmci.bash.js
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
var plugins = require("./npmci.plugins");
|
||||||
|
exports.bash = function (commandArg) {
|
||||||
|
var exitCode = plugins.shelljs.exec("bash -c \"source /usr/local/nvm/nvm.sh &&" +
|
||||||
|
commandArg +
|
||||||
|
"\"").code;
|
||||||
|
if (exitCode !== 0) {
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQ2hDLFlBQUksR0FBRyxVQUFDLFVBQVU7SUFDekIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9CLDJDQUEyQztRQUMzQyxVQUFVO1FBQ1YsSUFBSSxDQUNQLENBQUMsSUFBSSxDQUFDO0lBQ1AsRUFBRSxDQUFBLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFBLENBQUM7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7QUFDTCxDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5leHBvcnQgbGV0IGJhc2ggPSAoY29tbWFuZEFyZykgPT4ge1xyXG4gICAgbGV0IGV4aXRDb2RlID0gcGx1Z2lucy5zaGVsbGpzLmV4ZWMoXHJcbiAgICAgICAgXCJiYXNoIC1jIFxcXCJzb3VyY2UgL3Vzci9sb2NhbC9udm0vbnZtLnNoICYmXCIgK1xyXG4gICAgICAgIGNvbW1hbmRBcmcgK1xyXG4gICAgICAgIFwiXFxcIlwiXHJcbiAgICApLmNvZGU7XHJcbiAgICBpZihleGl0Q29kZSAhPT0gMCl7XHJcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xyXG4gICAgfVxyXG59Il19
|
||||||
2
dist/npmci.install.d.ts
vendored
Normal file
2
dist/npmci.install.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare let install: (versionArg: any) => any;
|
||||||
25
dist/npmci.install.js
vendored
Normal file
25
dist/npmci.install.js
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
var plugins = require("./npmci.plugins");
|
||||||
|
var npmci_bash_1 = require("./npmci.bash");
|
||||||
|
exports.install = function (versionArg) {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
var version;
|
||||||
|
if (versionArg = "lts") {
|
||||||
|
version = "4";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
version = versionArg;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
plugins.beautylog.log("now installing " + "node ".green + ("version " + version).yellow);
|
||||||
|
npmci_bash_1.bash("nvm install " + version +
|
||||||
|
" && nvm alias default " + version);
|
||||||
|
plugins.beautylog.success("Node version " + version + " successfully installed!");
|
||||||
|
npmci_bash_1.bash("node -v");
|
||||||
|
npmci_bash_1.bash("npm -v");
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUV2QixlQUFPLEdBQUcsVUFBQyxVQUFVO0lBQzVCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsSUFBSSxPQUFjLENBQUM7SUFDbkIsRUFBRSxDQUFBLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFBLENBQUM7UUFDbkIsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFBQSxDQUFDO0lBQ0YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RixpQkFBSSxDQUNBLGNBQWMsR0FBRyxPQUFPO1FBQ3hCLHdCQUF3QixHQUFHLE9BQU8sQ0FDckMsQ0FBQztJQUNGLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxPQUFPLEdBQUcsMEJBQTBCLENBQUMsQ0FBQztJQUNsRixpQkFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hCLGlCQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDZixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuaW5zdGFsbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcclxuXHJcbmV4cG9ydCBsZXQgaW5zdGFsbCA9ICh2ZXJzaW9uQXJnKSA9PiB7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgbGV0IHZlcnNpb246c3RyaW5nO1xyXG4gICAgaWYodmVyc2lvbkFyZyA9IFwibHRzXCIpe1xyXG4gICAgICAgIHZlcnNpb24gPSBcIjRcIjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmVyc2lvbiA9IHZlcnNpb25Bcmc7XHJcbiAgICB9O1xyXG4gICAgcGx1Z2lucy5iZWF1dHlsb2cubG9nKFwibm93IGluc3RhbGxpbmcgXCIgKyBcIm5vZGUgXCIuZ3JlZW4gKyAoXCJ2ZXJzaW9uIFwiICsgdmVyc2lvbikueWVsbG93KTtcclxuICAgIGJhc2goXHJcbiAgICAgICAgXCJudm0gaW5zdGFsbCBcIiArIHZlcnNpb24gK1xyXG4gICAgICAgIFwiICYmIG52bSBhbGlhcyBkZWZhdWx0IFwiICsgdmVyc2lvblxyXG4gICAgKTtcclxuICAgIHBsdWdpbnMuYmVhdXR5bG9nLnN1Y2Nlc3MoXCJOb2RlIHZlcnNpb24gXCIgKyB2ZXJzaW9uICsgXCIgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCFcIik7XHJcbiAgICBiYXNoKFwibm9kZSAtdlwiKTtcclxuICAgIGJhc2goXCJucG0gLXZcIik7XHJcbiAgICBkb25lLnJlc29sdmUoKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn0iXX0=
|
||||||
6
dist/npmci.plugins.d.ts
vendored
Normal file
6
dist/npmci.plugins.d.ts
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export import beautylog = require("beautylog");
|
||||||
|
export declare let commander: any;
|
||||||
|
export declare let q: any;
|
||||||
|
export declare let shelljs: any;
|
||||||
|
export import smartfile = require("smartfile");
|
||||||
9
dist/npmci.plugins.js
vendored
Normal file
9
dist/npmci.plugins.js
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
exports.beautylog = require("beautylog");
|
||||||
|
exports.commander = require("commander");
|
||||||
|
exports.q = require("q");
|
||||||
|
exports.shelljs = require("shelljs");
|
||||||
|
exports.smartfile = require("smartfile");
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzFCLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmV4cG9ydCBpbXBvcnQgYmVhdXR5bG9nID0gcmVxdWlyZShcImJlYXV0eWxvZ1wiKTtcclxuZXhwb3J0IGxldCBjb21tYW5kZXIgPSByZXF1aXJlKFwiY29tbWFuZGVyXCIpO1xyXG5leHBvcnQgbGV0IHEgPSByZXF1aXJlKFwicVwiKTtcclxuZXhwb3J0IGxldCBzaGVsbGpzID0gcmVxdWlyZShcInNoZWxsanNcIik7XHJcbmV4cG9ydCBpbXBvcnQgc21hcnRmaWxlID0gcmVxdWlyZShcInNtYXJ0ZmlsZVwiKTsiXX0=
|
||||||
2
dist/npmci.publish.d.ts
vendored
Normal file
2
dist/npmci.publish.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare let publish: () => any;
|
||||||
17
dist/npmci.publish.js
vendored
Normal file
17
dist/npmci.publish.js
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
var plugins = require("./npmci.plugins");
|
||||||
|
var npmci_bash_1 = require("./npmci.bash");
|
||||||
|
var npmrcPrefix = "//registry.npmjs.org/:_authToken=";
|
||||||
|
var npmToken = process.env.NPMCITOKEN;
|
||||||
|
var npmrcFileString = npmrcPrefix + npmToken;
|
||||||
|
exports.publish = function () {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
plugins.beautylog.ok("Tests passed, now publishing to npm!");
|
||||||
|
plugins.smartfile.memory.toFsSync(npmrcFileString, { fileName: "npmrc", filePath: "/etc/" });
|
||||||
|
npmci_bash_1.bash("npm publish");
|
||||||
|
plugins.beautylog.ok("Done!");
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUVsQyxJQUFJLFdBQVcsR0FBVSxtQ0FBbUMsQ0FBQztBQUM3RCxJQUFJLFFBQVEsR0FBVSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztBQUM3QyxJQUFJLGVBQWUsR0FBRyxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBR2xDLGVBQU8sR0FBRztJQUNqQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDN0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBQyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7SUFDdkYsaUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kucHVibGlzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcclxuXHJcbmxldCBucG1yY1ByZWZpeDpzdHJpbmcgPSBcIi8vcmVnaXN0cnkubnBtanMub3JnLzpfYXV0aFRva2VuPVwiO1xyXG5sZXQgbnBtVG9rZW46c3RyaW5nID0gcHJvY2Vzcy5lbnYuTlBNQ0lUT0tFTjtcclxubGV0IG5wbXJjRmlsZVN0cmluZyA9IG5wbXJjUHJlZml4ICsgbnBtVG9rZW47XHJcblxyXG5cclxuZXhwb3J0IGxldCBwdWJsaXNoID0gKCkgPT4ge1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIHBsdWdpbnMuYmVhdXR5bG9nLm9rKFwiVGVzdHMgcGFzc2VkLCBub3cgcHVibGlzaGluZyB0byBucG0hXCIpO1xyXG4gICAgcGx1Z2lucy5zbWFydGZpbGUubWVtb3J5LnRvRnNTeW5jKG5wbXJjRmlsZVN0cmluZyx7ZmlsZU5hbWU6XCJucG1yY1wiLGZpbGVQYXRoOlwiL2V0Yy9cIn0pO1xyXG4gICAgYmFzaChcIm5wbSBwdWJsaXNoXCIpO1xyXG4gICAgcGx1Z2lucy5iZWF1dHlsb2cub2soXCJEb25lIVwiKVxyXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcclxufTsiXX0=
|
||||||
2
dist/npmci.test.d.ts
vendored
Normal file
2
dist/npmci.test.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare let test: (versionArg: any) => any;
|
||||||
20
dist/npmci.test.js
vendored
Normal file
20
dist/npmci.test.js
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
var plugins = require("./npmci.plugins");
|
||||||
|
var npmci_bash_1 = require("./npmci.bash");
|
||||||
|
var npmci_install_1 = require("./npmci.install");
|
||||||
|
exports.test = function (versionArg) {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
npmci_install_1.install(versionArg)
|
||||||
|
.then(function () {
|
||||||
|
plugins.beautylog.info("now installing dependencies:");
|
||||||
|
npmci_bash_1.bash("npm install");
|
||||||
|
plugins.beautylog.info("now starting tests:");
|
||||||
|
npmci_bash_1.bash("npm test");
|
||||||
|
plugins.beautylog.success("test finished");
|
||||||
|
done.resolve();
|
||||||
|
});
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUU3QixZQUFJLEdBQUcsVUFBQyxVQUFVO0lBQ3pCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsdUJBQU8sQ0FBQyxVQUFVLENBQUM7U0FDZCxJQUFJLENBQUM7UUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3ZELGlCQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM5QyxpQkFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQTtJQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7YmFzaH0gZnJvbSBcIi4vbnBtY2kuYmFzaFwiO1xyXG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcclxuXHJcbmV4cG9ydCBsZXQgdGVzdCA9ICh2ZXJzaW9uQXJnKSA9PiB7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgaW5zdGFsbCh2ZXJzaW9uQXJnKVxyXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJub3cgaW5zdGFsbGluZyBkZXBlbmRlbmNpZXM6XCIpO1xyXG4gICAgICAgICAgICBiYXNoKFwibnBtIGluc3RhbGxcIik7XHJcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJub3cgc3RhcnRpbmcgdGVzdHM6XCIpO1xyXG4gICAgICAgICAgICBiYXNoKFwibnBtIHRlc3RcIik7XHJcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLnN1Y2Nlc3MoXCJ0ZXN0IGZpbmlzaGVkXCIpO1xyXG4gICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcclxuICAgICAgICB9KVxyXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcclxufSJdfQ==
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "npmci",
|
"name": "npmci",
|
||||||
"version": "1.0.4",
|
"version": "1.0.17",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -20,11 +20,14 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/npmci#README",
|
"homepage": "https://gitlab.com/pushrocks/npmci#README",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"npmts": "^5.1.15"
|
"npmts": "^5.1.18"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"beautylog": "^5.0.6",
|
||||||
"commander": "^2.9.0",
|
"commander": "^2.9.0",
|
||||||
|
"q": "^1.4.1",
|
||||||
"shelljs": "^0.7.0",
|
"shelljs": "^0.7.0",
|
||||||
|
"smartfile": "^3.0.10",
|
||||||
"typings-global": "^1.0.3"
|
"typings-global": "^1.0.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
51
ts/index.ts
51
ts/index.ts
@@ -1,25 +1,44 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
import "typings-global"
|
import "typings-global";
|
||||||
let shelljs = require("shelljs");
|
import * as plugins from "./npmci.plugins";
|
||||||
|
|
||||||
let program = require('commander');
|
let packJson = require("../package.json");
|
||||||
let cmdValue;
|
|
||||||
let nodeValue;
|
|
||||||
|
|
||||||
program
|
plugins.beautylog.log("npmci in version" + packJson.version);
|
||||||
.version('0.0.1')
|
|
||||||
.arguments('<cmd> [node]')
|
import {install} from "./npmci.install";
|
||||||
.action(function (cmd, node) {
|
import {test} from "./npmci.test";
|
||||||
cmdValue = cmd;
|
import {publish} from "./npmci.publish";
|
||||||
nodeValue = node;
|
|
||||||
|
|
||||||
|
let command;
|
||||||
|
let commandOption;
|
||||||
|
|
||||||
|
plugins.commander
|
||||||
|
.arguments('<commandarg> [commandoptionarg]')
|
||||||
|
.action(function (commandarg, commandoptionarg) {
|
||||||
|
command = commandarg;
|
||||||
|
commandOption = commandoptionarg;
|
||||||
});
|
});
|
||||||
|
|
||||||
program.parse(process.argv);
|
plugins.commander.parse(process.argv);
|
||||||
|
|
||||||
if (typeof cmdValue === 'undefined') {
|
if (typeof command === 'undefined') {
|
||||||
console.error('no command given!');
|
console.error('no command given!');
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
console.log('command:', cmdValue);
|
|
||||||
console.log('node Version:', nodeValue);
|
switch (command){
|
||||||
shelljs.exec("bash -c \"source /usr/local/nvm/nvm.sh && nvm install "+ nodeValue + " nvm alias default " + nodeValue + "\"");
|
case "install":
|
||||||
|
install(commandOption);
|
||||||
|
break;
|
||||||
|
case "test":
|
||||||
|
test(commandOption);
|
||||||
|
break;
|
||||||
|
case "publish":
|
||||||
|
publish();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
12
ts/npmci.bash.ts
Normal file
12
ts/npmci.bash.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
export let bash = (commandArg) => {
|
||||||
|
let exitCode = plugins.shelljs.exec(
|
||||||
|
"bash -c \"source /usr/local/nvm/nvm.sh &&" +
|
||||||
|
commandArg +
|
||||||
|
"\""
|
||||||
|
).code;
|
||||||
|
if(exitCode !== 0){
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
23
ts/npmci.install.ts
Normal file
23
ts/npmci.install.ts
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {bash} from "./npmci.bash";
|
||||||
|
|
||||||
|
export let install = (versionArg) => {
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
let version:string;
|
||||||
|
if(versionArg = "lts"){
|
||||||
|
version = "4";
|
||||||
|
} else {
|
||||||
|
version = versionArg;
|
||||||
|
};
|
||||||
|
plugins.beautylog.log("now installing " + "node ".green + ("version " + version).yellow);
|
||||||
|
bash(
|
||||||
|
"nvm install " + version +
|
||||||
|
" && nvm alias default " + version
|
||||||
|
);
|
||||||
|
plugins.beautylog.success("Node version " + version + " successfully installed!");
|
||||||
|
bash("node -v");
|
||||||
|
bash("npm -v");
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
6
ts/npmci.plugins.ts
Normal file
6
ts/npmci.plugins.ts
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export import beautylog = require("beautylog");
|
||||||
|
export let commander = require("commander");
|
||||||
|
export let q = require("q");
|
||||||
|
export let shelljs = require("shelljs");
|
||||||
|
export import smartfile = require("smartfile");
|
||||||
17
ts/npmci.publish.ts
Normal file
17
ts/npmci.publish.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {bash} from "./npmci.bash";
|
||||||
|
|
||||||
|
let npmrcPrefix:string = "//registry.npmjs.org/:_authToken=";
|
||||||
|
let npmToken:string = process.env.NPMCITOKEN;
|
||||||
|
let npmrcFileString = npmrcPrefix + npmToken;
|
||||||
|
|
||||||
|
|
||||||
|
export let publish = () => {
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
plugins.beautylog.ok("Tests passed, now publishing to npm!");
|
||||||
|
plugins.smartfile.memory.toFsSync(npmrcFileString,{fileName:"npmrc",filePath:"/etc/"});
|
||||||
|
bash("npm publish");
|
||||||
|
plugins.beautylog.ok("Done!")
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
18
ts/npmci.test.ts
Normal file
18
ts/npmci.test.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {bash} from "./npmci.bash";
|
||||||
|
import {install} from "./npmci.install";
|
||||||
|
|
||||||
|
export let test = (versionArg) => {
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
install(versionArg)
|
||||||
|
.then(function(){
|
||||||
|
plugins.beautylog.info("now installing dependencies:");
|
||||||
|
bash("npm install");
|
||||||
|
plugins.beautylog.info("now starting tests:");
|
||||||
|
bash("npm test");
|
||||||
|
plugins.beautylog.success("test finished");
|
||||||
|
done.resolve();
|
||||||
|
})
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user