Compare commits

...

19 Commits

Author SHA1 Message Date
5fe9134f4a 3.0.48 2018-05-27 14:34:42 +02:00
7681f09d38 feat(npm) switch to npm as default package manager 2018-05-27 14:34:38 +02:00
d55c77560a 3.0.47 2018-05-07 10:51:45 +02:00
0e337a3574 fix(ci): update .gitlab.yml to latest gitzone version 2018-05-07 10:51:45 +02:00
94c5567b75 3.0.46 2018-05-05 02:28:26 +02:00
7b37506d4e update .npmignore 2018-05-05 02:28:02 +02:00
a401633b73 3.0.45 2018-05-05 02:27:29 +02:00
948a8e64d7 3.0.44 2018-05-04 15:58:18 +02:00
9e8fbac573 update to better smartcli parsing 2018-05-04 15:58:11 +02:00
362740a55f 3.0.43 2018-05-04 00:48:32 +02:00
3edc08b0ed update snyk policy 2018-05-04 00:48:25 +02:00
15d7e6cbfc 3.0.42 2018-05-04 00:42:53 +02:00
6824210da0 3.0.41 2018-05-04 00:23:23 +02:00
41d2d04958 update dependencies 2018-05-04 00:23:21 +02:00
e490c6f730 3.0.40 2018-05-04 00:22:10 +02:00
bdf4815145 3.0.39 2018-05-03 23:52:55 +02:00
84fdf8b139 now cleans up before publishing 2018-05-03 23:52:51 +02:00
545896821d 3.0.38 2018-05-03 21:29:38 +02:00
c7516458bd update .gitignore 2018-05-03 21:29:35 +02:00
14 changed files with 193 additions and 2084 deletions

View File

@@ -10,9 +10,11 @@ stages:
- security - security
- test - test
- release - release
- trigger - metadata
- pages
# ====================
# security stage
# ====================
mirror: mirror:
stage: security stage: security
script: script:
@@ -31,25 +33,9 @@ snyk:
- docker - docker
- notpriv - notpriv
codequality: # ====================
stage: security # test stage
image: docker:stable # ====================
allow_failure: true
services:
- docker:stable-dind
script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SOURCE_CODE="$PWD"
--volume "$PWD":/code
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
artifacts:
paths: [codeclimate.json]
tags:
- docker
- priv
testLEGACY: testLEGACY:
stage: test stage: test
script: script:
@@ -76,7 +62,7 @@ testLTS:
testSTABLE: testSTABLE:
stage: test stage: test
script: script:
- npmci node install lts - npmci node install stable
- npmci npm install - npmci npm install
- npmci npm test - npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
@@ -88,7 +74,6 @@ release:
stage: release stage: release
script: script:
- npmci node install stable - npmci node install stable
- npmci npm prepare
- npmci npm publish - npmci npm publish
only: only:
- tags - tags
@@ -96,8 +81,30 @@ release:
- docker - docker
- notpriv - notpriv
# ====================
# metadata stage
# ====================
codequality:
stage: metadata
image: docker:stable
allow_failure: true
services:
- docker:stable-dind
script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SOURCE_CODE="$PWD"
--volume "$PWD":/code
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
artifacts:
paths: [codeclimate.json]
tags:
- docker
- priv
trigger: trigger:
stage: trigger stage: metadata
script: script:
- npmci trigger - npmci trigger
only: only:
@@ -108,7 +115,7 @@ trigger:
pages: pages:
image: hosttoday/ht-docker-node:npmci image: hosttoday/ht-docker-node:npmci
stage: pages stage: metadata
script: script:
- npmci command yarn global add npmpage - npmci command yarn global add npmpage
- npmci command npmpage - npmci command npmpage

View File

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

8
.snyk
View File

@@ -1,15 +1,15 @@
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
version: v1.10.2 version: v1.12.0
# ignores vulnerabilities until expiry date; change duration by modifying expiry date # ignores vulnerabilities until expiry date; change duration by modifying expiry date
ignore: ignore:
'npm:shelljs:20140723': 'npm:shelljs:20140723':
- shelljs: - shelljs:
reason: None given reason: None given
expires: '2018-05-04T20:41:54.426Z' expires: '2018-06-02T22:48:10.660Z'
- smartshell > shelljs: - smartshell > shelljs:
reason: None given reason: None given
expires: '2018-05-04T20:41:54.426Z' expires: '2018-06-02T22:48:10.660Z'
- smartssh > shelljs: - smartssh > shelljs:
reason: None given reason: None given
expires: '2018-05-04T20:41:54.426Z' expires: '2018-06-02T22:48:10.660Z'
patch: {} patch: {}

