Compare commits
167 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 61720f47be | |||
| b435fc6bdf | |||
| 70ad41ab86 | |||
| d67109b4bc | |||
| a29e04f9e3 | |||
| 9634ca3b4d | |||
| d2e7488868 | |||
| bb44333d70 | |||
| 87f6adeda4 | |||
| 6334396bfc | |||
| 7a33252f2f | |||
| b7068b7b53 | |||
| 1e5b56a388 | |||
| 786de4ae18 | |||
| 62ee8a26a4 | |||
| f544aef054 | |||
| cb6867dbde | |||
| 5316740a1a | |||
| 06bc1e59f8 | |||
| bd237ccdab | |||
| f51b556fca | |||
| 9ce29a7c24 | |||
| 8dade860f5 | |||
| 9d4c8ce68b | |||
| 5917c63836 | |||
| af2c4b04cd | |||
| deae50007e | |||
| 9ddf28f90a | |||
| 4321ae3dab | |||
| 1c7542c970 | |||
| 839dac1fe8 | |||
| 9c7afba849 | |||
| 6b72652c7a | |||
| 51334c297d | |||
| a38996b98c | |||
| ab62b979bd | |||
| dd142856d0 | |||
| c826ba3d5f | |||
| c75e2b2e06 | |||
| 04a5b15668 | |||
| a87fc98eb8 | |||
| 9d092aa280 | |||
| 7ca6578443 | |||
| 6d5865427e | |||
| 9595a82dc5 | |||
| 125f96edc4 | |||
| f1244c33dc | |||
| dfe829541e | |||
| 51a695ed8e | |||
| 10015aa0c1 | |||
| a65150b640 | |||
| 1f23b3693f | |||
| ce66e0a729 | |||
| 606683aa8b | |||
| b443662df8 | |||
| c3179815c2 | |||
| dda4893e39 | |||
| 806647d7c3 | |||
| 6a0e74690d | |||
| 27cb433c82 | |||
| e1245f24ce | |||
| 42d3ecbe37 | |||
| b19bb9569d | |||
| 497659df1f | |||
| 4047fc815b | |||
| 2a6d155a89 | |||
| fa7f576ae5 | |||
| 057e425824 | |||
| 90919ba009 | |||
| 7cda79daa6 | |||
| 5962339aff | |||
| 6854b7a83f | |||
| 9e886db462 | |||
| 5bf8311380 | |||
| 6b82f8385c | |||
| 1159a9ab5c | |||
| 5e4b93ed76 | |||
| 1b2fd33a13 | |||
| 5f0496ef85 | |||
| 2ca886cd6e | |||
| 50e69682b0 | |||
|
|
23ca382590 | ||
|
|
4e4fb1399f | ||
|
|
8dd0f230c0 | ||
|
|
677f730b34 | ||
|
|
a2a409a1ff | ||
|
|
d6e597111e | ||
|
|
b37a2f78c4 | ||
|
|
396099253d | ||
|
|
a2a3019e6b | ||
|
|
5753fb80bf | ||
|
|
2a15b35dd5 | ||
|
|
27a12415e6 | ||
|
|
4c0f0f5cc6 | ||
|
|
06d785df6b | ||
|
|
19dc4974b9 | ||
|
|
ed9327db8b | ||
|
|
e239c8f350 | ||
| 7b8fc67d7f | |||
| 9d3102583d | |||
| 9e640e63d7 | |||
| 081520746e | |||
| 88ffbf3198 | |||
| db0010b3f3 | |||
| ff1a7398da | |||
| 412e6ec9ba | |||
| 8d67cf2a8f | |||
| 3a6e2d6f3d | |||
| aafa5bd1e9 | |||
| 3c82c4c62b | |||
| a382d98892 | |||
| 06e96e7778 | |||
| 1efc425a46 | |||
| 501ff7beb7 | |||
| 3fe173e59c | |||
| 8fec378a53 | |||
|
|
3bb06781f9 | ||
|
|
8970deec3f | ||
|
|
8ff08240fd | ||
|
|
955474e296 | ||
|
|
12e3cda903 | ||
|
|
43726b22b2 | ||
| 34f29bb4b4 | |||
| a434b366ff | |||
| 827af44f9e | |||
| 18edee400c | |||
| bac99d4bf8 | |||
| d2db827348 | |||
| 96981798b8 | |||
| 101b701e66 | |||
| 774a1bc21f | |||
| 07149d0fdd | |||
| a0f3b4e4b4 | |||
| f0eff7b83c | |||
| af117c1fbe | |||
| 09188e5733 | |||
| 76f67a449d | |||
| 2fd0e131a5 | |||
| 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 |
@@ -1,31 +1,49 @@
|
|||||||
image: hosttoday/ht-docker-node
|
image: hosttoday/ht-docker-node:lts
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- test
|
|
||||||
- release
|
- release
|
||||||
|
- trigger
|
||||||
|
- test
|
||||||
|
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- npm install -g npmci
|
||||||
|
|
||||||
testLTS:
|
testLTS:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci install 4
|
- npmci test lts
|
||||||
- npm install
|
|
||||||
- npm test
|
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
testSTABLE:
|
testSTABLE:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci install stable
|
- npmci test stable
|
||||||
- npm install
|
|
||||||
- npm test
|
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
|
testLEGACY:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test legacy
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
release:
|
release:
|
||||||
stage: release
|
stage: release
|
||||||
script:
|
script:
|
||||||
- npm -v
|
- npmci publish
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
stage: trigger
|
||||||
|
script:
|
||||||
|
- npmci trigger
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
|
|||||||
50
README.md
Normal file
50
README.md
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# NPMCI
|
||||||
|
npmci is your friend when it comes to handling npm packages during CI builds. It is optimized for GitLab CI
|
||||||
|
|
||||||
|
## Status
|
||||||
|
[](https://gitlab.com/pushrocks/npmci/commits/master)
|
||||||
|
[](https://ci.appveyor.com/project/philkunz/npmci/branch/master)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
npmci is designed to work in docker CI environments. The following docker images come with npmci presinstalled:
|
||||||
|
|
||||||
|
Docker Hub:
|
||||||
|
|
||||||
|
* [hosttoday/ht-docker-node](https://hub.docker.com/r/hosttoday/ht-docker-node/)
|
||||||
|
has LTS node version preinstalled. Change it with npmci
|
||||||
|
* [hosttoday/ht-docker-node-python-3](https://hub.docker.com/r/hosttoday/ht-docker-node-python3/)
|
||||||
|
like ht-docker-node, but with python3 instead of python2.7
|
||||||
|
* [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 conjuction 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
|
||||||
|
|
||||||
|
# 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 container and tag it
|
||||||
|
|
||||||
|
# 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
|
||||||
|
```
|
||||||
|
|
||||||
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
|
||||||
23
dist/index.js
vendored
23
dist/index.js
vendored
@@ -2,13 +2,17 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
var plugins = require("./npmci.plugins");
|
var plugins = require("./npmci.plugins");
|
||||||
|
var packJson = require("../package.json");
|
||||||
|
plugins.beautylog.info("npmci version: " + packJson.version);
|
||||||
|
var npmci_build_1 = require("./npmci.build");
|
||||||
var npmci_install_1 = require("./npmci.install");
|
var npmci_install_1 = require("./npmci.install");
|
||||||
var npmci_test_1 = require("./npmci.test");
|
|
||||||
var npmci_publish_1 = require("./npmci.publish");
|
var npmci_publish_1 = require("./npmci.publish");
|
||||||
|
var npmci_prepare_1 = require("./npmci.prepare");
|
||||||
|
var npmci_test_1 = require("./npmci.test");
|
||||||
|
var npmci_trigger_1 = require("./npmci.trigger");
|
||||||
var command;
|
var command;
|
||||||
var commandOption;
|
var commandOption;
|
||||||
plugins.commander
|
plugins.commander
|
||||||
.version('0.0.1')
|
|
||||||
.arguments('<commandarg> [commandoptionarg]')
|
.arguments('<commandarg> [commandoptionarg]')
|
||||||
.action(function (commandarg, commandoptionarg) {
|
.action(function (commandarg, commandoptionarg) {
|
||||||
command = commandarg;
|
command = commandarg;
|
||||||
@@ -20,17 +24,26 @@ if (typeof command === 'undefined') {
|
|||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
switch (command) {
|
switch (command) {
|
||||||
|
case "build":
|
||||||
|
npmci_build_1.build(commandOption);
|
||||||
|
break;
|
||||||
case "install":
|
case "install":
|
||||||
npmci_install_1.install(commandOption);
|
npmci_install_1.install(commandOption);
|
||||||
break;
|
break;
|
||||||
|
case "prepare":
|
||||||
|
npmci_prepare_1.prepare(commandOption);
|
||||||
|
break;
|
||||||
|
case "publish":
|
||||||
|
npmci_publish_1.publish(commandOption);
|
||||||
|
break;
|
||||||
case "test":
|
case "test":
|
||||||
npmci_test_1.test(commandOption);
|
npmci_test_1.test(commandOption);
|
||||||
break;
|
break;
|
||||||
case "publish":
|
case "trigger":
|
||||||
npmci_publish_1.publish();
|
npmci_trigger_1.trigger();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3hCLElBQVksT0FBTyxXQUFNLGlCQUFpQixDQUFDLENBQUE7QUFFM0MsOEJBQXNCLGlCQUFpQixDQUFDLENBQUE7QUFDeEMsMkJBQW1CLGNBQWMsQ0FBQyxDQUFBO0FBQ2xDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBR3hDLElBQUksT0FBTyxDQUFDO0FBQ1osSUFBSSxhQUFhLENBQUM7QUFFbEIsT0FBTyxDQUFDLFNBQVM7S0FDWixPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ2hCLFNBQVMsQ0FBQyxpQ0FBaUMsQ0FBQztLQUM1QyxNQUFNLENBQUMsVUFBVSxVQUFVLEVBQUUsZ0JBQWdCO0lBQzFDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDckIsYUFBYSxHQUFHLGdCQUFnQixDQUFDO0FBQ3JDLENBQUMsQ0FBQyxDQUFDO0FBRVAsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXRDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDakMsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUM7SUFDYixLQUFLLFNBQVM7UUFDVix1QkFBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQztJQUNWLEtBQUssTUFBTTtRQUNQLGlCQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEIsS0FBSyxDQUFDO0lBQ1YsS0FBSyxTQUFTO1FBQ1YsdUJBQU8sRUFBRSxDQUFDO1FBQ1YsS0FBSyxDQUFDO0lBQ1Y7UUFDSSxLQUFLLENBQUM7QUFDZCxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxyXG5pbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuXHJcbmltcG9ydCB7aW5zdGFsbH0gZnJvbSBcIi4vbnBtY2kuaW5zdGFsbFwiO1xyXG5pbXBvcnQge3Rlc3R9IGZyb20gXCIuL25wbWNpLnRlc3RcIjtcclxuaW1wb3J0IHtwdWJsaXNofSBmcm9tIFwiLi9ucG1jaS5wdWJsaXNoXCI7XHJcblxyXG5cclxubGV0IGNvbW1hbmQ7XHJcbmxldCBjb21tYW5kT3B0aW9uO1xyXG5cclxucGx1Z2lucy5jb21tYW5kZXJcclxuICAgIC52ZXJzaW9uKCcwLjAuMScpXHJcbiAgICAuYXJndW1lbnRzKCc8Y29tbWFuZGFyZz4gW2NvbW1hbmRvcHRpb25hcmddJylcclxuICAgIC5hY3Rpb24oZnVuY3Rpb24gKGNvbW1hbmRhcmcsIGNvbW1hbmRvcHRpb25hcmcpIHtcclxuICAgICAgICBjb21tYW5kID0gY29tbWFuZGFyZztcclxuICAgICAgICBjb21tYW5kT3B0aW9uID0gY29tbWFuZG9wdGlvbmFyZztcclxuICAgIH0pO1xyXG4gXHJcbnBsdWdpbnMuY29tbWFuZGVyLnBhcnNlKHByb2Nlc3MuYXJndik7XHJcbiBcclxuaWYgKHR5cGVvZiBjb21tYW5kID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgY29uc29sZS5lcnJvcignbm8gY29tbWFuZCBnaXZlbiEnKTtcclxuICAgIHByb2Nlc3MuZXhpdCgxKTtcclxufVxyXG5cclxuc3dpdGNoIChjb21tYW5kKXtcclxuICAgIGNhc2UgXCJpbnN0YWxsXCI6XHJcbiAgICAgICAgaW5zdGFsbChjb21tYW5kT3B0aW9uKTtcclxuICAgICAgICBicmVhaztcclxuICAgIGNhc2UgXCJ0ZXN0XCI6XHJcbiAgICAgICAgdGVzdChjb21tYW5kT3B0aW9uKTtcclxuICAgICAgICBicmVhaztcclxuICAgIGNhc2UgXCJwdWJsaXNoXCI6XHJcbiAgICAgICAgcHVibGlzaCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxufVxyXG5cclxuIl19
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3hCLElBQVksT0FBTyxXQUFNLGlCQUFpQixDQUFDLENBQUE7QUFFM0MsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFMUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRTdELDRCQUFvQixlQUNwQixDQUFDLENBRGtDO0FBQ25DLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBRXhDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUd4QyxJQUFJLE9BQU8sQ0FBQztBQUNaLElBQUksYUFBYSxDQUFDO0FBRWxCLE9BQU8sQ0FBQyxTQUFTO0tBQ1osU0FBUyxDQUFDLGlDQUFpQyxDQUFDO0tBQzVDLE1BQU0sQ0FBQyxVQUFVLFVBQVUsRUFBRSxnQkFBZ0I7SUFDMUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUNyQixhQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFDckMsQ0FBQyxDQUFDLENBQUM7QUFFUCxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdEMsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQztJQUNiLEtBQUssT0FBTztRQUNSLG1CQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckIsS0FBSyxDQUFDO0lBQ1YsS0FBSyxTQUFTO1FBQ1YsdUJBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2QixLQUFLLENBQUM7SUFDVixLQUFLLFNBQVM7UUFDVix1QkFBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQztJQUNWLEtBQUssU0FBUztRQUNWLHVCQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkIsS0FBSyxDQUFDO0lBQ1YsS0FBSyxNQUFNO1FBQ1AsaUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQixLQUFLLENBQUM7SUFDVixLQUFLLFNBQVM7UUFDVix1QkFBTyxFQUFFLENBQUM7UUFDVixLQUFLLENBQUM7SUFDVjtRQUNJLEtBQUssQ0FBQztBQUNkLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5cbmxldCBwYWNrSnNvbiA9IHJlcXVpcmUoXCIuLi9wYWNrYWdlLmpzb25cIik7XG5cbnBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJucG1jaSB2ZXJzaW9uOiBcIiArIHBhY2tKc29uLnZlcnNpb24pO1xuXG5pbXBvcnQge2J1aWxkfSBmcm9tIFwiLi9ucG1jaS5idWlsZFwiXG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcbmltcG9ydCB7cHVibGlzaH0gZnJvbSBcIi4vbnBtY2kucHVibGlzaFwiO1xuaW1wb3J0IHtwcmVwYXJlfSBmcm9tIFwiLi9ucG1jaS5wcmVwYXJlXCI7XG5pbXBvcnQge3RhZywgcmV0YWd9IGZyb20gXCIuL25wbWNpLnRhZ1wiO1xuaW1wb3J0IHt0ZXN0fSBmcm9tIFwiLi9ucG1jaS50ZXN0XCI7XG5pbXBvcnQge3RyaWdnZXJ9IGZyb20gXCIuL25wbWNpLnRyaWdnZXJcIjtcblxuXG5sZXQgY29tbWFuZDtcbmxldCBjb21tYW5kT3B0aW9uO1xuXG5wbHVnaW5zLmNvbW1hbmRlclxuICAgIC5hcmd1bWVudHMoJzxjb21tYW5kYXJnPiBbY29tbWFuZG9wdGlvbmFyZ10nKVxuICAgIC5hY3Rpb24oZnVuY3Rpb24gKGNvbW1hbmRhcmcsIGNvbW1hbmRvcHRpb25hcmcpIHtcbiAgICAgICAgY29tbWFuZCA9IGNvbW1hbmRhcmc7XG4gICAgICAgIGNvbW1hbmRPcHRpb24gPSBjb21tYW5kb3B0aW9uYXJnO1xuICAgIH0pO1xuIFxucGx1Z2lucy5jb21tYW5kZXIucGFyc2UocHJvY2Vzcy5hcmd2KTtcbiBcbmlmICh0eXBlb2YgY29tbWFuZCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zb2xlLmVycm9yKCdubyBjb21tYW5kIGdpdmVuIScpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbn1cblxuc3dpdGNoIChjb21tYW5kKXtcbiAgICBjYXNlIFwiYnVpbGRcIjpcbiAgICAgICAgYnVpbGQoY29tbWFuZE9wdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJpbnN0YWxsXCI6XG4gICAgICAgIGluc3RhbGwoY29tbWFuZE9wdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJwcmVwYXJlXCI6XG4gICAgICAgIHByZXBhcmUoY29tbWFuZE9wdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJwdWJsaXNoXCI6XG4gICAgICAgIHB1Ymxpc2goY29tbWFuZE9wdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ0ZXN0XCI6XG4gICAgICAgIHRlc3QoY29tbWFuZE9wdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ0cmlnZ2VyXCI6XG4gICAgICAgIHRyaWdnZXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG59XG5cbiJdfQ==
|
||||||
|
|||||||
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQ2hDLFlBQUksR0FBRyxVQUFDLFVBQVU7SUFDekIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9CLDJDQUEyQztRQUMzQyxVQUFVO1FBQ1YsSUFBSSxDQUNQLENBQUMsSUFBSSxDQUFDO0lBQ1AsRUFBRSxDQUFBLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFBLENBQUM7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7QUFDTCxDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcbmV4cG9ydCBsZXQgYmFzaCA9IChjb21tYW5kQXJnKSA9PiB7XG4gICAgbGV0IGV4aXRDb2RlID0gcGx1Z2lucy5zaGVsbGpzLmV4ZWMoXG4gICAgICAgIFwiYmFzaCAtYyBcXFwic291cmNlIC91c3IvbG9jYWwvbnZtL252bS5zaCAmJlwiICtcbiAgICAgICAgY29tbWFuZEFyZyArXG4gICAgICAgIFwiXFxcIlwiXG4gICAgKS5jb2RlO1xuICAgIGlmKGV4aXRDb2RlICE9PSAwKXtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbn0iXX0=
|
||||||
2
dist/npmci.build.d.ts
vendored
Normal file
2
dist/npmci.build.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare let build: (commandArg: any) => any;
|
||||||
18
dist/npmci.build.docker.d.ts
vendored
Normal file
18
dist/npmci.build.docker.d.ts
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
export declare let build: () => any;
|
||||||
|
export declare class Dockerfile {
|
||||||
|
filePath: string;
|
||||||
|
repo: string;
|
||||||
|
version: string;
|
||||||
|
cleanTag: string;
|
||||||
|
buildTag: string;
|
||||||
|
content: string;
|
||||||
|
baseImage: string;
|
||||||
|
constructor(options: {
|
||||||
|
filePath?: string;
|
||||||
|
fileContents?: string | Buffer;
|
||||||
|
read?: boolean;
|
||||||
|
});
|
||||||
|
build(): void;
|
||||||
|
push(): void;
|
||||||
|
}
|
||||||
|
export declare let dockerTag: (repoArg: string, versionArg: string) => string;
|
||||||
139
dist/npmci.build.docker.js
vendored
Normal file
139
dist/npmci.build.docker.js
vendored
Normal file
File diff suppressed because one or more lines are too long
14
dist/npmci.build.js
vendored
Normal file
14
dist/npmci.build.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
var plugins = require("./npmci.plugins");
|
||||||
|
var buildDocker = require("./npmci.build.docker");
|
||||||
|
exports.build = function (commandArg) {
|
||||||
|
switch (commandArg) {
|
||||||
|
case "docker":
|
||||||
|
return buildDocker.build();
|
||||||
|
default:
|
||||||
|
plugins.beautylog.log("build target " + commandArg + " not recognised!");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0saUJBQWlCLENBQUMsQ0FBQTtBQUczQyxJQUFZLFdBQVcsV0FBTSxzQkFFN0IsQ0FBQyxDQUZrRDtBQUV4QyxhQUFLLEdBQUcsVUFBUyxVQUFVO0lBQ2xDLE1BQU0sQ0FBQSxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDZixLQUFLLFFBQVE7WUFDVCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CO1lBQ0ksT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7QUFDTCxDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuYnVpbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcbmltcG9ydCAqIGFzIGVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcbmltcG9ydCAqIGFzIGJ1aWxkRG9ja2VyIGZyb20gXCIuL25wbWNpLmJ1aWxkLmRvY2tlclwiXG5cbmV4cG9ydCBsZXQgYnVpbGQgPSBmdW5jdGlvbihjb21tYW5kQXJnKXtcbiAgICBzd2l0Y2goY29tbWFuZEFyZyl7XG4gICAgICAgIGNhc2UgXCJkb2NrZXJcIjpcbiAgICAgICAgICAgIHJldHVybiBidWlsZERvY2tlci5idWlsZCgpOyAgIFxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cubG9nKFwiYnVpbGQgdGFyZ2V0IFwiICsgY29tbWFuZEFyZyArIFwiIG5vdCByZWNvZ25pc2VkIVwiKTtcbiAgICB9XG59XG5cblxuXG4iXX0=
|
||||||
9
dist/npmci.env.d.ts
vendored
Normal file
9
dist/npmci.env.d.ts
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import { GitRepo } from "smartstring";
|
||||||
|
import { Dockerfile } from "./npmci.build.docker";
|
||||||
|
export declare let repo: GitRepo;
|
||||||
|
export declare let dockerTestTag: string;
|
||||||
|
export declare let dockerReleaseTag: string;
|
||||||
|
export declare let dockerRegistry: any;
|
||||||
|
export declare let dockerFilesBuilt: Dockerfile[];
|
||||||
|
export declare let dockerFiles: Dockerfile[];
|
||||||
10
dist/npmci.env.js
vendored
Normal file
10
dist/npmci.env.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
var smartstring_1 = require("smartstring");
|
||||||
|
exports.repo = new smartstring_1.GitRepo(process.env.CI_BUILD_REPO);
|
||||||
|
console.log(process.env.CI_BUILD_REPO);
|
||||||
|
console.log(exports.repo);
|
||||||
|
exports.dockerFilesBuilt = [];
|
||||||
|
exports.dockerFiles = [];
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBRXhCLDRCQUFzQixhQUFhLENBQUMsQ0FBQTtBQUd6QixZQUFJLEdBQUcsSUFBSSxxQkFBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBSSxDQUFDLENBQUM7QUFLUCx3QkFBZ0IsR0FBZ0IsRUFBRSxDQUFDO0FBQ25DLG1CQUFXLEdBQWdCLEVBQUUsQ0FBQyIsImZpbGUiOiJucG1jaS5lbnYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5pbXBvcnQge0dpdFJlcG99IGZyb20gXCJzbWFydHN0cmluZ1wiO1xuaW1wb3J0IHtEb2NrZXJmaWxlfSBmcm9tIFwiLi9ucG1jaS5idWlsZC5kb2NrZXJcIlxuXG5leHBvcnQgbGV0IHJlcG8gPSBuZXcgR2l0UmVwbyhwcm9jZXNzLmVudi5DSV9CVUlMRF9SRVBPKTtcbmNvbnNvbGUubG9nKHByb2Nlc3MuZW52LkNJX0JVSUxEX1JFUE8pO1xuY29uc29sZS5sb2cocmVwbyk7XG5leHBvcnQgbGV0IGRvY2tlclRlc3RUYWc6c3RyaW5nO1xuZXhwb3J0IGxldCBkb2NrZXJSZWxlYXNlVGFnOnN0cmluZztcblxuZXhwb3J0IGxldCBkb2NrZXJSZWdpc3RyeTsgLy8gd2lsbCBiZSBzZXQgYnkgbnBtY2kucHJlcGFyZVxuZXhwb3J0IGxldCBkb2NrZXJGaWxlc0J1aWx0OkRvY2tlcmZpbGVbXSA9IFtdO1xuZXhwb3J0IGxldCBkb2NrZXJGaWxlczpEb2NrZXJmaWxlW10gPSBbXTtcblxuIl19
|
||||||
0
dist/npmci.get.d.ts
vendored
Normal file
0
dist/npmci.get.d.ts
vendored
Normal file
3
dist/npmci.get.js
vendored
Normal file
3
dist/npmci.get.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJucG1jaS5nZXQuanMiLCJzb3VyY2VzQ29udGVudCI6W119
|
||||||
19
dist/npmci.install.js
vendored
19
dist/npmci.install.js
vendored
@@ -1,25 +1,28 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
var plugins = require("./npmci.plugins");
|
var plugins = require("./npmci.plugins");
|
||||||
|
var npmci_bash_1 = require("./npmci.bash");
|
||||||
exports.install = function (versionArg) {
|
exports.install = function (versionArg) {
|
||||||
var done = plugins.q.defer();
|
var done = plugins.q.defer();
|
||||||
|
plugins.beautylog.log("now installing " + "node ".green + ("version " + versionArg).yellow);
|
||||||
var version;
|
var version;
|
||||||
if (versionArg = "lts") {
|
if (versionArg == "lts") {
|
||||||
version = "4";
|
version = "4";
|
||||||
}
|
}
|
||||||
|
else if (versionArg == "legacy") {
|
||||||
|
version = "4.0.0";
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
version = versionArg;
|
version = versionArg;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
plugins.beautylog.log("now installing " + "node ".green + ("version " + version).yellow);
|
npmci_bash_1.bash("nvm install " + version +
|
||||||
plugins.shelljs.exec("bash -c \"source /usr/local/nvm/nvm.sh && nvm install " +
|
" && nvm alias default " + version);
|
||||||
version +
|
|
||||||
" nvm alias default " +
|
|
||||||
version +
|
|
||||||
"\"");
|
|
||||||
plugins.beautylog.success("Node version " + version + " successfully installed!");
|
plugins.beautylog.success("Node version " + version + " successfully installed!");
|
||||||
|
npmci_bash_1.bash("node -v");
|
||||||
|
npmci_bash_1.bash("npm -v");
|
||||||
done.resolve();
|
done.resolve();
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQ2hDLGVBQU8sR0FBRyxVQUFDLFVBQVU7SUFDNUIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixJQUFJLE9BQWMsQ0FBQztJQUNuQixFQUFFLENBQUEsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUEsQ0FBQztRQUNuQixPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUFBLENBQUM7SUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pGLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNoQix3REFBd0Q7UUFDeEQsT0FBTztRQUNQLHFCQUFxQjtRQUNyQixPQUFPO1FBQ1AsSUFBSSxDQUNQLENBQUM7SUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsT0FBTyxHQUFHLDBCQUEwQixDQUFDLENBQUM7SUFDbEYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBIiwiZmlsZSI6Im5wbWNpLmluc3RhbGwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuZXhwb3J0IGxldCBpbnN0YWxsID0gKHZlcnNpb25BcmcpID0+IHtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBsZXQgdmVyc2lvbjpzdHJpbmc7XHJcbiAgICBpZih2ZXJzaW9uQXJnID0gXCJsdHNcIil7XHJcbiAgICAgICAgdmVyc2lvbiA9IFwiNFwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICB2ZXJzaW9uID0gdmVyc2lvbkFyZztcclxuICAgIH07XHJcbiAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJub3cgaW5zdGFsbGluZyBcIiArIFwibm9kZSBcIi5ncmVlbiArIChcInZlcnNpb24gXCIgKyB2ZXJzaW9uKS55ZWxsb3cpO1xyXG4gICAgcGx1Z2lucy5zaGVsbGpzLmV4ZWMoXHJcbiAgICAgICAgXCJiYXNoIC1jIFxcXCJzb3VyY2UgL3Vzci9sb2NhbC9udm0vbnZtLnNoICYmIG52bSBpbnN0YWxsIFwiK1xyXG4gICAgICAgIHZlcnNpb24gK1xyXG4gICAgICAgIFwiIG52bSBhbGlhcyBkZWZhdWx0IFwiICtcclxuICAgICAgICB2ZXJzaW9uICtcclxuICAgICAgICBcIlxcXCJcIlxyXG4gICAgKTtcclxuICAgIHBsdWdpbnMuYmVhdXR5bG9nLnN1Y2Nlc3MoXCJOb2RlIHZlcnNpb24gXCIgKyB2ZXJzaW9uICsgXCIgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCFcIik7XHJcbiAgICBkb25lLnJlc29sdmUoKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn0iXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUV2QixlQUFPLEdBQUcsVUFBQyxVQUFVO0lBQzVCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RixJQUFJLE9BQWMsQ0FBQztJQUNuQixFQUFFLENBQUEsQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLENBQUEsQ0FBQztRQUNwQixPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxDQUFBLENBQUM7UUFDOUIsT0FBTyxHQUFHLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQUksQ0FDQSxjQUFjLEdBQUcsT0FBTztRQUN4Qix3QkFBd0IsR0FBRyxPQUFPLENBQ3JDLENBQUM7SUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsT0FBTyxHQUFHLDBCQUEwQixDQUFDLENBQUM7SUFDbEYsaUJBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQixpQkFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBIiwiZmlsZSI6Im5wbWNpLmluc3RhbGwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcblxuZXhwb3J0IGxldCBpbnN0YWxsID0gKHZlcnNpb25BcmcpID0+IHtcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgIHBsdWdpbnMuYmVhdXR5bG9nLmxvZyhcIm5vdyBpbnN0YWxsaW5nIFwiICsgXCJub2RlIFwiLmdyZWVuICsgKFwidmVyc2lvbiBcIiArIHZlcnNpb25BcmcpLnllbGxvdyk7XG4gICAgbGV0IHZlcnNpb246c3RyaW5nO1xuICAgIGlmKHZlcnNpb25BcmcgPT0gXCJsdHNcIil7XG4gICAgICAgIHZlcnNpb24gPSBcIjRcIjtcbiAgICB9IGVsc2UgaWYodmVyc2lvbkFyZyA9PSBcImxlZ2FjeVwiKXtcbiAgICAgICAgdmVyc2lvbiA9IFwiNC4wLjBcIlxuICAgIH0gZWxzZSB7XG4gICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uQXJnO1xuICAgIH07XG4gICAgYmFzaChcbiAgICAgICAgXCJudm0gaW5zdGFsbCBcIiArIHZlcnNpb24gK1xuICAgICAgICBcIiAmJiBudm0gYWxpYXMgZGVmYXVsdCBcIiArIHZlcnNpb25cbiAgICApO1xuICAgIHBsdWdpbnMuYmVhdXR5bG9nLnN1Y2Nlc3MoXCJOb2RlIHZlcnNpb24gXCIgKyB2ZXJzaW9uICsgXCIgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCFcIik7XG4gICAgYmFzaChcIm5vZGUgLXZcIik7XG4gICAgYmFzaChcIm5wbSAtdlwiKTtcbiAgICBkb25lLnJlc29sdmUoKTtcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xufSJdfQ==
|
||||||
|
|||||||
7
dist/npmci.plugins.d.ts
vendored
7
dist/npmci.plugins.d.ts
vendored
@@ -1,6 +1,13 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
export import beautylog = require("beautylog");
|
export import beautylog = require("beautylog");
|
||||||
export declare let commander: any;
|
export declare let commander: any;
|
||||||
|
export declare let gulp: any;
|
||||||
|
export declare let gulpFunction: any;
|
||||||
|
export import path = require("path");
|
||||||
export declare let q: any;
|
export declare let q: any;
|
||||||
|
export declare let request: any;
|
||||||
export declare let shelljs: any;
|
export declare let shelljs: any;
|
||||||
|
export import smartssh = require("smartssh");
|
||||||
|
export import smartstring = require("smartstring");
|
||||||
export import smartfile = require("smartfile");
|
export import smartfile = require("smartfile");
|
||||||
|
export declare let through2: any;
|
||||||
|
|||||||
9
dist/npmci.plugins.js
vendored
9
dist/npmci.plugins.js
vendored
@@ -2,8 +2,15 @@
|
|||||||
require("typings-global");
|
require("typings-global");
|
||||||
exports.beautylog = require("beautylog");
|
exports.beautylog = require("beautylog");
|
||||||
exports.commander = require("commander");
|
exports.commander = require("commander");
|
||||||
|
exports.gulp = require("gulp");
|
||||||
|
exports.gulpFunction = require("gulp-function");
|
||||||
|
exports.path = require("path");
|
||||||
exports.q = require("q");
|
exports.q = require("q");
|
||||||
|
exports.request = require("request");
|
||||||
exports.shelljs = require("shelljs");
|
exports.shelljs = require("shelljs");
|
||||||
|
exports.smartssh = require("smartssh");
|
||||||
|
exports.smartstring = require("smartstring");
|
||||||
exports.smartfile = require("smartfile");
|
exports.smartfile = require("smartfile");
|
||||||
|
exports.through2 = require("through2");
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzFCLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmV4cG9ydCBpbXBvcnQgYmVhdXR5bG9nID0gcmVxdWlyZShcImJlYXV0eWxvZ1wiKTtcclxuZXhwb3J0IGxldCBjb21tYW5kZXIgPSByZXF1aXJlKFwiY29tbWFuZGVyXCIpO1xyXG5leHBvcnQgbGV0IHEgPSByZXF1aXJlKFwicVwiKTtcclxuZXhwb3J0IGxldCBzaGVsbGpzID0gcmVxdWlyZShcInNoZWxsanNcIik7XHJcbmV4cG9ydCBpbXBvcnQgc21hcnRmaWxlID0gcmVxdWlyZShcInNtYXJ0ZmlsZVwiKTsiXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsWUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixvQkFBWSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNyQyxZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDMUIsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLGVBQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsZ0JBQVEsV0FBVyxVQUFVLENBQUMsQ0FBQztBQUMvQixtQkFBVyxXQUFXLGFBQWEsQ0FBQyxDQUFDO0FBQ3JDLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsZ0JBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5leHBvcnQgaW1wb3J0IGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XG5leHBvcnQgbGV0IGNvbW1hbmRlciA9IHJlcXVpcmUoXCJjb21tYW5kZXJcIik7XG5leHBvcnQgbGV0IGd1bHAgPSByZXF1aXJlKFwiZ3VscFwiKTtcbmV4cG9ydCBsZXQgZ3VscEZ1bmN0aW9uID0gcmVxdWlyZShcImd1bHAtZnVuY3Rpb25cIik7XG5leHBvcnQgaW1wb3J0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmV4cG9ydCBsZXQgcSA9IHJlcXVpcmUoXCJxXCIpO1xuZXhwb3J0IGxldCByZXF1ZXN0ID0gcmVxdWlyZShcInJlcXVlc3RcIik7XG5leHBvcnQgbGV0IHNoZWxsanMgPSByZXF1aXJlKFwic2hlbGxqc1wiKTtcbmV4cG9ydCBpbXBvcnQgc21hcnRzc2ggPSByZXF1aXJlKFwic21hcnRzc2hcIik7XG5leHBvcnQgaW1wb3J0IHNtYXJ0c3RyaW5nID0gcmVxdWlyZShcInNtYXJ0c3RyaW5nXCIpO1xuZXhwb3J0IGltcG9ydCBzbWFydGZpbGUgPSByZXF1aXJlKFwic21hcnRmaWxlXCIpO1xuZXhwb3J0IGxldCB0aHJvdWdoMiA9IHJlcXVpcmUoXCJ0aHJvdWdoMlwiKTsiXX0=
|
||||||
|
|||||||
2
dist/npmci.prepare.d.ts
vendored
Normal file
2
dist/npmci.prepare.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare let prepare: (serviceArg: string) => any;
|
||||||
58
dist/npmci.prepare.js
vendored
Normal file
58
dist/npmci.prepare.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
dist/npmci.publish.d.ts
vendored
2
dist/npmci.publish.d.ts
vendored
@@ -1,2 +1,2 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
export declare let publish: () => any;
|
export declare let publish: (serviceArg?: string) => any;
|
||||||
|
|||||||
42
dist/npmci.publish.js
vendored
42
dist/npmci.publish.js
vendored
@@ -1,14 +1,42 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
var plugins = require("./npmci.plugins");
|
var plugins = require("./npmci.plugins");
|
||||||
var npmrcPrefix = "//registry.npmjs.org/:_authToken=";
|
var npmci_prepare_1 = require("./npmci.prepare");
|
||||||
var npmToken = process.env.NPMCITOKEN;
|
var npmci_bash_1 = require("./npmci.bash");
|
||||||
var npmrcFileString = npmrcPrefix + npmToken;
|
var NpmciEnv = require("./npmci.env");
|
||||||
exports.publish = function () {
|
exports.publish = function (serviceArg) {
|
||||||
|
if (serviceArg === void 0) { serviceArg = "npm"; }
|
||||||
|
switch (serviceArg) {
|
||||||
|
case "npm":
|
||||||
|
return publishNpm();
|
||||||
|
case "docker":
|
||||||
|
return publishDocker();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var publishNpm = function () {
|
||||||
var done = plugins.q.defer();
|
var done = plugins.q.defer();
|
||||||
plugins.smartfile.memory.toFs(npmrcFileString, { fileName: ".npmrc", filePath: "/root/" });
|
npmci_prepare_1.prepare("npm")
|
||||||
plugins.shelljs.exec("npm publish");
|
.then(function () {
|
||||||
|
npmci_bash_1.bash("npm publish");
|
||||||
|
plugins.beautylog.ok("Done!");
|
||||||
|
done.resolve();
|
||||||
|
});
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
var publishDocker = function () {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
NpmciEnv.dockerFilesBuilt.forEach(function (dockerfileArg) {
|
||||||
|
dockerfileArg.push();
|
||||||
|
});
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
var publishDockerTest = function () {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
NpmciEnv.dockerFilesBuilt.forEach(function (dockerfileArg) {
|
||||||
|
dockerfileArg.push();
|
||||||
|
});
|
||||||
|
done.resolve();
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBRTNDLElBQUksV0FBVyxHQUFVLG1DQUFtQyxDQUFDO0FBQzdELElBQUksUUFBUSxHQUFVLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO0FBQzdDLElBQUksZUFBZSxHQUFHLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFHbEMsZUFBTyxHQUFHO0lBQ2pCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBQyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDckYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwiZmlsZSI6Im5wbWNpLnB1Ymxpc2guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuXHJcbmxldCBucG1yY1ByZWZpeDpzdHJpbmcgPSBcIi8vcmVnaXN0cnkubnBtanMub3JnLzpfYXV0aFRva2VuPVwiO1xyXG5sZXQgbnBtVG9rZW46c3RyaW5nID0gcHJvY2Vzcy5lbnYuTlBNQ0lUT0tFTjtcclxubGV0IG5wbXJjRmlsZVN0cmluZyA9IG5wbXJjUHJlZml4ICsgbnBtVG9rZW47XHJcblxyXG5cclxuZXhwb3J0IGxldCBwdWJsaXNoID0gKCkgPT4ge1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIFxyXG4gICAgcGx1Z2lucy5zbWFydGZpbGUubWVtb3J5LnRvRnMobnBtcmNGaWxlU3RyaW5nLHtmaWxlTmFtZTpcIi5ucG1yY1wiLGZpbGVQYXRoOlwiL3Jvb3QvXCJ9KTtcclxuICAgIHBsdWdpbnMuc2hlbGxqcy5leGVjKFwibnBtIHB1Ymxpc2hcIik7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59OyJdfQ==
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyxJQUFZLFFBQVEsV0FBTSxhQUFhLENBQUMsQ0FBQTtBQUU3QixlQUFPLEdBQUcsVUFBQyxVQUF5QjtJQUF6QiwwQkFBeUIsR0FBekIsa0JBQXlCO0lBQzNDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDaEIsS0FBSyxLQUFLO1lBQ04sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssUUFBUTtZQUNULE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMvQixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsSUFBSSxVQUFVLEdBQUk7SUFDZCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLHVCQUFPLENBQUMsS0FBSyxDQUFDO1NBQ1QsSUFBSSxDQUFDO1FBQ0YsaUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBRTtRQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN2QixDQUFDLENBQUE7QUFFRCxJQUFJLGFBQWEsR0FBRztJQUNoQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsVUFBUyxhQUFhO1FBQ3BELGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLElBQUksaUJBQWlCLEdBQUc7SUFDcEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFVBQVMsYUFBYTtRQUNwRCxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kucHVibGlzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcbmltcG9ydCB7cHJlcGFyZX0gZnJvbSBcIi4vbnBtY2kucHJlcGFyZVwiO1xuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XG5pbXBvcnQgKiBhcyBOcG1jaUVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcblxuZXhwb3J0IGxldCBwdWJsaXNoID0gKHNlcnZpY2VBcmc6c3RyaW5nID0gXCJucG1cIikgPT4ge1xuICAgIHN3aXRjaCAoc2VydmljZUFyZyl7XG4gICAgICAgIGNhc2UgXCJucG1cIjogXG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaE5wbSgpO1xuICAgICAgICBjYXNlIFwiZG9ja2VyXCI6XG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaERvY2tlcigpO1xuICAgIH1cbn07XG5cbmxldCBwdWJsaXNoTnBtICA9IGZ1bmN0aW9uKCl7XG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICBwcmVwYXJlKFwibnBtXCIpXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBiYXNoKFwibnBtIHB1Ymxpc2hcIik7XG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5vayhcIkRvbmUhXCIpIDtcbiAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgICAgICB9KTtcbiAgIHJldHVybiBkb25lLnByb21pc2U7XG59XG5cbmxldCBwdWJsaXNoRG9ja2VyID0gZnVuY3Rpb24oKXtcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgIE5wbWNpRW52LmRvY2tlckZpbGVzQnVpbHQuZm9yRWFjaChmdW5jdGlvbihkb2NrZXJmaWxlQXJnKXtcbiAgICAgICAgZG9ja2VyZmlsZUFyZy5wdXNoKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcbn07XG5cbmxldCBwdWJsaXNoRG9ja2VyVGVzdCA9IGZ1bmN0aW9uKCl7XG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICBOcG1jaUVudi5kb2NrZXJGaWxlc0J1aWx0LmZvckVhY2goZnVuY3Rpb24oZG9ja2VyZmlsZUFyZyl7XG4gICAgICAgIGRvY2tlcmZpbGVBcmcucHVzaCgpO1xuICAgIH0pO1xuICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgIHJldHVybiBkb25lLnByb21pc2U7XG59Il19
|
||||||
|
|||||||
3
dist/npmci.tag.d.ts
vendored
Normal file
3
dist/npmci.tag.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare let tag: (commandOptionArg: any) => void;
|
||||||
|
export declare let retag: () => void;
|
||||||
8
dist/npmci.tag.js
vendored
Normal file
8
dist/npmci.tag.js
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
exports.tag = function (commandOptionArg) {
|
||||||
|
};
|
||||||
|
exports.retag = function () {
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBTWIsV0FBRyxHQUFHLFVBQVMsZ0JBQWdCO0FBRTFDLENBQUMsQ0FBQTtBQUVVLGFBQUssR0FBRztBQUVuQixDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kudGFnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0IHtwcmVwYXJlfSBmcm9tIFwiLi9ucG1jaS5wcmVwYXJlXCI7XG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcbmltcG9ydCAqIGFzIGVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcblxuZXhwb3J0IGxldCB0YWcgPSBmdW5jdGlvbihjb21tYW5kT3B0aW9uQXJnKXtcbiAgICBcbn1cblxuZXhwb3J0IGxldCByZXRhZyA9IGZ1bmN0aW9uKCl7XG4gICAgXG59O1xuIl19
|
||||||
38
dist/npmci.test.js
vendored
38
dist/npmci.test.js
vendored
@@ -1,17 +1,39 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
var plugins = require("./npmci.plugins");
|
var plugins = require("./npmci.plugins");
|
||||||
|
var npmci_bash_1 = require("./npmci.bash");
|
||||||
var npmci_install_1 = require("./npmci.install");
|
var npmci_install_1 = require("./npmci.install");
|
||||||
exports.test = function (versionArg) {
|
exports.test = function (versionArg) {
|
||||||
var done = plugins.q.defer();
|
var done = plugins.q.defer();
|
||||||
npmci_install_1.install(versionArg)
|
if (versionArg == "docker") {
|
||||||
.then(function () {
|
testDocker()
|
||||||
plugins.beautylog.info("now starting tests:");
|
.then(function () {
|
||||||
plugins.shelljs.exec("npm test");
|
done.resolve();
|
||||||
plugins.beautylog.success("test finished");
|
});
|
||||||
done.resolve();
|
}
|
||||||
});
|
else {
|
||||||
|
npmci_install_1.install(versionArg)
|
||||||
|
.then(npmDependencies)
|
||||||
|
.then(function () {
|
||||||
|
plugins.beautylog.info("now starting tests:");
|
||||||
|
npmci_bash_1.bash("npm test");
|
||||||
|
plugins.beautylog.success("test finished");
|
||||||
|
done.resolve();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
var npmDependencies = function () {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now installing dependencies:");
|
||||||
|
npmci_bash_1.bash("npm install");
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
var testDocker = function () {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
done.resolve();
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQzdCLFlBQUksR0FBRyxVQUFDLFVBQVU7SUFDekIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3Qix1QkFBTyxDQUFDLFVBQVUsQ0FBQztTQUNkLElBQUksQ0FBQztRQUNGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFBO0lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBIiwiZmlsZSI6Im5wbWNpLnRlc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuaW1wb3J0IHtpbnN0YWxsfSBmcm9tIFwiLi9ucG1jaS5pbnN0YWxsXCI7XHJcbmV4cG9ydCBsZXQgdGVzdCA9ICh2ZXJzaW9uQXJnKSA9PiB7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgaW5zdGFsbCh2ZXJzaW9uQXJnKVxyXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJub3cgc3RhcnRpbmcgdGVzdHM6XCIpO1xyXG4gICAgICAgICAgICBwbHVnaW5zLnNoZWxsanMuZXhlYyhcIm5wbSB0ZXN0XCIpO1xyXG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5zdWNjZXNzKFwidGVzdCBmaW5pc2hlZFwiKTtcclxuICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgfSlcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn0iXX0=
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUc3QixZQUFJLEdBQUcsVUFBQyxVQUFVO0lBQ3pCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsRUFBRSxDQUFBLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxDQUFBLENBQUM7UUFDdkIsVUFBVSxFQUFFO2FBQ1AsSUFBSSxDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osdUJBQU8sQ0FBQyxVQUFVLENBQUM7YUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDO2FBQ3JCLElBQUksQ0FBQztZQUNGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDOUMsaUJBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxlQUFlLEdBQUc7SUFDbEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELGlCQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxVQUFVLEdBQUc7SUFDYixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRTdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcbmltcG9ydCAqIGFzIGVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcblxuZXhwb3J0IGxldCB0ZXN0ID0gKHZlcnNpb25BcmcpID0+IHtcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgIGlmKHZlcnNpb25BcmcgPT0gXCJkb2NrZXJcIil7XG4gICAgICAgIHRlc3REb2NrZXIoKVxuICAgICAgICAgICAgLnRoZW4oKCk9PntcbiAgICAgICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGluc3RhbGwodmVyc2lvbkFyZylcbiAgICAgICAgICAgIC50aGVuKG5wbURlcGVuZGVuY2llcylcbiAgICAgICAgICAgIC50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIm5vdyBzdGFydGluZyB0ZXN0czpcIik7XG4gICAgICAgICAgICAgICAgYmFzaChcIm5wbSB0ZXN0XCIpO1xuICAgICAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLnN1Y2Nlc3MoXCJ0ZXN0IGZpbmlzaGVkXCIpO1xuICAgICAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBkb25lLnByb21pc2U7XG59XG5cbmxldCBucG1EZXBlbmRlbmNpZXMgPSBmdW5jdGlvbigpe1xuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIm5vdyBpbnN0YWxsaW5nIGRlcGVuZGVuY2llczpcIik7XG4gICAgYmFzaChcIm5wbSBpbnN0YWxsXCIpO1xuICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgIHJldHVybiBkb25lLnByb21pc2U7XG59XG5cbmxldCB0ZXN0RG9ja2VyID0gZnVuY3Rpb24oKXtcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgIFxuICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgIHJldHVybiBkb25lLnByb21pc2U7XG59XG5cbiJdfQ==
|
||||||
|
|||||||
2
dist/npmci.trigger.d.ts
vendored
Normal file
2
dist/npmci.trigger.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
import "typings-global";
|
||||||
|
export declare let trigger: () => any;
|
||||||
35
dist/npmci.trigger.js
vendored
Normal file
35
dist/npmci.trigger.js
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
var plugins = require("./npmci.plugins");
|
||||||
|
//Variables
|
||||||
|
var triggerEnvPrefix = "NPMCI_TRIGGER_";
|
||||||
|
exports.trigger = function () {
|
||||||
|
var done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now running triggers");
|
||||||
|
var triggerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|?([a-zA-Z0-9\.\-\/]*)/;
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
var iteratorString = i.toString();
|
||||||
|
var triggerName = triggerEnvPrefix + iteratorString;
|
||||||
|
if (process.env[triggerName]) {
|
||||||
|
var triggerRegexResultArray = triggerRegex.exec(process.env[triggerName]);
|
||||||
|
var regexDomain = triggerRegexResultArray[1];
|
||||||
|
var regexProjectId = triggerRegexResultArray[2];
|
||||||
|
var regexProjectTriggerToken = triggerRegexResultArray[3];
|
||||||
|
var regexRefName = triggerRegexResultArray[4];
|
||||||
|
var regexTriggerName = void 0;
|
||||||
|
if (triggerRegexResultArray.length == 6) {
|
||||||
|
regexTriggerName = triggerRegexResultArray[5];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
regexTriggerName = "Unnamed Trigger";
|
||||||
|
}
|
||||||
|
plugins.beautylog.info("Found " + triggerName);
|
||||||
|
plugins.beautylog.log("triggering build for ref " + regexRefName + " of " + regexTriggerName);
|
||||||
|
plugins.request.post("https://gitlab.com/api/v3/projects/" + regexProjectId + "/trigger/builds", { form: { token: regexProjectTriggerToken, ref: regexRefName } });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBSTNDLFdBQVc7QUFDWCxJQUFJLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBRTdCLGVBQU8sR0FBRztJQUNqQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDL0MsSUFBSSxZQUFZLEdBQUcsZ0dBQWdHLENBQUM7SUFDcEgsR0FBRyxDQUFBLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUN6QixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEMsSUFBSSxXQUFXLEdBQUcsZ0JBQWdCLEdBQUcsY0FBYyxDQUFBO1FBQ25ELEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQ3pCLElBQUksdUJBQXVCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDMUUsSUFBSSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxjQUFjLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBSSx3QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxJQUFJLFlBQVksR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxJQUFJLGdCQUFnQixTQUFBLENBQUM7WUFDckIsRUFBRSxDQUFBLENBQUMsdUJBQXVCLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUM7Z0JBQ3BDLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDJCQUEyQixHQUFHLFlBQVksR0FBRyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUM5RixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsR0FBRyxjQUFjLEdBQUcsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxLQUFLLEVBQUMsd0JBQXdCLEVBQUMsR0FBRyxFQUFDLFlBQVksRUFBQyxFQUFDLENBQUMsQ0FBQztRQUMvSixDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50cmlnZ2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0IHtwcmVwYXJlfSBmcm9tIFwiLi9ucG1jaS5wcmVwYXJlXCI7XG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcblxuLy9WYXJpYWJsZXNcbmxldCB0cmlnZ2VyRW52UHJlZml4ID0gXCJOUE1DSV9UUklHR0VSX1wiO1xuXG5leHBvcnQgbGV0IHRyaWdnZXIgPSBmdW5jdGlvbigpe1xuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIm5vdyBydW5uaW5nIHRyaWdnZXJzXCIpO1xuICAgIGxldCB0cmlnZ2VyUmVnZXggPSAvXihbYS16QS1aMC05XFwuXSopXFx8KFthLXpBLVowLTlcXC5dKilcXHwoW2EtekEtWjAtOVxcLl0qKVxcfChbYS16QS1aMC05XFwuXSopXFx8PyhbYS16QS1aMC05XFwuXFwtXFwvXSopLztcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspe1xuICAgICAgICBsZXQgaXRlcmF0b3JTdHJpbmcgPSBpLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCB0cmlnZ2VyTmFtZSA9IHRyaWdnZXJFbnZQcmVmaXggKyBpdGVyYXRvclN0cmluZ1xuICAgICAgICBpZihwcm9jZXNzLmVudlt0cmlnZ2VyTmFtZV0pe1xuICAgICAgICAgICAgbGV0IHRyaWdnZXJSZWdleFJlc3VsdEFycmF5ID0gdHJpZ2dlclJlZ2V4LmV4ZWMocHJvY2Vzcy5lbnZbdHJpZ2dlck5hbWVdKTtcbiAgICAgICAgICAgIGxldCByZWdleERvbWFpbiA9IHRyaWdnZXJSZWdleFJlc3VsdEFycmF5WzFdO1xuICAgICAgICAgICAgbGV0IHJlZ2V4UHJvamVjdElkID0gdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXlbMl07XG4gICAgICAgICAgICBsZXQgcmVnZXhQcm9qZWN0VHJpZ2dlclRva2VuID0gdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXlbM107XG4gICAgICAgICAgICBsZXQgcmVnZXhSZWZOYW1lID0gdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXlbNF07XG4gICAgICAgICAgICBsZXQgcmVnZXhUcmlnZ2VyTmFtZTtcbiAgICAgICAgICAgIGlmKHRyaWdnZXJSZWdleFJlc3VsdEFycmF5Lmxlbmd0aCA9PSA2KXtcbiAgICAgICAgICAgICAgICByZWdleFRyaWdnZXJOYW1lID0gdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXlbNV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlZ2V4VHJpZ2dlck5hbWUgPSBcIlVubmFtZWQgVHJpZ2dlclwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIkZvdW5kIFwiICsgdHJpZ2dlck5hbWUpO1xuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cubG9nKFwidHJpZ2dlcmluZyBidWlsZCBmb3IgcmVmIFwiICsgcmVnZXhSZWZOYW1lICsgXCIgb2YgXCIgKyByZWdleFRyaWdnZXJOYW1lKTtcbiAgICAgICAgICAgIHBsdWdpbnMucmVxdWVzdC5wb3N0KFwiaHR0cHM6Ly9naXRsYWIuY29tL2FwaS92My9wcm9qZWN0cy9cIiArIHJlZ2V4UHJvamVjdElkICsgXCIvdHJpZ2dlci9idWlsZHNcIiwge2Zvcm06e3Rva2VuOnJlZ2V4UHJvamVjdFRyaWdnZXJUb2tlbixyZWY6cmVnZXhSZWZOYW1lfX0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgIHJldHVybiBkb25lLnByb21pc2U7XG59Il19
|
||||||
12
package.json
12
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "npmci",
|
"name": "npmci",
|
||||||
"version": "1.0.5",
|
"version": "2.1.23",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -20,14 +20,20 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/npmci#README",
|
"homepage": "https://gitlab.com/pushrocks/npmci#README",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"npmts": "^5.1.18"
|
"npmts": "^5.2.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"beautylog": "^5.0.6",
|
"beautylog": "^5.0.8",
|
||||||
"commander": "^2.9.0",
|
"commander": "^2.9.0",
|
||||||
|
"gulp": "^3.9.1",
|
||||||
|
"gulp-function": "^1.3.5",
|
||||||
"q": "^1.4.1",
|
"q": "^1.4.1",
|
||||||
|
"request": "^2.72.0",
|
||||||
"shelljs": "^0.7.0",
|
"shelljs": "^0.7.0",
|
||||||
"smartfile": "^3.0.10",
|
"smartfile": "^3.0.10",
|
||||||
|
"smartssh": "^1.0.5",
|
||||||
|
"smartstring": "^2.0.6",
|
||||||
|
"through2": "^2.0.1",
|
||||||
"typings-global": "^1.0.3"
|
"typings-global": "^1.0.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
24
ts/index.ts
24
ts/index.ts
@@ -2,16 +2,23 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
import * as plugins from "./npmci.plugins";
|
import * as plugins from "./npmci.plugins";
|
||||||
|
|
||||||
|
let packJson = require("../package.json");
|
||||||
|
|
||||||
|
plugins.beautylog.info("npmci version: " + packJson.version);
|
||||||
|
|
||||||
|
import {build} from "./npmci.build"
|
||||||
import {install} from "./npmci.install";
|
import {install} from "./npmci.install";
|
||||||
import {test} from "./npmci.test";
|
|
||||||
import {publish} from "./npmci.publish";
|
import {publish} from "./npmci.publish";
|
||||||
|
import {prepare} from "./npmci.prepare";
|
||||||
|
import {tag, retag} from "./npmci.tag";
|
||||||
|
import {test} from "./npmci.test";
|
||||||
|
import {trigger} from "./npmci.trigger";
|
||||||
|
|
||||||
|
|
||||||
let command;
|
let command;
|
||||||
let commandOption;
|
let commandOption;
|
||||||
|
|
||||||
plugins.commander
|
plugins.commander
|
||||||
.version('0.0.1')
|
|
||||||
.arguments('<commandarg> [commandoptionarg]')
|
.arguments('<commandarg> [commandoptionarg]')
|
||||||
.action(function (commandarg, commandoptionarg) {
|
.action(function (commandarg, commandoptionarg) {
|
||||||
command = commandarg;
|
command = commandarg;
|
||||||
@@ -26,14 +33,23 @@ if (typeof command === 'undefined') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (command){
|
switch (command){
|
||||||
|
case "build":
|
||||||
|
build(commandOption);
|
||||||
|
break;
|
||||||
case "install":
|
case "install":
|
||||||
install(commandOption);
|
install(commandOption);
|
||||||
break;
|
break;
|
||||||
|
case "prepare":
|
||||||
|
prepare(commandOption);
|
||||||
|
break;
|
||||||
|
case "publish":
|
||||||
|
publish(commandOption);
|
||||||
|
break;
|
||||||
case "test":
|
case "test":
|
||||||
test(commandOption);
|
test(commandOption);
|
||||||
break;
|
break;
|
||||||
case "publish":
|
case "trigger":
|
||||||
publish();
|
trigger();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
143
ts/npmci.build.docker.ts
Normal file
143
ts/npmci.build.docker.ts
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
import * as plugins from "./npmci.plugins"
|
||||||
|
import * as NpmciEnv from "./npmci.env";
|
||||||
|
|
||||||
|
|
||||||
|
export let build = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
plugins.gulp.src("./Dockerfile*")
|
||||||
|
.pipe(readDockerfiles())
|
||||||
|
.pipe(plugins.gulpFunction(function(){
|
||||||
|
sortDockerfiles()
|
||||||
|
.then(buildDockerfiles)
|
||||||
|
.then(done.resolve);
|
||||||
|
},"atEnd"));
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
let readDockerfiles = function(){
|
||||||
|
return plugins.through2.obj(function(file,enc,cb){
|
||||||
|
let myDockerfile = new Dockerfile({
|
||||||
|
filePath:file.path,
|
||||||
|
read:true
|
||||||
|
});
|
||||||
|
NpmciEnv.dockerFiles.push(
|
||||||
|
myDockerfile
|
||||||
|
);
|
||||||
|
cb(null,file);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
let sortDockerfiles = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
let redoSort:boolean;
|
||||||
|
let sortCounter:number = 0;
|
||||||
|
let sortFunction = function(){
|
||||||
|
redoSort = false;
|
||||||
|
let notYetBuiltImages:string[] = [];
|
||||||
|
NpmciEnv.dockerFiles.forEach((dockerFileArg)=>{
|
||||||
|
notYetBuiltImages.push(dockerFileArg.cleanTag);
|
||||||
|
});
|
||||||
|
NpmciEnv.dockerFiles.sort(function(a,b){
|
||||||
|
console.log("iteration: " + sortCounter.toString());
|
||||||
|
console.log(notYetBuiltImages)
|
||||||
|
console.log(a.cleanTag);
|
||||||
|
let aIndex = notYetBuiltImages.indexOf(a.cleanTag);
|
||||||
|
if(aIndex != -1){notYetBuiltImages.splice(aIndex,1)}
|
||||||
|
console.log(notYetBuiltImages);
|
||||||
|
if(notYetBuiltImages.indexOf(b.baseImage) != -1){
|
||||||
|
redoSort = true;
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(redoSort && sortCounter <= 50){
|
||||||
|
sortCounter++;
|
||||||
|
sortFunction();
|
||||||
|
} else {
|
||||||
|
done.resolve();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
sortFunction();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
let buildDockerfiles = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
NpmciEnv.dockerFiles.forEach(function(dockerfileArg){
|
||||||
|
dockerfileArg.build();
|
||||||
|
})
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Dockerfile {
|
||||||
|
filePath:string;
|
||||||
|
repo:string;
|
||||||
|
version:string;
|
||||||
|
cleanTag:string;
|
||||||
|
buildTag:string;
|
||||||
|
content:string;
|
||||||
|
baseImage:string;
|
||||||
|
constructor(options:{filePath?:string,fileContents?:string|Buffer,read?:boolean}){
|
||||||
|
this.filePath = options.filePath;
|
||||||
|
this.repo = NpmciEnv.repo.user + "/" + NpmciEnv.repo.repo;
|
||||||
|
this.version = dockerFileVersion(plugins.path.parse(options.filePath).base);
|
||||||
|
this.cleanTag = this.repo + ":" + this.version;
|
||||||
|
if(options.filePath && options.read){
|
||||||
|
this.content = plugins.smartfile.local.toStringSync(plugins.path.resolve(options.filePath));
|
||||||
|
};
|
||||||
|
this.baseImage = dockerBaseImage(this.content);
|
||||||
|
};
|
||||||
|
build(){
|
||||||
|
if(!this.buildTag){
|
||||||
|
let tag = dockerTag(this.repo,this.version);
|
||||||
|
plugins.shelljs.exec("docker build -t " + tag + " -f " + this.filePath + " .");
|
||||||
|
this.buildTag = tag;
|
||||||
|
NpmciEnv.dockerFilesBuilt.push(this);
|
||||||
|
} else {
|
||||||
|
plugins.beautylog.error("This Dockerfile already has been built!");
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
push(){
|
||||||
|
if(this.buildTag){
|
||||||
|
plugins.shelljs.exec("docker push " + this.buildTag);
|
||||||
|
} else {
|
||||||
|
plugins.beautylog.error("Dockerfile hasn't been built yet!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let dockerFileVersion = function(dockerfileNameArg:string):string{
|
||||||
|
let versionString:string;
|
||||||
|
let versionRegex = /Dockerfile_([a-zA-Z0-9\.]*)$/;
|
||||||
|
let regexResultArray = versionRegex.exec(dockerfileNameArg);
|
||||||
|
if(regexResultArray && regexResultArray.length == 2){
|
||||||
|
versionString = regexResultArray[1];
|
||||||
|
} else {
|
||||||
|
versionString = "latest";
|
||||||
|
}
|
||||||
|
return versionString;
|
||||||
|
}
|
||||||
|
|
||||||
|
let dockerBaseImage = function(dockerfileContentArg:string){
|
||||||
|
let baseImageRegex = /FROM\s([a-zA-z0-9\/\-\:]*)\n/
|
||||||
|
let regexResultArray = baseImageRegex.exec(dockerfileContentArg)
|
||||||
|
return regexResultArray[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
export let dockerTag = function(repoArg:string,versionArg:string):string{
|
||||||
|
let tagString:string;
|
||||||
|
let registry = NpmciEnv.dockerRegistry;
|
||||||
|
if(process.env.CI_BUILD_STAGE == "test"){
|
||||||
|
registry = "registry.gitlab.com";
|
||||||
|
}
|
||||||
|
let repo = repoArg;
|
||||||
|
let version = versionArg;
|
||||||
|
if(process.env.CI_BUILD_STAGE == "test" || process.env.CI_BUILD_STAGE == "build"){
|
||||||
|
version = version + "_test";
|
||||||
|
}
|
||||||
|
tagString = registry + "/" + repo + ":" + version;
|
||||||
|
return tagString;
|
||||||
|
};
|
||||||
17
ts/npmci.build.ts
Normal file
17
ts/npmci.build.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {bash} from "./npmci.bash";
|
||||||
|
import * as env from "./npmci.env";
|
||||||
|
import * as buildDocker from "./npmci.build.docker"
|
||||||
|
|
||||||
|
export let build = function(commandArg){
|
||||||
|
switch(commandArg){
|
||||||
|
case "docker":
|
||||||
|
return buildDocker.build();
|
||||||
|
default:
|
||||||
|
plugins.beautylog.log("build target " + commandArg + " not recognised!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
15
ts/npmci.env.ts
Normal file
15
ts/npmci.env.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {GitRepo} from "smartstring";
|
||||||
|
import {Dockerfile} from "./npmci.build.docker"
|
||||||
|
|
||||||
|
export let repo = new GitRepo(process.env.CI_BUILD_REPO);
|
||||||
|
console.log(process.env.CI_BUILD_REPO);
|
||||||
|
console.log(repo);
|
||||||
|
export let dockerTestTag:string;
|
||||||
|
export let dockerReleaseTag:string;
|
||||||
|
|
||||||
|
export let dockerRegistry; // will be set by npmci.prepare
|
||||||
|
export let dockerFilesBuilt:Dockerfile[] = [];
|
||||||
|
export let dockerFiles:Dockerfile[] = [];
|
||||||
|
|
||||||
0
ts/npmci.get.ts
Normal file
0
ts/npmci.get.ts
Normal file
@@ -1,22 +1,25 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
import * as plugins from "./npmci.plugins";
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {bash} from "./npmci.bash";
|
||||||
|
|
||||||
export let install = (versionArg) => {
|
export let install = (versionArg) => {
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
|
plugins.beautylog.log("now installing " + "node ".green + ("version " + versionArg).yellow);
|
||||||
let version:string;
|
let version:string;
|
||||||
if(versionArg = "lts"){
|
if(versionArg == "lts"){
|
||||||
version = "4";
|
version = "4";
|
||||||
|
} else if(versionArg == "legacy"){
|
||||||
|
version = "4.0.0"
|
||||||
} else {
|
} else {
|
||||||
version = versionArg;
|
version = versionArg;
|
||||||
};
|
};
|
||||||
plugins.beautylog.log("now installing " + "node ".green + ("version " + version).yellow);
|
bash(
|
||||||
plugins.shelljs.exec(
|
"nvm install " + version +
|
||||||
"bash -c \"source /usr/local/nvm/nvm.sh && nvm install "+
|
" && nvm alias default " + version
|
||||||
version +
|
|
||||||
" nvm alias default " +
|
|
||||||
version +
|
|
||||||
"\""
|
|
||||||
);
|
);
|
||||||
plugins.beautylog.success("Node version " + version + " successfully installed!");
|
plugins.beautylog.success("Node version " + version + " successfully installed!");
|
||||||
|
bash("node -v");
|
||||||
|
bash("npm -v");
|
||||||
done.resolve();
|
done.resolve();
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,13 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
export import beautylog = require("beautylog");
|
export import beautylog = require("beautylog");
|
||||||
export let commander = require("commander");
|
export let commander = require("commander");
|
||||||
|
export let gulp = require("gulp");
|
||||||
|
export let gulpFunction = require("gulp-function");
|
||||||
|
export import path = require("path");
|
||||||
export let q = require("q");
|
export let q = require("q");
|
||||||
|
export let request = require("request");
|
||||||
export let shelljs = require("shelljs");
|
export let shelljs = require("shelljs");
|
||||||
export import smartfile = require("smartfile");
|
export import smartssh = require("smartssh");
|
||||||
|
export import smartstring = require("smartstring");
|
||||||
|
export import smartfile = require("smartfile");
|
||||||
|
export let through2 = require("through2");
|
||||||
61
ts/npmci.prepare.ts
Normal file
61
ts/npmci.prepare.ts
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {bash} from "./npmci.bash";
|
||||||
|
import * as env from "./npmci.env"
|
||||||
|
|
||||||
|
let npm = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
|
||||||
|
let npmrcPrefix:string = "//registry.npmjs.org/:_authToken=";
|
||||||
|
let npmToken:string = process.env.NPMCI_TOKEN_NPM;
|
||||||
|
let npmrcFileString = npmrcPrefix + npmToken;
|
||||||
|
|
||||||
|
if(npmToken){
|
||||||
|
plugins.beautylog.info("found access token");
|
||||||
|
} else {
|
||||||
|
plugins.beautylog.error("no access token found! Exiting!");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
plugins.smartfile.memory.toFsSync(npmrcFileString,{fileName:".npmrc",filePath:"/root"});
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
let docker = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
env.dockerRegistry = "docker.io"
|
||||||
|
let dockerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)/
|
||||||
|
if(!process.env.NPMCI_LOGIN_DOCKER){
|
||||||
|
plugins.beautylog.error("You have to specify Login Data to the Docker Registry");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
let dockerRegexResultArray = dockerRegex.exec(process.env.NPMCI_LOGIN_DOCKER);
|
||||||
|
let username = dockerRegexResultArray[1];
|
||||||
|
let password = dockerRegexResultArray[2];
|
||||||
|
plugins.shelljs.exec("docker login -u " + username + " -p " + password);
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
let dockerGitlab = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
env.dockerRegistry = "registry.gitlab.com";
|
||||||
|
let ciBuildToken = process.env.CI_BUILD_TOKEN
|
||||||
|
plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + ciBuildToken + " " + env.dockerRegistry);
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
export let prepare = function(serviceArg:string){
|
||||||
|
switch (serviceArg) {
|
||||||
|
case "npm":
|
||||||
|
return npm();
|
||||||
|
case "docker":
|
||||||
|
return docker()
|
||||||
|
.then(dockerGitlab); // always also login to gitlab registry for tests
|
||||||
|
case "docker-gitlab":
|
||||||
|
return dockerGitlab()
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,15 +1,42 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
import * as plugins from "./npmci.plugins";
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {prepare} from "./npmci.prepare";
|
||||||
|
import {bash} from "./npmci.bash";
|
||||||
|
import * as NpmciEnv from "./npmci.env";
|
||||||
|
|
||||||
let npmrcPrefix:string = "//registry.npmjs.org/:_authToken=";
|
export let publish = (serviceArg:string = "npm") => {
|
||||||
let npmToken:string = process.env.NPMCITOKEN;
|
switch (serviceArg){
|
||||||
let npmrcFileString = npmrcPrefix + npmToken;
|
case "npm":
|
||||||
|
return publishNpm();
|
||||||
|
case "docker":
|
||||||
|
return publishDocker();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let publishNpm = function(){
|
||||||
export let publish = () => {
|
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
|
prepare("npm")
|
||||||
plugins.smartfile.memory.toFs(npmrcFileString,{fileName:".npmrc",filePath:"/root/"});
|
.then(function(){
|
||||||
plugins.shelljs.exec("npm publish");
|
bash("npm publish");
|
||||||
|
plugins.beautylog.ok("Done!") ;
|
||||||
|
done.resolve();
|
||||||
|
});
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
let publishDocker = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
NpmciEnv.dockerFilesBuilt.forEach(function(dockerfileArg){
|
||||||
|
dockerfileArg.push();
|
||||||
|
});
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let publishDockerTest = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
NpmciEnv.dockerFilesBuilt.forEach(function(dockerfileArg){
|
||||||
|
dockerfileArg.push();
|
||||||
|
});
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
13
ts/npmci.tag.ts
Normal file
13
ts/npmci.tag.ts
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {prepare} from "./npmci.prepare";
|
||||||
|
import {bash} from "./npmci.bash";
|
||||||
|
import * as env from "./npmci.env";
|
||||||
|
|
||||||
|
export let tag = function(commandOptionArg){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export let retag = function(){
|
||||||
|
|
||||||
|
};
|
||||||
@@ -1,14 +1,41 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
import * as plugins from "./npmci.plugins";
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {bash} from "./npmci.bash";
|
||||||
import {install} from "./npmci.install";
|
import {install} from "./npmci.install";
|
||||||
|
import * as env from "./npmci.env";
|
||||||
|
|
||||||
export let test = (versionArg) => {
|
export let test = (versionArg) => {
|
||||||
let done = plugins.q.defer();
|
let done = plugins.q.defer();
|
||||||
install(versionArg)
|
if(versionArg == "docker"){
|
||||||
.then(function(){
|
testDocker()
|
||||||
plugins.beautylog.info("now starting tests:");
|
.then(()=>{
|
||||||
plugins.shelljs.exec("npm test");
|
done.resolve();
|
||||||
plugins.beautylog.success("test finished");
|
});
|
||||||
done.resolve();
|
} else {
|
||||||
})
|
install(versionArg)
|
||||||
|
.then(npmDependencies)
|
||||||
|
.then(()=>{
|
||||||
|
plugins.beautylog.info("now starting tests:");
|
||||||
|
bash("npm test");
|
||||||
|
plugins.beautylog.success("test finished");
|
||||||
|
done.resolve();
|
||||||
|
});
|
||||||
|
}
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let npmDependencies = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now installing dependencies:");
|
||||||
|
bash("npm install");
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
let testDocker = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
35
ts/npmci.trigger.ts
Normal file
35
ts/npmci.trigger.ts
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import "typings-global";
|
||||||
|
import * as plugins from "./npmci.plugins";
|
||||||
|
import {prepare} from "./npmci.prepare";
|
||||||
|
import {bash} from "./npmci.bash";
|
||||||
|
|
||||||
|
//Variables
|
||||||
|
let triggerEnvPrefix = "NPMCI_TRIGGER_";
|
||||||
|
|
||||||
|
export let trigger = function(){
|
||||||
|
let done = plugins.q.defer();
|
||||||
|
plugins.beautylog.info("now running triggers");
|
||||||
|
let triggerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|?([a-zA-Z0-9\.\-\/]*)/;
|
||||||
|
for(let i = 0; i < 100; i++){
|
||||||
|
let iteratorString = i.toString();
|
||||||
|
let triggerName = triggerEnvPrefix + iteratorString
|
||||||
|
if(process.env[triggerName]){
|
||||||
|
let triggerRegexResultArray = triggerRegex.exec(process.env[triggerName]);
|
||||||
|
let regexDomain = triggerRegexResultArray[1];
|
||||||
|
let regexProjectId = triggerRegexResultArray[2];
|
||||||
|
let regexProjectTriggerToken = triggerRegexResultArray[3];
|
||||||
|
let regexRefName = triggerRegexResultArray[4];
|
||||||
|
let regexTriggerName;
|
||||||
|
if(triggerRegexResultArray.length == 6){
|
||||||
|
regexTriggerName = triggerRegexResultArray[5];
|
||||||
|
} else {
|
||||||
|
regexTriggerName = "Unnamed Trigger";
|
||||||
|
}
|
||||||
|
plugins.beautylog.info("Found " + triggerName);
|
||||||
|
plugins.beautylog.log("triggering build for ref " + regexRefName + " of " + regexTriggerName);
|
||||||
|
plugins.request.post("https://gitlab.com/api/v3/projects/" + regexProjectId + "/trigger/builds", {form:{token:regexProjectTriggerToken,ref:regexRefName}});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user