Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 399168f5d0 | |||
| a272556ccd | |||
| 172b9f9b3f | |||
| 9eb3d1d06a | |||
| 4093675a9d | |||
| 53a2fb4c78 | |||
| 59ed6829e4 | |||
| 4e01b0c9b6 | |||
| 85a6099d56 | |||
| 787145816a | |||
| b194bf2a0e | |||
| 407d9f8237 | |||
| ec196e1d53 | |||
| 305fc6e68e | |||
| 35a7a83ee6 | |||
| 165000144c | |||
| 77a4cd7a12 | |||
| 9822a9c867 |
29
README.md
29
README.md
@@ -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,3 +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
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
[](https://push.rocks)
|
||||||
|
|||||||
12
dist/npmci.bash.d.ts
vendored
12
dist/npmci.bash.d.ts
vendored
@@ -1,3 +1,13 @@
|
|||||||
export declare let nvmAvailable: boolean;
|
export declare let nvmAvailable: boolean;
|
||||||
|
/**
|
||||||
|
* bash() allows using bash with nvm in path
|
||||||
|
*/
|
||||||
export declare let bash: (commandArg: string, retryArg?: number, bareArg?: boolean) => string;
|
export declare let bash: (commandArg: string, retryArg?: number, bareArg?: boolean) => string;
|
||||||
export declare let bashBare: (commandArg: any, retryArg?: number) => string;
|
/**
|
||||||
|
* bashBare allows usage of bash without sourcing any files like nvm
|
||||||
|
*/
|
||||||
|
export declare let bashBare: (commandArg: string, retryArg?: number) => string;
|
||||||
|
/**
|
||||||
|
* bashNoError allows executing stuff without throwing an error
|
||||||
|
*/
|
||||||
|
export declare let bashNoError: (commandArg: string) => string;
|
||||||
|
|||||||
19
dist/npmci.bash.js
vendored
19
dist/npmci.bash.js
vendored
@@ -14,6 +14,9 @@ let checkNvm = () => {
|
|||||||
;
|
;
|
||||||
};
|
};
|
||||||
checkNvm();
|
checkNvm();
|
||||||
|
/**
|
||||||
|
* bash() allows using bash with nvm in path
|
||||||
|
*/
|
||||||
exports.bash = (commandArg, retryArg = 2, bareArg = false) => {
|
exports.bash = (commandArg, retryArg = 2, bareArg = false) => {
|
||||||
let exitCode;
|
let exitCode;
|
||||||
let stdOut;
|
let stdOut;
|
||||||
@@ -28,11 +31,12 @@ exports.bash = (commandArg, retryArg = 2, bareArg = false) => {
|
|||||||
}
|
}
|
||||||
exitCode = execResult.code;
|
exitCode = execResult.code;
|
||||||
stdOut = execResult.stdout;
|
stdOut = execResult.stdout;
|
||||||
|
// determine how bash reacts to error and success
|
||||||
if (exitCode !== 0 && i === retryArg) {
|
if (exitCode !== 0 && i === retryArg) {
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
else if (exitCode === 0) {
|
else if (exitCode === 0 || retryArg === -1) {
|
||||||
i = retryArg + 1; // if everything works out ok retrials are not wanted
|
i = retryArg + 1; // retry +1 breaks for loop, if everything works out ok retrials are not wanted
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
plugins.beautylog.warn('Something went wrong! Exit Code: ' + exitCode.toString());
|
plugins.beautylog.warn('Something went wrong! Exit Code: ' + exitCode.toString());
|
||||||
@@ -45,7 +49,16 @@ exports.bash = (commandArg, retryArg = 2, bareArg = false) => {
|
|||||||
}
|
}
|
||||||
return stdOut;
|
return stdOut;
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* bashBare allows usage of bash without sourcing any files like nvm
|
||||||
|
*/
|
||||||
exports.bashBare = (commandArg, retryArg = 2) => {
|
exports.bashBare = (commandArg, retryArg = 2) => {
|
||||||
return exports.bash(commandArg, retryArg, true);
|
return exports.bash(commandArg, retryArg, true);
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUUxQyxJQUFJLGVBQWUsR0FBVyxFQUFFLENBQUE7QUFDckIsUUFBQSxZQUFZLEdBQVksS0FBSyxDQUFBO0FBQ3hDLElBQUksUUFBUSxHQUFHO0lBQ1gsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLEVBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRixlQUFlLEdBQUcsa0NBQWtDLENBQUE7UUFDcEQsb0JBQVksR0FBRyxJQUFJLENBQUE7SUFDdkIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFGLGVBQWUsR0FBRywwQkFBMEIsQ0FBQTtRQUM1QyxvQkFBWSxHQUFHLElBQUksQ0FBQTtJQUN2QixDQUFDO0lBQUEsQ0FBQztBQUNOLENBQUMsQ0FBQTtBQUNELFFBQVEsRUFBRSxDQUFBO0FBRUMsUUFBQSxJQUFJLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLEtBQUs7SUFDaEUsSUFBSSxRQUFnQixDQUFBO0lBQ3BCLElBQUksTUFBYyxDQUFBO0lBQ2xCLElBQUksVUFBVSxDQUFBO0lBQ2QsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QixZQUFZLGVBQWUsSUFBSSxVQUFVLEdBQUcsQ0FDL0MsQ0FBQTtZQUNMLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDakQsQ0FBQztZQUNELFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO1lBQzFCLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFBO1lBQzFCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDbkIsQ0FBQztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUEsQ0FBQyxxREFBcUQ7WUFDMUUsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO2dCQUNqRixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1lBQ3hGLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEdBQUcsVUFBVSxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNLENBQUE7QUFDakIsQ0FBQyxDQUFBO0FBRVUsUUFBQSxRQUFRLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxHQUFHLENBQUM7SUFDM0MsTUFBTSxDQUFDLFlBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQzNDLENBQUMsQ0FBQSJ9
|
/**
|
||||||
|
* bashNoError allows executing stuff without throwing an error
|
||||||
|
*/
|
||||||
|
exports.bashNoError = (commandArg) => {
|
||||||
|
return exports.bash(commandArg, -1);
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUUxQyxJQUFJLGVBQWUsR0FBVyxFQUFFLENBQUE7QUFDckIsUUFBQSxZQUFZLEdBQVksS0FBSyxDQUFBO0FBQ3hDLElBQUksUUFBUSxHQUFHO0lBQ1gsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLEVBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRixlQUFlLEdBQUcsa0NBQWtDLENBQUE7UUFDcEQsb0JBQVksR0FBRyxJQUFJLENBQUE7SUFDdkIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFGLGVBQWUsR0FBRywwQkFBMEIsQ0FBQTtRQUM1QyxvQkFBWSxHQUFHLElBQUksQ0FBQTtJQUN2QixDQUFDO0lBQUEsQ0FBQztBQUNOLENBQUMsQ0FBQTtBQUNELFFBQVEsRUFBRSxDQUFBO0FBRVY7O0dBRUc7QUFDUSxRQUFBLElBQUksR0FBRyxDQUFDLFVBQWtCLEVBQUUsV0FBbUIsQ0FBQyxFQUFFLFVBQW1CLEtBQUs7SUFDakYsSUFBSSxRQUFnQixDQUFBO0lBQ3BCLElBQUksTUFBYyxDQUFBO0lBQ2xCLElBQUksVUFBVSxDQUFBO0lBQ2QsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QixZQUFZLGVBQWUsSUFBSSxVQUFVLEdBQUcsQ0FDL0MsQ0FBQTtZQUNMLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDakQsQ0FBQztZQUNELFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO1lBQzFCLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFBO1lBRTFCLGlEQUFpRDtZQUNqRCxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ25CLENBQUM7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQSxDQUFDLCtFQUErRTtZQUNwRyxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7Z0JBQ2pGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDeEYsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQTtBQUNqQixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsUUFBUSxHQUFHLENBQUMsVUFBa0IsRUFBRSxXQUFtQixDQUFDO0lBQzNELE1BQU0sQ0FBQyxZQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUMzQyxDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsV0FBVyxHQUFHLENBQUMsVUFBa0I7SUFDeEMsTUFBTSxDQUFDLFlBQUksQ0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUM5QixDQUFDLENBQUEifQ==
|
||||||
3
dist/npmci.config.js
vendored
3
dist/npmci.config.js
vendored
@@ -3,7 +3,6 @@ const q = require("q");
|
|||||||
const plugins = require("./npmci.plugins");
|
const plugins = require("./npmci.plugins");
|
||||||
const paths = require("./npmci.paths");
|
const paths = require("./npmci.paths");
|
||||||
exports.getConfig = () => {
|
exports.getConfig = () => {
|
||||||
console.log('getting config');
|
|
||||||
let done = q.defer();
|
let done = q.defer();
|
||||||
let npmciNpmextra = new plugins.npmextra.Npmextra(paths.cwd);
|
let npmciNpmextra = new plugins.npmextra.Npmextra(paths.cwd);
|
||||||
let defaultConfig = {
|
let defaultConfig = {
|
||||||
@@ -13,4 +12,4 @@ exports.getConfig = () => {
|
|||||||
done.resolve(npmciConfig);
|
done.resolve(npmciConfig);
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1QkFBc0I7QUFFdEIsMkNBQTBDO0FBQzFDLHVDQUFzQztBQU0zQixRQUFBLFNBQVMsR0FBRztJQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDN0IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBaUIsQ0FBQTtJQUNuQyxJQUFJLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM1RCxJQUFJLGFBQWEsR0FBa0I7UUFDL0IsY0FBYyxFQUFFLEVBQUU7S0FDckIsQ0FBQTtJQUNELElBQUksV0FBVyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQWdCLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQTtJQUM5RSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSJ9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1QkFBc0I7QUFFdEIsMkNBQTBDO0FBQzFDLHVDQUFzQztBQU0zQixRQUFBLFNBQVMsR0FBRztJQUNuQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFpQixDQUFBO0lBQ25DLElBQUksYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzVELElBQUksYUFBYSxHQUFrQjtRQUMvQixjQUFjLEVBQUUsRUFBRTtLQUNyQixDQUFBO0lBQ0QsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBZ0IsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQzlFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDdkIsQ0FBQyxDQUFBIn0=
|
||||||
20
dist/npmci.install.js
vendored
20
dist/npmci.install.js
vendored
@@ -32,13 +32,23 @@ exports.install = (versionArg) => {
|
|||||||
npmci_bash_1.bash('npm -v');
|
npmci_bash_1.bash('npm -v');
|
||||||
// lets look for further config
|
// lets look for further config
|
||||||
configModule.getConfig()
|
configModule.getConfig()
|
||||||
.then(config => {
|
.then(configArg => {
|
||||||
for (let npmTool of config.globalNpmTools) {
|
plugins.beautylog.log('Now checking for needed global npm tools...');
|
||||||
plugins.beautylog.info(`globally installing ${npmTool} from npm`);
|
for (let npmTool of configArg.globalNpmTools) {
|
||||||
npmci_bash_1.bash(`npm install -q -g ${npmTool}`);
|
plugins.beautylog.info(`Checking for global "${npmTool}"`);
|
||||||
|
let whichOutput = npmci_bash_1.bashNoError(`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`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
plugins.beautylog.success('all global npm tools specified in npmextra.json are now available!');
|
||||||
done.resolve();
|
done.resolve();
|
||||||
});
|
});
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuaW5zdGFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUMxQywrQ0FBOEM7QUFDOUMsNkNBQW1DO0FBQ25DLDZDQUEyQztBQUNoQyxRQUFBLE9BQU8sR0FBRyxDQUFDLFVBQVU7SUFDNUIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUNsRSxJQUFJLE9BQWUsQ0FBQTtJQUNuQixFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxQixPQUFPLEdBQUcsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUIsT0FBTyxHQUFHLEdBQUcsQ0FBQTtJQUNqQixDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxHQUFHLENBQUE7SUFDakIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxHQUFHLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBQUEsQ0FBQztJQUNGLEVBQUUsQ0FBQyxDQUFDLHlCQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2YsaUJBQUksQ0FBQyxlQUFlLE9BQU8seUJBQXlCLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDOUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLE9BQU8sMEJBQTBCLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNmLGlCQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFZCwrQkFBK0I7SUFDL0IsWUFBWSxDQUFDLFNBQVMsRUFBRTtTQUNuQixJQUFJLENBQUMsTUFBTTtRQUNSLEdBQUcsQ0FBQyxDQUFDLElBQUksT0FBTyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHVCQUF1QixPQUFPLFdBQVcsQ0FBQyxDQUFBO1lBQ2pFLGlCQUFJLENBQUMscUJBQXFCLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDeEMsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNsQixDQUFDLENBQUMsQ0FBQTtJQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSJ9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuaW5zdGFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUMxQywrQ0FBOEM7QUFDOUMsNkNBQWdEO0FBQ2hELDZDQUEyQztBQUNoQyxRQUFBLE9BQU8sR0FBRyxDQUFDLFVBQVU7SUFDNUIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUNsRSxJQUFJLE9BQWUsQ0FBQTtJQUNuQixFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxQixPQUFPLEdBQUcsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUIsT0FBTyxHQUFHLEdBQUcsQ0FBQTtJQUNqQixDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxHQUFHLENBQUE7SUFDakIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxHQUFHLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBQUEsQ0FBQztJQUNGLEVBQUUsQ0FBQyxDQUFDLHlCQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2YsaUJBQUksQ0FBQyxlQUFlLE9BQU8seUJBQXlCLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDOUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLE9BQU8sMEJBQTBCLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNmLGlCQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDZCwrQkFBK0I7SUFDL0IsWUFBWSxDQUFDLFNBQVMsRUFBRTtTQUNuQixJQUFJLENBQUMsU0FBUztRQUNYLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxDQUFDLENBQUE7UUFDcEUsR0FBRyxDQUFDLENBQUMsSUFBSSxPQUFPLElBQUksU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLE9BQU8sR0FBRyxDQUFDLENBQUE7WUFDMUQsSUFBSSxXQUFXLEdBQUcsd0JBQVcsQ0FBQyxTQUFTLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDakQsSUFBSSxhQUFhLEdBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtZQUM3RCxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLE9BQU8sZUFBZSxDQUFDLENBQUE7WUFDekQsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHVCQUF1QixPQUFPLFdBQVcsQ0FBQyxDQUFBO2dCQUNqRSxpQkFBSSxDQUFDLGVBQWUsT0FBTyxRQUFRLENBQUMsQ0FBQTtZQUN4QyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG9FQUFvRSxDQUFDLENBQUE7UUFDL0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2xCLENBQUMsQ0FBQyxDQUFBO0lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDdkIsQ0FBQyxDQUFBIn0=
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "npmci",
|
"name": "npmci",
|
||||||
"version": "2.3.26",
|
"version": "2.3.35",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist/index.d.ts",
|
||||||
|
|||||||
@@ -13,7 +13,10 @@ let checkNvm = () => {
|
|||||||
}
|
}
|
||||||
checkNvm()
|
checkNvm()
|
||||||
|
|
||||||
export let bash = (commandArg: string, retryArg = 2, bareArg = false) => {
|
/**
|
||||||
|
* bash() allows using bash with nvm in path
|
||||||
|
*/
|
||||||
|
export let bash = (commandArg: string, retryArg: number = 2, bareArg: boolean = false): string => {
|
||||||
let exitCode: number
|
let exitCode: number
|
||||||
let stdOut: string
|
let stdOut: string
|
||||||
let execResult
|
let execResult
|
||||||
@@ -28,10 +31,12 @@ export let bash = (commandArg: string, retryArg = 2, bareArg = false) => {
|
|||||||
}
|
}
|
||||||
exitCode = execResult.code
|
exitCode = execResult.code
|
||||||
stdOut = execResult.stdout
|
stdOut = execResult.stdout
|
||||||
if (exitCode !== 0 && i === retryArg) {
|
|
||||||
|
// determine how bash reacts to error and success
|
||||||
|
if (exitCode !== 0 && i === retryArg) { // something went wrong and retries are exhausted
|
||||||
process.exit(1)
|
process.exit(1)
|
||||||
} else if (exitCode === 0) {
|
} else if (exitCode === 0 || retryArg === -1) { // everything went fine, or no error wanted
|
||||||
i = retryArg + 1 // if everything works out ok retrials are not wanted
|
i = retryArg + 1 // retry +1 breaks for loop, if everything works out ok retrials are not wanted
|
||||||
} else {
|
} else {
|
||||||
plugins.beautylog.warn('Something went wrong! Exit Code: ' + exitCode.toString())
|
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())
|
||||||
@@ -43,6 +48,16 @@ export let bash = (commandArg: string, retryArg = 2, bareArg = false) => {
|
|||||||
return stdOut
|
return stdOut
|
||||||
}
|
}
|
||||||
|
|
||||||
export let bashBare = (commandArg, retryArg = 2) => {
|
/**
|
||||||
|
* bashBare allows usage of bash without sourcing any files like nvm
|
||||||
|
*/
|
||||||
|
export let bashBare = (commandArg: string, retryArg: number = 2) => {
|
||||||
return bash(commandArg, retryArg, true)
|
return bash(commandArg, retryArg, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bashNoError allows executing stuff without throwing an error
|
||||||
|
*/
|
||||||
|
export let bashNoError = (commandArg: string) => {
|
||||||
|
return bash(commandArg,-1)
|
||||||
|
}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ export interface INpmciOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export let getConfig = () => {
|
export let getConfig = () => {
|
||||||
console.log('getting config')
|
|
||||||
let done = q.defer<INpmciOptions>()
|
let done = q.defer<INpmciOptions>()
|
||||||
let npmciNpmextra = new plugins.npmextra.Npmextra(paths.cwd)
|
let npmciNpmextra = new plugins.npmextra.Npmextra(paths.cwd)
|
||||||
let defaultConfig: INpmciOptions = {
|
let defaultConfig: INpmciOptions = {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import * as plugins from './npmci.plugins'
|
import * as plugins from './npmci.plugins'
|
||||||
import * as configModule from './npmci.config'
|
import * as configModule from './npmci.config'
|
||||||
import { bash } from './npmci.bash'
|
import { bash, bashNoError } from './npmci.bash'
|
||||||
import { nvmAvailable } from './npmci.bash'
|
import { nvmAvailable } from './npmci.bash'
|
||||||
export let install = (versionArg) => {
|
export let install = (versionArg) => {
|
||||||
let done = plugins.q.defer()
|
let done = plugins.q.defer()
|
||||||
@@ -23,14 +23,22 @@ export let install = (versionArg) => {
|
|||||||
};
|
};
|
||||||
bash('node -v')
|
bash('node -v')
|
||||||
bash('npm -v')
|
bash('npm -v')
|
||||||
|
|
||||||
// lets look for further config
|
// lets look for further config
|
||||||
configModule.getConfig()
|
configModule.getConfig()
|
||||||
.then(config => {
|
.then(configArg => {
|
||||||
for (let npmTool of config.globalNpmTools) {
|
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 = bashNoError(`which ${npmTool}`)
|
||||||
|
let toolAvailable: boolean = !(/not found/.test(whichOutput))
|
||||||
|
if (toolAvailable) {
|
||||||
|
plugins.beautylog.log(`Tool ${npmTool} is available`)
|
||||||
|
} else {
|
||||||
plugins.beautylog.info(`globally installing ${npmTool} from npm`)
|
plugins.beautylog.info(`globally installing ${npmTool} from npm`)
|
||||||
bash(`npm install -q -g ${npmTool}`)
|
bash(`npm install ${npmTool} -q -g`)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
plugins.beautylog.success('all global npm tools specified in npmextra.json are now available!')
|
||||||
done.resolve()
|
done.resolve()
|
||||||
})
|
})
|
||||||
return done.promise
|
return done.promise
|
||||||
|
|||||||
Reference in New Issue
Block a user