Compare commits

..

23 Commits

Author SHA1 Message Date
2dcbca2362 3.1.13 2018-12-09 16:26:28 +01:00
bd63194f4b fix(core): update 2018-12-09 16:26:28 +01:00
2763fdef5f 3.1.12 2018-12-09 15:53:39 +01:00
bbedde01b9 fix(core): update 2018-12-09 15:53:38 +01:00
f26606f757 3.1.11 2018-12-09 15:22:20 +01:00
99b03aa796 fix(core): update 2018-12-09 15:22:20 +01:00
f30dd3da65 3.1.10 2018-12-09 14:59:51 +01:00
d4decddb4b fix(core): update 2018-12-09 14:59:51 +01:00
5c2880da1a 3.1.9 2018-12-09 14:53:44 +01:00
bfffc5b130 3.1.8 2018-12-09 14:39:25 +01:00
8900a13c6b fix(core): update 2018-12-09 14:39:24 +01:00
d42acf737f 3.1.7 2018-12-09 02:51:04 +01:00
77e3b2912d fix(core): update 2018-12-09 02:51:03 +01:00
103e470eb4 3.1.6 2018-12-09 02:50:00 +01:00
74c1324e55 fix(core): update 2018-12-09 02:50:00 +01:00
a1876963a8 3.1.5 2018-11-28 21:06:12 +01:00
5d88e25c99 fix(dependencies): update 2018-11-28 21:06:12 +01:00
b3c47546e2 3.1.4 2018-11-26 18:01:55 +01:00
6316e81958 fix(core): update 2018-11-26 18:01:54 +01:00
ff10afbee4 3.1.3 2018-11-24 15:12:55 +01:00
9dbfa77084 fix(ci): remove npmts build dependency 2018-11-24 15:12:55 +01:00
46dbd61d89 3.1.2 2018-11-24 15:10:56 +01:00
713df1867a fix(core): update 2018-11-24 15:10:55 +01:00
10 changed files with 71 additions and 140 deletions

View File

@@ -37,18 +37,6 @@ snyk:
# ==================== # ====================
# test stage # test stage
# ==================== # ====================
testLEGACY:
stage: test
script:
- npmci npm prepare
- npmci node install legacy
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
allow_failure: true
testLTS: testLTS:
stage: test stage: test

View File