View File

@@ -1,100 +0,0 @@
# npmci
node and docker in gitlab ci on steroids
## 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 | **©** [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)

View File

@@ -1,22 +0,0 @@
# SSH
npmci allows easy usage of ssh:
## Add the SSH KEY to the environment
To make npmci aware of any SSH KEY add it to the environment in the following format
```
# Key
NPMCI_SSHKEY_[A_NAME_FROM_YOU]
# Value:
[targeted host]|[privatekey as base64]|***
```
## Use npmci cli tool in your ci script
```
npmci prepare ssh
npmci command git remote add heroku ssh://git@heroku.com/[you project name].git
npmci command git push heroku master
```

View File

@@ -1,6 +1,6 @@
{ {
"name": "@shipzone/npmci", "name": "@shipzone/npmci",
"version": "3.0.37", "version": "3.0.48",
"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",
@@ -26,6 +26,7 @@
"tapbundle": "^2.0.0" "tapbundle": "^2.0.0"
}, },
"dependencies": { "dependencies": {
"@pushrocks/smartcli": "^3.0.1",
"@types/lodash": "^4.14.74", "@types/lodash": "^4.14.74",
"@types/shelljs": "^0.7.4", "@types/shelljs": "^0.7.4",
"@types/through2": "^2.0.33", "@types/through2": "^2.0.33",
@@ -38,7 +39,6 @@
"request": "^2.81.0", "request": "^2.81.0",
"shelljs": "^0.8.1", "shelljs": "^0.8.1",
"smartanalytics": "^2.0.9", "smartanalytics": "^2.0.9",
"smartcli": "^2.0.7",
"smartdelay": "^1.0.3", "smartdelay": "^1.0.3",
"smartfile": "^4.2.20", "smartfile": "^4.2.20",
"smartparam": "^1.0.2", "smartparam": "^1.0.2",
@@ -49,5 +49,6 @@
"smartstring": "^2.0.24", "smartstring": "^2.0.24",
"smartsystem": "^2.0.2", "smartsystem": "^2.0.2",
"through2": "^2.0.3" "through2": "^2.0.3"
} },
"private": true
} }

View File

@@ -25,6 +25,79 @@ node and docker in gitlab ci on steroids
Use TypeScript for best in class instellisense. 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 and handle a lot of tasks durug ci:
```shell
# Handle node versions
npmci node install stable # will install latest stable node version and update PATH for node and npm
npmci node install lts # will install latest LTS node version and update PATH for node and npm versions
npmci node install legacy # will install latest legacy node version and update PATH for node and npm
npmci node install x.x.x # will install any specific node version.
# Handle npm and yarn tasks
npmcu npm login # logs in npm using the auth key provided at env var "NPMCI_TOKEN_NPM"
npmci npm install # installs dependencies using npm or yarn dependending on availablity
npmci npm test # tests the package
npmci npm publish # builds a package and publishes it
# handle docker tasks
npmci docker prepare
## 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 docker build # 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.
Use TypeScript for best in class instellisense.
For further information read the linked docs at the top of this README. For further information read the linked docs at the top of this README.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) > MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)

View File

@@ -1,6 +1,7 @@
import * as plugins from '../npmci.plugins'; import * as plugins from '../npmci.plugins';
import * as paths from '../npmci.paths';
import * as npmciConfig from '../npmci.config'; import * as npmciConfig from '../npmci.config';
import { bash, bashNoError, nvmAvailable, yarnAvailable } from '../npmci.bash'; import { bash, bashNoError, nvmAvailable } from '../npmci.bash';
/** /**
* handle cli input * handle cli input
@@ -49,6 +50,7 @@ export let install = async versionArg => {
} }
await bash('node -v'); await bash('node -v');
await bash('npm -v'); await bash('npm -v');
await bash(`npm config set cache ${paths.NpmciCacheDir} --global `);
// lets look for further config // lets look for further config
await npmciConfig.getConfig().then(async configArg => { await npmciConfig.getConfig().then(async configArg => {
plugins.beautylog.log('Now checking for needed global npm tools...'); plugins.beautylog.log('Now checking for needed global npm tools...');
@@ -60,13 +62,9 @@ export let install = async versionArg => {
plugins.beautylog.log(`Tool ${npmTool} is available`); plugins.beautylog.log(`Tool ${npmTool} is available`);
} else { } else {
plugins.beautylog.info(`globally installing ${npmTool} from npm`); plugins.beautylog.info(`globally installing ${npmTool} from npm`);
if (await yarnAvailable.promise) {
await bash(`yarn global add ${npmTool}`);
} else {
await bash(`npm install ${npmTool} -q -g`); await bash(`npm install ${npmTool} -q -g`);
} }
} }
}
plugins.beautylog.success('all global npm tools specified in npmextra.json are now available!'); plugins.beautylog.success('all global npm tools specified in npmextra.json are now available!');
}); });
}; };

View File

@@ -1,6 +1,6 @@
import * as plugins from './mod.plugins'; import * as plugins from './mod.plugins';
import * as configModule from '../npmci.config'; import * as configModule from '../npmci.config';
import { bash, bashNoError, nvmAvailable, yarnAvailable } from '../npmci.bash'; import { bash, bashNoError, nvmAvailable } from '../npmci.bash';
/** /**
* handle cli input * handle cli input
@@ -67,14 +67,21 @@ let publish = async () => {
} }
// -> preparing // -> preparing
plugins.beautylog.log(`noe preparing environment:`); plugins.beautylog.log(`now preparing environment:`);
prepare(); prepare();
await bash(`npm install -g npm`);
await bash(`npm -v`); await bash(`npm -v`);
// -> build it // -> build it
await bash(`yarn install`); await bash(`npm install`);
await bash(`yarn run build`); await bash(`npm run build`);
plugins.beautylog.success(`Nice!!! The build for the publication was successfull!`);
plugins.beautylog.log(`Lets clean up so we don't publish any packages that don't belong to us:`);
// -> clean up before we publish stuff
await bashNoError(`rm -r .npmci_cache`);
await bash(`rm -r node_modules`);
plugins.beautylog.success(`Cleaned up!:`);
// -> publish it // -> publish it
plugins.beautylog.log(`now invoking npm to publish the package!`); plugins.beautylog.log(`now invoking npm to publish the package!`);
@@ -84,14 +91,10 @@ let publish = async () => {
let install = async (): Promise<void> => { let install = async (): Promise<void> => {
plugins.beautylog.info('now installing dependencies:'); plugins.beautylog.info('now installing dependencies:');
if (await yarnAvailable.promise) {
await bash('yarn install');
} else {
await bash('npm install'); await bash('npm install');
}
}; };
export let test = async (): Promise<void> => { export let test = async (): Promise<void> => {
plugins.beautylog.info('now starting tests:'); plugins.beautylog.info('now starting tests:');
await bash('yarn test'); await bash('npm test');
}; };

View File

@@ -7,7 +7,6 @@ import * as smartq from 'smartq';
* wether nvm is available or not * wether nvm is available or not
*/ */
export let nvmAvailable = smartq.defer<boolean>(); export let nvmAvailable = smartq.defer<boolean>();
export let yarnAvailable = smartq.defer<boolean>();
/** /**
* the smartshell instance for npmci * the smartshell instance for npmci
*/ */
@@ -35,22 +34,8 @@ let checkToolsAvailable = async () => {
} else { } else {
nvmAvailable.resolve(false); nvmAvailable.resolve(false);
} }
// check for yarn
await plugins.smartshell.which('yarn').then(
async () => {
await plugins.smartshell.exec(
`yarn config set cache-folder ${plugins.path.join(paths.cwd, '.yarn')}`
);
yarnAvailable.resolve(true);
},
() => {
yarnAvailable.resolve(false);
}
);
} else { } else {
nvmAvailable.resolve(true); nvmAvailable.resolve(true);
yarnAvailable.resolve(true);
} }
}; };
checkToolsAvailable(); checkToolsAvailable();

View File

@@ -11,112 +11,113 @@ import * as NpmciEnv from './npmci.env';
import * as npmciMods from './npmci.mods'; import * as npmciMods from './npmci.mods';
let smartcli = new plugins.smartcli.Smartcli(); const npmciSmartcli = new plugins.smartcli.Smartcli();
smartcli.addVersion(npmciInfo.version); npmciSmartcli.addVersion(npmciInfo.version);
// clean // clean
smartcli npmciSmartcli.addCommand('clean').subscribe(
.addCommand('clean') async argv => {
.then(async argv => {
let modClean = await npmciMods.modClean.load(); let modClean = await npmciMods.modClean.load();
await modClean.clean(); await modClean.clean();
}) },
.catch(err => { err => {
console.log(err); console.log(err);
process.exit(1); process.exit(1);
}); }
);
// cloudflare // cloudflare
smartcli npmciSmartcli.addCommand('cloudflare').subscribe(
.addCommand('cloudflare') async argvArg => {
.then(async argvArg => {
let modPurge = await npmciMods.modCloudflare.load(); let modPurge = await npmciMods.modCloudflare.load();
await modPurge.handleCli(argvArg); await modPurge.handleCli(argvArg);
}) },
.catch(err => { err => {
console.log(err); console.log(err);
}); }
);
// command // command
smartcli npmciSmartcli.addCommand('command').subscribe(
.addCommand('command') async argv => {
.then(async argv => {
let modCommand = await npmciMods.modCommand.load(); let modCommand = await npmciMods.modCommand.load();
await modCommand.command(); await modCommand.command();
}) },
.catch(err => { err => {
console.log(err); console.log(err);
process.exit(1); process.exit(1);
}); }
);
// command // command
smartcli npmciSmartcli.addCommand('git').subscribe(
.addCommand('git') async argvArg => {
.then(async argvArg => {
let modGit = await npmciMods.modGit.load(); let modGit = await npmciMods.modGit.load();
await modGit.handleCli(argvArg); await modGit.handleCli(argvArg);
}) },
.catch(err => { err => {
console.log(err); console.log(err);
process.exit(1); process.exit(1);
}); }
);
// build // build
smartcli npmciSmartcli.addCommand('docker').subscribe(
.addCommand('docker') async argvArg => {
.then(async argvArg => {
let modDocker = await npmciMods.modDocker.load(); let modDocker = await npmciMods.modDocker.load();
await modDocker.handleCli(argvArg); await modDocker.handleCli(argvArg);
}) },
.catch(err => { err => {
console.log(err); console.log(err);
process.exit(1); process.exit(1);
}); }
);
// node // node
smartcli npmciSmartcli.addCommand('node').subscribe(
.addCommand('node') async argvArg => {
.then(async argvArg => {
let modNode = await npmciMods.modNode.load(); let modNode = await npmciMods.modNode.load();
await modNode.handleCli(argvArg); await modNode.handleCli(argvArg);
}) },
.catch(err => { err => {
console.log(err); console.log(err);
}); process.exit(1);
}
);
// npm // npm
smartcli npmciSmartcli.addCommand('npm').subscribe(
.addCommand('npm') async argvArg => {
.then(async argvArg => {
let modNpm = await npmciMods.modNpm.load(); let modNpm = await npmciMods.modNpm.load();
await modNpm.handleCli(argvArg); await modNpm.handleCli(argvArg);
}) },
.catch(err => { err => {
console.log(err); console.log(err);
}); }
);
// trigger // trigger
smartcli npmciSmartcli.addCommand('ssh').subscribe(
.addCommand('ssh') async argvArg => {
.then(async argvArg => {
let modSsh = await npmciMods.modSsh.load(); let modSsh = await npmciMods.modSsh.load();
await modSsh.handleCli(argvArg); await modSsh.handleCli(argvArg);
}) },
.catch(err => { err => {
console.log(err); console.log(err);
process.exit(1); process.exit(1);
}); }
);
// trigger // trigger
smartcli npmciSmartcli.addCommand('trigger').subscribe(
.addCommand('trigger') async argv => {
.then(async argv => {
let modTrigger = await npmciMods.modTrigger.load(); let modTrigger = await npmciMods.modTrigger.load();
await modTrigger.trigger(); await modTrigger.trigger();
}) },
.catch(err => { err => {
console.log(err); console.log(err);
process.exit(1); process.exit(1);
}); }
);
smartcli.startParse(); npmciSmartcli.startParse();

View File

@@ -6,3 +6,4 @@ export let NpmciPackageRoot = plugins.path.join(__dirname, '../');
export let NpmciPackageConfig = plugins.path.join(NpmciPackageRoot, './config.json'); export let NpmciPackageConfig = plugins.path.join(NpmciPackageRoot, './config.json');
export let NpmciProjectDir = cwd; export let NpmciProjectDir = cwd;
export let NpmciTestDir = plugins.path.join(cwd, './test'); export let NpmciTestDir = plugins.path.join(cwd, './test');
export let NpmciCacheDir = plugins.path.join(cwd, './.npmci_cache');

View File

@@ -5,7 +5,7 @@ export import path = require('path');
export import projectinfo = require('projectinfo'); export import projectinfo = require('projectinfo');
export import q = require('smartq'); export import q = require('smartq');
export let request = require('request'); export let request = require('request');
export import smartcli = require('smartcli'); export import smartcli = require('@pushrocks/smartcli');
export import smartdelay = require('smartdelay'); export import smartdelay = require('smartdelay');
export import smartfile = require('smartfile'); export import smartfile = require('smartfile');
export import shelljs = require('shelljs'); export import shelljs = require('shelljs');

1836
yarn.lock

File diff suppressed because it is too large Load Diff