@@ -5,10 +5,9 @@
"cli": true "cli": true
}, },
"npmci": { "npmci": {
"npmGlobalTools": [ "npmGlobalTools": [],
"@gitzone/npmts" "npmAccessLevel": "public",
], "npmRegistryUrl": "registry.npmjs.org"
"npmAccessLevel": "public"
}, },
"npmdocker":{ "npmdocker":{
"baseImage":"hosttoday/ht-docker-node:npmci", "baseImage":"hosttoday/ht-docker-node:npmci",

133
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{ {
"name": "@shipzone/npmci", "name": "@shipzone/npmci",
"version": "3.1.1", "version": "3.1.13",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@@ -252,9 +252,9 @@
} }
}, },
"@pushrocks/smartshell": { "@pushrocks/smartshell": {
"version": "2.0.8", "version": "2.0.11",
"resolved": "https://registry.npmjs.org/@pushrocks/smartshell/-/smartshell-2.0.8.tgz", "resolved": "https://registry.npmjs.org/@pushrocks/smartshell/-/smartshell-2.0.11.tgz",
"integrity": "sha512-OeGrJez0vSHe/E0auHNUqf7r0B3yS+pkVe6BuxdJemJx5LBRtcHuZnJCxU5pSLL8igzlTfR+jVpjKJXUMzCsrA==", "integrity": "sha512-NvDrafAgSPK12/HAekyL+BF5lROxhcfBNJIELI/bU7Jto/32QOOn6DthzMEPbqyPzsH7mWMjv10Djy3TWdqZag==",
"requires": { "requires": {
"@pushrocks/smartpromise": "^2.0.5", "@pushrocks/smartpromise": "^2.0.5",
"@types/which": "^1.3.1", "@types/which": "^1.3.1",
@@ -290,42 +290,15 @@
} }
}, },
"@pushrocks/smartstring": { "@pushrocks/smartstring": {
"version": "3.0.4", "version": "3.0.5",
"resolved": "https://registry.npmjs.org/@pushrocks/smartstring/-/smartstring-3.0.4.tgz", "resolved": "https://registry.npmjs.org/@pushrocks/smartstring/-/smartstring-3.0.5.tgz",
"integrity": "sha512-6LwG9dRAVY6qAeDDWj7P1ehTh9KYdeUG/SNKdx+jIvzOfyldy0fGsdm4o4glfeZvijGSxFEcmXkL3ic7rR19+Q==", "integrity": "sha512-Bws2s6+Pc0HIXA35QH6cl6LJywhZ1U5icjyYMx+1kH8nURG+njzkacfarr9NWqyVYYOVu7SgXLzp9sR0eH7k9g==",
"requires": { "requires": {
"crypto-random-string": "^1.0.0", "crypto-random-string": "^1.0.0",
"js-base64": "^2.4.8", "js-base64": "^2.4.9",
"normalize-newline": "^3.0.0", "normalize-newline": "^3.0.0",
"randomatic": "^3.1.0", "randomatic": "^3.1.1",
"strip-indent": "^2.0.0" "strip-indent": "^2.0.0"
},
"dependencies": {
"is-number": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
"integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
},
"js-base64": {
"version": "2.4.9",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
"integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ=="
},
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
},
"randomatic": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
"integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
"requires": {
"is-number": "^4.0.0",
"kind-of": "^6.0.0",
"math-random": "^1.0.1"
}
}
} }
}, },
"@pushrocks/smarttime": { "@pushrocks/smarttime": {
@@ -718,20 +691,6 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
"integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA=="
}, },
"cflare": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/cflare/-/cflare-1.0.5.tgz",
"integrity": "sha1-0B/XhZ4UEvRcsp8CoiJ/8EcasJQ=",
"requires": {
"beautylog": "^6.1.10",
"smartdelay": "^1.0.3",
"smartq": "^1.1.1",
"smartrequest": "^1.0.6",
"smartstring": "^2.0.24",
"tsclass": "^1.0.12",
"typings-global": "^1.0.17"
}
},
"chai": { "chai": {
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz",
@@ -1243,11 +1202,6 @@
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="
}, },
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
"is-callable": { "is-callable": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
@@ -1264,22 +1218,9 @@
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
}, },
"is-number": { "is-number": {
"version": "3.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
"requires": {
"kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
"is-buffer": "^1.1.5"
}
}
}
}, },
"is-promise": { "is-promise": {
"version": "2.1.0", "version": "2.1.0",
@@ -1320,9 +1261,9 @@
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
}, },
"js-base64": { "js-base64": {
"version": "2.4.5", "version": "2.4.9",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
"integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==" "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ=="
}, },
"js-tokens": { "js-tokens": {
"version": "3.0.2", "version": "3.0.2",
@@ -1348,12 +1289,9 @@
} }
}, },
"kind-of": { "kind-of": {
"version": "4.0.0", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
"requires": {
"is-buffer": "^1.1.5"
}
}, },
"lcid": { "lcid": {
"version": "2.0.0", "version": "2.0.0",
@@ -1745,12 +1683,13 @@
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
}, },
"randomatic": { "randomatic": {
"version": "1.1.7", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
"integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
"requires": { "requires": {
"is-number": "^3.0.0", "is-number": "^4.0.0",
"kind-of": "^4.0.0" "kind-of": "^6.0.0",
"math-random": "^1.0.1"
} }
}, },
"readable-stream": { "readable-stream": {
@@ -1954,19 +1893,6 @@
"socket.io-client": "^2.0.4" "socket.io-client": "^2.0.4"
} }
}, },
"smartstring": {
"version": "2.0.28",
"resolved": "https://registry.npmjs.org/smartstring/-/smartstring-2.0.28.tgz",
"integrity": "sha512-pneklqLF1w3k043fyM3eMrJ1lXRnE4b/W6xlQrpkf2fLb/w1+NbnfJopJVfWJxtft8bVPHhYRk6fa1JKH4qTVw==",
"requires": {
"crypto-random-string": "^1.0.0",
"js-base64": "^2.3.2",
"normalize-newline": "^3.0.0",
"randomatic": "^1.1.7",
"strip-indent": "^2.0.0",
"typings-global": "^1.0.20"
}
},
"socket.io": { "socket.io": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
@@ -2147,11 +2073,6 @@
"yn": "^2.0.0" "yn": "^2.0.0"
} }
}, },
"tsclass": {
"version": "1.0.20",
"resolved": "https://registry.npmjs.org/tsclass/-/tsclass-1.0.20.tgz",
"integrity": "sha512-oreiwoX8YjXuSYy2cmsVS8/XC8YEb1ms7w9S9P+84sj+ZB6t/MEO8mJ7DaMZGH14zro8jcMSKVT7U9eTbknNLg=="
},
"tslib": { "tslib": {
"version": "1.9.3", "version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
@@ -2178,9 +2099,9 @@
} }
}, },
"tslint-config-prettier": { "tslint-config-prettier": {
"version": "1.16.0", "version": "1.17.0",
"resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.16.0.tgz", "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.17.0.tgz",
"integrity": "sha512-zu6RAcpBtqdvhT6KpBh9kRPYATjOf9BnRi718kNqVKFjEgSE4rFrPprFju1YJrkOa3RbtbWI1ZSuLd2NBX1MDw==", "integrity": "sha512-NKWNkThwqE4Snn4Cm6SZB7lV5RMDDFsBwz6fWUkTxOKGjMx8ycOHnjIbhn7dZd5XmssW3CwqUjlANR6EhP9YQw==",
"dev": true "dev": true
}, },
"tsutils": { "tsutils": {

View File

@@ -1,6 +1,6 @@
{ {
"name": "@shipzone/npmci", "name": "@shipzone/npmci",
"version": "3.1.1", "version": "3.1.13",
"description": "node and docker in gitlab ci on steroids", "description": "node and docker in gitlab ci on steroids",
"main": "dist/index.js", "main": "dist/index.js",
"typings": "dist/index.d.ts", "typings": "dist/index.d.ts",
@@ -29,7 +29,7 @@
"@pushrocks/tapbundle": "^3.0.7", "@pushrocks/tapbundle": "^3.0.7",
"@types/node": "^10.12.10", "@types/node": "^10.12.10",
"tslint": "^5.11.0", "tslint": "^5.11.0",
"tslint-config-prettier": "^1.16.0" "tslint-config-prettier": "^1.17.0"
}, },
"dependencies": { "dependencies": {
"@pushrocks/lik": "^3.0.2", "@pushrocks/lik": "^3.0.2",
@@ -43,13 +43,12 @@
"@pushrocks/smartparam": "^1.0.4", "@pushrocks/smartparam": "^1.0.4",
"@pushrocks/smartpromise": "^2.0.5", "@pushrocks/smartpromise": "^2.0.5",
"@pushrocks/smartrequest": "^1.1.14", "@pushrocks/smartrequest": "^1.1.14",
"@pushrocks/smartshell": "^2.0.8", "@pushrocks/smartshell": "^2.0.11",
"@pushrocks/smartssh": "^1.2.3", "@pushrocks/smartssh": "^1.2.3",
"@pushrocks/smartstring": "^3.0.4", "@pushrocks/smartstring": "^3.0.5",
"@types/lodash": "^4.14.118", "@types/lodash": "^4.14.118",
"@types/shelljs": "^0.8.0", "@types/shelljs": "^0.8.0",
"@types/through2": "^2.0.34", "@types/through2": "^2.0.34",
"cflare": "^1.0.5",
"lodash": "^4.17.11", "lodash": "^4.17.11",
"smartanalytics": "^2.0.9", "smartanalytics": "^2.0.9",
"smartsocket": "^1.1.19", "smartsocket": "^1.1.19",

View File

@@ -42,7 +42,9 @@ export class Dockerfile {
public async build() { public async build() {
logger.log('info', 'now building Dockerfile for ' + this.cleanTag); logger.log('info', 'now building Dockerfile for ' + this.cleanTag);
const buildArgsString = await helpers.getDockerBuildArgs(); const buildArgsString = await helpers.getDockerBuildArgs();
const buildCommand = `docker build -t ${this.buildTag} -f ${this.filePath} ${buildArgsString} .`; const buildCommand = `docker build -t ${this.buildTag} -f ${
this.filePath
} ${buildArgsString} .`;
await bash(buildCommand); await bash(buildCommand);
return; return;
} }
@@ -102,7 +104,9 @@ export class Dockerfile {
* gets the id of a Dockerfile * gets the id of a Dockerfile
*/ */
public async getId() { public async getId() {
const containerId = await bash('docker inspect --type=image --format="{{.Id}}" ' + this.buildTag); const containerId = await bash(
'docker inspect --type=image --format="{{.Id}}" ' + this.buildTag
);
return containerId; return containerId;
} }
} }

View File

@@ -178,7 +178,7 @@ export let cleanTagsArrayFunction = (
trackingArrayArg: Dockerfile[] trackingArrayArg: Dockerfile[]
): string[] => { ): string[] => {
const cleanTagsArray: string[] = []; const cleanTagsArray: string[] = [];
dockerfileArrayArg.forEach((dockerfileArg) => { dockerfileArrayArg.forEach(dockerfileArg => {
if (trackingArrayArg.indexOf(dockerfileArg) === -1) { if (trackingArrayArg.indexOf(dockerfileArg) === -1) {
cleanTagsArray.push(dockerfileArg.cleanTag); cleanTagsArray.push(dockerfileArg.cleanTag);
} }

View File

@@ -36,11 +36,11 @@ export let install = async versionArg => {
logger.log('info', `now installing node version ${versionArg}`); logger.log('info', `now installing node version ${versionArg}`);
let version: string; let version: string;
if (versionArg === 'stable') { if (versionArg === 'stable') {
version = '10'; version = '11';
} else if (versionArg === 'lts') { } else if (versionArg === 'lts') {
version = '8'; version = '10';
} else if (versionArg === 'legacy') { } else if (versionArg === 'legacy') {
version = '9'; version = '8';
} else { } else {
version = versionArg; version = versionArg;
} }

View File

@@ -37,15 +37,25 @@ export let handleCli = async argvArg => {
* authenticates npm with token from env var * authenticates npm with token from env var
*/ */
const prepare = async () => { const prepare = async () => {
const npmrcPrefix: string = '//registry.npmjs.org/:_authToken='; const config = await configModule.getConfig();
const npmToken: string = process.env.NPMCI_TOKEN_NPM; let npmrcFileString: string = '';
const npmrcFileString: string = npmrcPrefix + npmToken; plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_TOKEN_NPM*', npmEnvArg => {
if (npmToken) { const npmRegistryUrl = npmEnvArg.split('|')[0];
logger.log('info', 'found access token'); const npmToken = npmEnvArg.split('|')[1];
npmrcFileString += `//${npmRegistryUrl}/:_authToken="${plugins.smartstring.base64.decode(npmToken)}"\n`;
});
logger.log('info', `setting default npm registry to ${config.npmRegistryUrl}`);
npmrcFileString += `registry=https://${config.npmRegistryUrl}\n`;
// final check
if (npmrcFileString.length > 0) {
logger.log('info', 'found one or more access tokens');
} else { } else {
logger.log('error', 'no access token found! Exiting!'); logger.log('error', 'no access token found! Exiting!');
process.exit(1); process.exit(1);
} }
// lets save it to disk
plugins.smartfile.memory.toFsSync(npmrcFileString, '/root/.npmrc'); plugins.smartfile.memory.toFsSync(npmrcFileString, '/root/.npmrc');
return; return;
}; };
@@ -55,6 +65,7 @@ const prepare = async () => {
*/ */
const publish = async () => { const publish = async () => {
let npmAccessCliString = ``; let npmAccessCliString = ``;
let npmRegistryCliString = ``;
const config = await configModule.getConfig(); const config = await configModule.getConfig();
// -> configure package access level // -> configure package access level
@@ -65,6 +76,14 @@ const publish = async () => {
npmAccessCliString = `--access=${config.npmAccessLevel}`; npmAccessCliString = `--access=${config.npmAccessLevel}`;
} }
// -> configure registry url
if (config.npmRegistryUrl) {
npmAccessCliString = `--registry=https://${config.npmRegistryUrl}`;
} else {
logger.log('error', `no registry url specified. Can't publish!`);
process.exit(1);
}
// -> preparing // -> preparing
logger.log('info', `now preparing environment:`); logger.log('info', `now preparing environment:`);
prepare(); prepare();
@@ -84,7 +103,7 @@ const publish = async () => {
// -> publish it // -> publish it
logger.log('info', `now invoking npm to publish the package!`); logger.log('info', `now invoking npm to publish the package!`);
await bash(`npm publish ${npmAccessCliString}`); await bash(`npm publish ${npmAccessCliString} ${npmRegistryCliString}`);
logger.log('success', `Package was successfully published!`); logger.log('success', `Package was successfully published!`);
}; };

View File

@@ -8,6 +8,7 @@ import { KeyValueStore } from '@pushrocks/npmextra';
export interface INpmciOptions { export interface INpmciOptions {
npmGlobalTools: string[]; npmGlobalTools: string[];
npmAccessLevel?: 'private' | 'public'; npmAccessLevel?: 'private' | 'public';
npmRegistryUrl?: string;
dockerRegistryRepoMap: any; dockerRegistryRepoMap: any;
dockerBuildargEnvMap: any; dockerBuildargEnvMap: any;
} }

View File

@@ -1,6 +1,6 @@
import * as plugins from './npmci.plugins'; import * as plugins from './npmci.plugins';
import * as paths from './npmci.paths'; import * as paths from './npmci.paths';
import { GitRepo } from 'smartstring'; import { GitRepo } from '@pushrocks/smartstring';
import { Dockerfile } from './mod_docker/index'; import { Dockerfile } from './mod_docker/index';
/** /**