Compare commits
	
		
			106 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | |||
| 911392e00e | |||
| 3f5d4ee091 | |||
| c13ab8e428 | |||
| d82e28f5d1 | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,3 @@ | |||||||
| node_modules/ | node_modules/ | ||||||
| dist/ |  | ||||||
| coverage/ | coverage/ | ||||||
| docs/ | docs/ | ||||||
							
								
								
									
										50
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | |||||||
|  | image: hosttoday/ht-docker-node:latest | ||||||
|  |  | ||||||
|  | stages: | ||||||
|  | - test | ||||||
|  | - release | ||||||
|  | - trigger | ||||||
|  |  | ||||||
|  | testLTS: | ||||||
|  |   stage: test | ||||||
|  |   script: | ||||||
|  |     - npmci test lts | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
|  |  | ||||||
|  | before_script: | ||||||
|  |   - npm uninstall -g npmci | ||||||
|  |   - npm install -g npmci | ||||||
|  |     | ||||||
|  | testSTABLE: | ||||||
|  |   stage: test | ||||||
|  |   script: | ||||||
|  |     - npmci test stable | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
|  |      | ||||||
|  | testLEGACY: | ||||||
|  |   stage: test | ||||||
|  |   script: | ||||||
|  |     - npmci test legacy | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
|  |   allow_failure: true | ||||||
|  |  | ||||||
|  | release: | ||||||
|  |   stage: release | ||||||
|  |   script: | ||||||
|  |     - npmci publish | ||||||
|  |   only: | ||||||
|  |     - tags | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
|  |  | ||||||
|  | trigger: | ||||||
|  |   stage: trigger | ||||||
|  |   script: | ||||||
|  |     - npmci trigger | ||||||
|  |   only: | ||||||
|  |     - tags | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
							
								
								
									
										31
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | |||||||
|  | # NPMCI | ||||||
|  | npmci is your friend when it comes to handling npm packages during CI builds. | ||||||
|  |  | ||||||
|  | ## 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 | ||||||
|  |  | ||||||
|  | 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 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". | ||||||
|  |  | ||||||
|  | # publish npm module | ||||||
|  | npmci publish # will look vor $NPMCITOKEN env var and push any module in cwd to npm    | ||||||
|  | ``` | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								alias.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								alias.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | {} | ||||||
							
								
								
									
										10
									
								
								appveyor.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								appveyor.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | environment: | ||||||
|  |   nodejs_version: "4" | ||||||
|  | install: | ||||||
|  |   - ps: Install-Product node $env:nodejs_version | ||||||
|  |   - npm install | ||||||
|  | test_script: | ||||||
|  |   - node --version | ||||||
|  |   - npm --version | ||||||
|  |   - npm test | ||||||
|  | build: off | ||||||
							
								
								
									
										1
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | import "typings-global"; | ||||||
							
								
								
									
										49
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | |||||||
|  | #!/usr/bin/env node | ||||||
|  | "use strict"; | ||||||
|  | require("typings-global"); | ||||||
|  | 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_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 commandOption; | ||||||
|  | plugins.commander | ||||||
|  |     .arguments('<commandarg> [commandoptionarg]') | ||||||
|  |     .action(function (commandarg, commandoptionarg) { | ||||||
|  |     command = commandarg; | ||||||
|  |     commandOption = commandoptionarg; | ||||||
|  | }); | ||||||
|  | plugins.commander.parse(process.argv); | ||||||
|  | if (typeof command === 'undefined') { | ||||||
|  |     console.error('no command given!'); | ||||||
|  |     process.exit(1); | ||||||
|  | } | ||||||
|  | switch (command) { | ||||||
|  |     case "build": | ||||||
|  |         npmci_build_1.build("commandArg"); | ||||||
|  |         break; | ||||||
|  |     case "install": | ||||||
|  |         npmci_install_1.install(commandOption); | ||||||
|  |         break; | ||||||
|  |     case "prepare": | ||||||
|  |         npmci_prepare_1.prepare(commandOption); | ||||||
|  |         break; | ||||||
|  |     case "publish": | ||||||
|  |         npmci_publish_1.publish(commandOption); | ||||||
|  |         break; | ||||||
|  |     case "test": | ||||||
|  |         npmci_test_1.test(commandOption); | ||||||
|  |         break; | ||||||
|  |     case "trigger": | ||||||
|  |         npmci_trigger_1.trigger(); | ||||||
|  |         break; | ||||||
|  |     default: | ||||||
|  |         break; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3hCLElBQVksT0FBTyxXQUFNLGlCQUFpQixDQUFDLENBQUE7QUFFM0MsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFMUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRTdELDRCQUFvQixlQUNwQixDQUFDLENBRGtDO0FBQ25DLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUd4QyxJQUFJLE9BQU8sQ0FBQztBQUNaLElBQUksYUFBYSxDQUFDO0FBRWxCLE9BQU8sQ0FBQyxTQUFTO0tBQ1osU0FBUyxDQUFDLGlDQUFpQyxDQUFDO0tBQzVDLE1BQU0sQ0FBQyxVQUFVLFVBQVUsRUFBRSxnQkFBZ0I7SUFDMUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUNyQixhQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFDckMsQ0FBQyxDQUFDLENBQUM7QUFFUCxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdEMsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQztJQUNiLEtBQUssT0FBTztRQUNSLG1CQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEIsS0FBSyxDQUFDO0lBQ1YsS0FBSyxTQUFTO1FBQ1YsdUJBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2QixLQUFLLENBQUM7SUFDVixLQUFLLFNBQVM7UUFDVix1QkFBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQztJQUNWLEtBQUssU0FBUztRQUNWLHVCQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkIsS0FBSyxDQUFDO0lBQ1YsS0FBSyxNQUFNO1FBQ1AsaUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQixLQUFLLENBQUM7SUFDVixLQUFLLFNBQVM7UUFDVix1QkFBTyxFQUFFLENBQUM7UUFDVixLQUFLLENBQUM7SUFDVjtRQUNJLEtBQUssQ0FBQztBQUNkLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXHJcbmltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5cclxubGV0IHBhY2tKc29uID0gcmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKTtcclxuXHJcbnBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJucG1jaSB2ZXJzaW9uOiBcIiArIHBhY2tKc29uLnZlcnNpb24pO1xyXG5cclxuaW1wb3J0IHtidWlsZH0gZnJvbSBcIi4vbnBtY2kuYnVpbGRcIlxyXG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcclxuaW1wb3J0IHtwdWJsaXNofSBmcm9tIFwiLi9ucG1jaS5wdWJsaXNoXCI7XHJcbmltcG9ydCB7cHJlcGFyZX0gZnJvbSBcIi4vbnBtY2kucHJlcGFyZVwiO1xyXG5pbXBvcnQge3Rlc3R9IGZyb20gXCIuL25wbWNpLnRlc3RcIjtcclxuaW1wb3J0IHt0cmlnZ2VyfSBmcm9tIFwiLi9ucG1jaS50cmlnZ2VyXCI7XHJcblxyXG5cclxubGV0IGNvbW1hbmQ7XHJcbmxldCBjb21tYW5kT3B0aW9uO1xyXG5cclxucGx1Z2lucy5jb21tYW5kZXJcclxuICAgIC5hcmd1bWVudHMoJzxjb21tYW5kYXJnPiBbY29tbWFuZG9wdGlvbmFyZ10nKVxyXG4gICAgLmFjdGlvbihmdW5jdGlvbiAoY29tbWFuZGFyZywgY29tbWFuZG9wdGlvbmFyZykge1xyXG4gICAgICAgIGNvbW1hbmQgPSBjb21tYW5kYXJnO1xyXG4gICAgICAgIGNvbW1hbmRPcHRpb24gPSBjb21tYW5kb3B0aW9uYXJnO1xyXG4gICAgfSk7XHJcbiBcclxucGx1Z2lucy5jb21tYW5kZXIucGFyc2UocHJvY2Vzcy5hcmd2KTtcclxuIFxyXG5pZiAodHlwZW9mIGNvbW1hbmQgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdubyBjb21tYW5kIGdpdmVuIScpO1xyXG4gICAgcHJvY2Vzcy5leGl0KDEpO1xyXG59XHJcblxyXG5zd2l0Y2ggKGNvbW1hbmQpe1xyXG4gICAgY2FzZSBcImJ1aWxkXCI6XHJcbiAgICAgICAgYnVpbGQoXCJjb21tYW5kQXJnXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcImluc3RhbGxcIjpcclxuICAgICAgICBpbnN0YWxsKGNvbW1hbmRPcHRpb24pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcInByZXBhcmVcIjpcclxuICAgICAgICBwcmVwYXJlKGNvbW1hbmRPcHRpb24pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcInB1Ymxpc2hcIjpcclxuICAgICAgICBwdWJsaXNoKGNvbW1hbmRPcHRpb24pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcInRlc3RcIjpcclxuICAgICAgICB0ZXN0KGNvbW1hbmRPcHRpb24pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcInRyaWdnZXJcIjpcclxuICAgICAgICB0cmlnZ2VyKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG59XHJcblxyXG4iXX0= | ||||||
							
								
								
									
										2
									
								
								dist/npmci.bash.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/npmci.bash.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | export declare let bash: (commandArg: any) => void; | ||||||
							
								
								
									
										13
									
								
								dist/npmci.bash.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								dist/npmci.bash.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | "use strict"; | ||||||
|  | require("typings-global"); | ||||||
|  | var plugins = require("./npmci.plugins"); | ||||||
|  | exports.bash = function (commandArg) { | ||||||
|  |     var exitCode = plugins.shelljs.exec("bash -c \"source /usr/local/nvm/nvm.sh &&" + | ||||||
|  |         commandArg + | ||||||
|  |         "\"").code; | ||||||
|  |     if (exitCode !== 0) { | ||||||
|  |         process.exit(1); | ||||||
|  |     } | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQ2hDLFlBQUksR0FBRyxVQUFDLFVBQVU7SUFDekIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9CLDJDQUEyQztRQUMzQyxVQUFVO1FBQ1YsSUFBSSxDQUNQLENBQUMsSUFBSSxDQUFDO0lBQ1AsRUFBRSxDQUFBLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFBLENBQUM7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7QUFDTCxDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5leHBvcnQgbGV0IGJhc2ggPSAoY29tbWFuZEFyZykgPT4ge1xyXG4gICAgbGV0IGV4aXRDb2RlID0gcGx1Z2lucy5zaGVsbGpzLmV4ZWMoXHJcbiAgICAgICAgXCJiYXNoIC1jIFxcXCJzb3VyY2UgL3Vzci9sb2NhbC9udm0vbnZtLnNoICYmXCIgK1xyXG4gICAgICAgIGNvbW1hbmRBcmcgK1xyXG4gICAgICAgIFwiXFxcIlwiXHJcbiAgICApLmNvZGU7XHJcbiAgICBpZihleGl0Q29kZSAhPT0gMCl7XHJcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xyXG4gICAgfVxyXG59Il19 | ||||||
							
								
								
									
										2
									
								
								dist/npmci.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; | ||||||
							
								
								
									
										12
									
								
								dist/npmci.build.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								dist/npmci.build.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | "use strict"; | ||||||
|  | require("typings-global"); | ||||||
|  | var plugins = require("./npmci.plugins"); | ||||||
|  | exports.build = function (commandArg) { | ||||||
|  |     var done = plugins.q.defer(); | ||||||
|  |     var repo = new plugins.smartstring.GitRepo(process.env.CI_BUILD_REPO); | ||||||
|  |     plugins.shelljs.exec("docker build -t " + repo.user + "/" + repo.repo + ":latest ."); | ||||||
|  |     done.resolve(); | ||||||
|  |     return done.promise; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0saUJBQWlCLENBQUMsQ0FBQTtBQUdoQyxhQUFLLEdBQUcsVUFBUyxVQUFVO0lBQ2xDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsSUFBSSxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RFLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUM7SUFDckYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBIiwiZmlsZSI6Im5wbWNpLmJ1aWxkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7YmFzaH0gZnJvbSBcIi4vbnBtY2kuYmFzaFwiO1xyXG5cclxuZXhwb3J0IGxldCBidWlsZCA9IGZ1bmN0aW9uKGNvbW1hbmRBcmcpe1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIGxldCByZXBvID0gbmV3IHBsdWdpbnMuc21hcnRzdHJpbmcuR2l0UmVwbyhwcm9jZXNzLmVudi5DSV9CVUlMRF9SRVBPKTtcclxuICAgIHBsdWdpbnMuc2hlbGxqcy5leGVjKFwiZG9ja2VyIGJ1aWxkIC10IFwiICsgcmVwby51c2VyICsgXCIvXCIgKyByZXBvLnJlcG8gKyBcIjpsYXRlc3QgLlwiKTtcclxuICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcclxufSJdfQ== | ||||||
							
								
								
									
										1
									
								
								dist/npmci.env.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								dist/npmci.env.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | export declare let env: () => void; | ||||||
							
								
								
									
										5
									
								
								dist/npmci.env.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								dist/npmci.env.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | "use strict"; | ||||||
|  | exports.env = function () { | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQVcsV0FBRyxHQUFHO0FBRWpCLENBQUMsQ0FBQyIsImZpbGUiOiJucG1jaS5lbnYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgbGV0IGVudiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBcclxufTsiXX0= | ||||||
							
								
								
									
										2
									
								
								dist/npmci.install.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/npmci.install.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | export declare let install: (versionArg: any) => any; | ||||||
							
								
								
									
										28
									
								
								dist/npmci.install.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								dist/npmci.install.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | "use strict"; | ||||||
|  | require("typings-global"); | ||||||
|  | var plugins = require("./npmci.plugins"); | ||||||
|  | var npmci_bash_1 = require("./npmci.bash"); | ||||||
|  | exports.install = function (versionArg) { | ||||||
|  |     var done = plugins.q.defer(); | ||||||
|  |     plugins.beautylog.log("now installing " + "node ".green + ("version " + versionArg).yellow); | ||||||
|  |     var version; | ||||||
|  |     if (versionArg == "lts") { | ||||||
|  |         version = "4"; | ||||||
|  |     } | ||||||
|  |     else if (versionArg == "legacy") { | ||||||
|  |         version = "4.0.0"; | ||||||
|  |     } | ||||||
|  |     else { | ||||||
|  |         version = versionArg; | ||||||
|  |     } | ||||||
|  |     ; | ||||||
|  |     npmci_bash_1.bash("nvm install " + version + | ||||||
|  |         " && nvm alias default " + version); | ||||||
|  |     plugins.beautylog.success("Node version " + version + " successfully installed!"); | ||||||
|  |     npmci_bash_1.bash("node -v"); | ||||||
|  |     npmci_bash_1.bash("npm -v"); | ||||||
|  |     done.resolve(); | ||||||
|  |     return done.promise; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUV2QixlQUFPLEdBQUcsVUFBQyxVQUFVO0lBQzVCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RixJQUFJLE9BQWMsQ0FBQztJQUNuQixFQUFFLENBQUEsQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLENBQUEsQ0FBQztRQUNwQixPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxDQUFBLENBQUM7UUFDOUIsT0FBTyxHQUFHLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQUksQ0FDQSxjQUFjLEdBQUcsT0FBTztRQUN4Qix3QkFBd0IsR0FBRyxPQUFPLENBQ3JDLENBQUM7SUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsT0FBTyxHQUFHLDBCQUEwQixDQUFDLENBQUM7SUFDbEYsaUJBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQixpQkFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBIiwiZmlsZSI6Im5wbWNpLmluc3RhbGwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XHJcblxyXG5leHBvcnQgbGV0IGluc3RhbGwgPSAodmVyc2lvbkFyZykgPT4ge1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIHBsdWdpbnMuYmVhdXR5bG9nLmxvZyhcIm5vdyBpbnN0YWxsaW5nIFwiICsgXCJub2RlIFwiLmdyZWVuICsgKFwidmVyc2lvbiBcIiArIHZlcnNpb25BcmcpLnllbGxvdyk7XHJcbiAgICBsZXQgdmVyc2lvbjpzdHJpbmc7XHJcbiAgICBpZih2ZXJzaW9uQXJnID09IFwibHRzXCIpe1xyXG4gICAgICAgIHZlcnNpb24gPSBcIjRcIjtcclxuICAgIH0gZWxzZSBpZih2ZXJzaW9uQXJnID09IFwibGVnYWN5XCIpe1xyXG4gICAgICAgIHZlcnNpb24gPSBcIjQuMC4wXCJcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmVyc2lvbiA9IHZlcnNpb25Bcmc7XHJcbiAgICB9O1xyXG4gICAgYmFzaChcclxuICAgICAgICBcIm52bSBpbnN0YWxsIFwiICsgdmVyc2lvbiArXHJcbiAgICAgICAgXCIgJiYgbnZtIGFsaWFzIGRlZmF1bHQgXCIgKyB2ZXJzaW9uXHJcbiAgICApO1xyXG4gICAgcGx1Z2lucy5iZWF1dHlsb2cuc3VjY2VzcyhcIk5vZGUgdmVyc2lvbiBcIiArIHZlcnNpb24gKyBcIiBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkIVwiKTtcclxuICAgIGJhc2goXCJub2RlIC12XCIpO1xyXG4gICAgYmFzaChcIm5wbSAtdlwiKTtcclxuICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcclxufSJdfQ== | ||||||
							
								
								
									
										9
									
								
								dist/npmci.plugins.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								dist/npmci.plugins.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | export import beautylog = require("beautylog"); | ||||||
|  | export declare let commander: any; | ||||||
|  | export declare let q: any; | ||||||
|  | export declare let request: any; | ||||||
|  | export declare let shelljs: any; | ||||||
|  | export declare let smartssh: any; | ||||||
|  | export import smartstring = require("smartstring"); | ||||||
|  | export import smartfile = require("smartfile"); | ||||||
							
								
								
									
										12
									
								
								dist/npmci.plugins.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								dist/npmci.plugins.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | "use strict"; | ||||||
|  | require("typings-global"); | ||||||
|  | exports.beautylog = require("beautylog"); | ||||||
|  | exports.commander = require("commander"); | ||||||
|  | exports.q = require("q"); | ||||||
|  | exports.request = require("request"); | ||||||
|  | exports.shelljs = require("shelljs"); | ||||||
|  | exports.smartssh = require("smartssh"); | ||||||
|  | exports.smartstring = require("smartstring"); | ||||||
|  | exports.smartfile = require("smartfile"); | ||||||
|  |  | ||||||
|  | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLGVBQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0IsZ0JBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDNUIsbUJBQVcsV0FBVyxhQUFhLENBQUMsQ0FBQztBQUNyQyxpQkFBUyxXQUFXLFdBQVcsQ0FBQyxDQUFDIiwiZmlsZSI6Im5wbWNpLnBsdWdpbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5leHBvcnQgaW1wb3J0IGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XHJcbmV4cG9ydCBsZXQgY29tbWFuZGVyID0gcmVxdWlyZShcImNvbW1hbmRlclwiKTtcclxuZXhwb3J0IGxldCBxID0gcmVxdWlyZShcInFcIik7XHJcbmV4cG9ydCBsZXQgcmVxdWVzdCA9IHJlcXVpcmUoXCJyZXF1ZXN0XCIpO1xyXG5leHBvcnQgbGV0IHNoZWxsanMgPSByZXF1aXJlKFwic2hlbGxqc1wiKTtcclxuZXhwb3J0IGxldCBzbWFydHNzaCA9IHJlcXVpcmUoXCJzbWFydHNzaFwiKTtcclxuZXhwb3J0IGltcG9ydCBzbWFydHN0cmluZyA9IHJlcXVpcmUoXCJzbWFydHN0cmluZ1wiKTtcclxuZXhwb3J0IGltcG9ydCBzbWFydGZpbGUgPSByZXF1aXJlKFwic21hcnRmaWxlXCIpOyJdfQ== | ||||||
							
								
								
									
										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; | ||||||
							
								
								
									
										54
									
								
								dist/npmci.prepare.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								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
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/npmci.publish.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | export declare let publish: (serviceArg?: string) => any; | ||||||
							
								
								
									
										44
									
								
								dist/npmci.publish.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								dist/npmci.publish.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | |||||||
|  | "use strict"; | ||||||
|  | require("typings-global"); | ||||||
|  | var plugins = require("./npmci.plugins"); | ||||||
|  | var npmci_prepare_1 = require("./npmci.prepare"); | ||||||
|  | var npmci_bash_1 = require("./npmci.bash"); | ||||||
|  | exports.publish = function (serviceArg) { | ||||||
|  |     if (serviceArg === void 0) { serviceArg = "npm"; } | ||||||
|  |     var done = plugins.q.defer(); | ||||||
|  |     switch (serviceArg) { | ||||||
|  |         case "npm": | ||||||
|  |             publishNpm() | ||||||
|  |                 .then(function () { | ||||||
|  |                 done.resolve(); | ||||||
|  |             }); | ||||||
|  |             break; | ||||||
|  |         case "docker": | ||||||
|  |             publishDocker() | ||||||
|  |                 .then(function () { | ||||||
|  |                 done.resolve(); | ||||||
|  |             }); | ||||||
|  |     } | ||||||
|  |     return done.promise; | ||||||
|  | }; | ||||||
|  | var publishNpm = function () { | ||||||
|  |     var done = plugins.q.defer(); | ||||||
|  |     npmci_prepare_1.prepare("npm") | ||||||
|  |         .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(); | ||||||
|  |     npmci_prepare_1.prepare("docker") | ||||||
|  |         .then(function () { | ||||||
|  |         npmci_bash_1.bash("docker push"); | ||||||
|  |         done.resolve(); | ||||||
|  |     }); | ||||||
|  |     return done.promise; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUV2QixlQUFPLEdBQUcsVUFBQyxVQUF5QjtJQUF6QiwwQkFBeUIsR0FBekIsa0JBQXlCO0lBQzNDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQztRQUNoQixLQUFLLEtBQUs7WUFDTixVQUFVLEVBQUU7aUJBQ1AsSUFBSSxDQUFDO2dCQUNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztZQUNQLEtBQUssQ0FBQztRQUNWLEtBQUssUUFBUTtZQUNULGFBQWEsRUFBRTtpQkFDVixJQUFJLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLElBQUksVUFBVSxHQUFJO0lBQ2QsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3Qix1QkFBTyxDQUFDLEtBQUssQ0FBQztTQUNULElBQUksQ0FBQztRQUNGLGlCQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUU7UUFDL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDdkIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxhQUFhLEdBQUc7SUFDaEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3Qix1QkFBTyxDQUFDLFFBQVEsQ0FBQztTQUNaLElBQUksQ0FBQztRQUNGLGlCQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwiZmlsZSI6Im5wbWNpLnB1Ymxpc2guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuaW1wb3J0IHtwcmVwYXJlfSBmcm9tIFwiLi9ucG1jaS5wcmVwYXJlXCI7XHJcbmltcG9ydCB7YmFzaH0gZnJvbSBcIi4vbnBtY2kuYmFzaFwiO1xyXG5cclxuZXhwb3J0IGxldCBwdWJsaXNoID0gKHNlcnZpY2VBcmc6c3RyaW5nID0gXCJucG1cIikgPT4ge1xyXG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcclxuICAgIHN3aXRjaCAoc2VydmljZUFyZyl7XHJcbiAgICAgICAgY2FzZSBcIm5wbVwiOiBcclxuICAgICAgICAgICAgcHVibGlzaE5wbSgpXHJcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJkb2NrZXJcIjpcclxuICAgICAgICAgICAgcHVibGlzaERvY2tlcigpXHJcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59O1xyXG5cclxubGV0IHB1Ymxpc2hOcG0gID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBwcmVwYXJlKFwibnBtXCIpXHJcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgYmFzaChcIm5wbSBwdWJsaXNoXCIpO1xyXG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5vayhcIkRvbmUhXCIpIDtcclxuICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn1cclxuXHJcbmxldCBwdWJsaXNoRG9ja2VyID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBwcmVwYXJlKFwiZG9ja2VyXCIpXHJcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgYmFzaChcImRvY2tlciBwdXNoXCIpO1xyXG4gICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcclxuICAgICAgICB9KTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn07Il19 | ||||||
							
								
								
									
										2
									
								
								dist/npmci.test.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/npmci.test.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | export declare let test: (versionArg: any) => any; | ||||||
							
								
								
									
										20
									
								
								dist/npmci.test.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								dist/npmci.test.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | "use strict"; | ||||||
|  | require("typings-global"); | ||||||
|  | var plugins = require("./npmci.plugins"); | ||||||
|  | var npmci_bash_1 = require("./npmci.bash"); | ||||||
|  | var npmci_install_1 = require("./npmci.install"); | ||||||
|  | exports.test = function (versionArg) { | ||||||
|  |     var done = plugins.q.defer(); | ||||||
|  |     npmci_install_1.install(versionArg) | ||||||
|  |         .then(function () { | ||||||
|  |         plugins.beautylog.info("now installing dependencies:"); | ||||||
|  |         npmci_bash_1.bash("npm install"); | ||||||
|  |         plugins.beautylog.info("now starting tests:"); | ||||||
|  |         npmci_bash_1.bash("npm test"); | ||||||
|  |         plugins.beautylog.success("test finished"); | ||||||
|  |         done.resolve(); | ||||||
|  |     }); | ||||||
|  |     return done.promise; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyw4QkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUU3QixZQUFJLEdBQUcsVUFBQyxVQUFVO0lBQ3pCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsdUJBQU8sQ0FBQyxVQUFVLENBQUM7U0FDZCxJQUFJLENBQUM7UUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3ZELGlCQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM5QyxpQkFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQTtJQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7YmFzaH0gZnJvbSBcIi4vbnBtY2kuYmFzaFwiO1xyXG5pbXBvcnQge2luc3RhbGx9IGZyb20gXCIuL25wbWNpLmluc3RhbGxcIjtcclxuXHJcbmV4cG9ydCBsZXQgdGVzdCA9ICh2ZXJzaW9uQXJnKSA9PiB7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgaW5zdGFsbCh2ZXJzaW9uQXJnKVxyXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJub3cgaW5zdGFsbGluZyBkZXBlbmRlbmNpZXM6XCIpO1xyXG4gICAgICAgICAgICBiYXNoKFwibnBtIGluc3RhbGxcIik7XHJcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmluZm8oXCJub3cgc3RhcnRpbmcgdGVzdHM6XCIpO1xyXG4gICAgICAgICAgICBiYXNoKFwibnBtIHRlc3RcIik7XHJcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLnN1Y2Nlc3MoXCJ0ZXN0IGZpbmlzaGVkXCIpO1xyXG4gICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcclxuICAgICAgICB9KVxyXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcclxufSJdfQ== | ||||||
							
								
								
									
										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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBSTNDLFdBQVc7QUFDWCxJQUFJLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBRTdCLGVBQU8sR0FBRztJQUNqQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDL0MsSUFBSSxZQUFZLEdBQUcsZ0dBQWdHLENBQUM7SUFDcEgsR0FBRyxDQUFBLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUN6QixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEMsSUFBSSxXQUFXLEdBQUcsZ0JBQWdCLEdBQUcsY0FBYyxDQUFBO1FBQ25ELEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQ3pCLElBQUksdUJBQXVCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDMUUsSUFBSSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxjQUFjLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBSSx3QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxJQUFJLFlBQVksR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxJQUFJLGdCQUFnQixTQUFBLENBQUM7WUFDckIsRUFBRSxDQUFBLENBQUMsdUJBQXVCLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUM7Z0JBQ3BDLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDJCQUEyQixHQUFHLFlBQVksR0FBRyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUM5RixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsR0FBRyxjQUFjLEdBQUcsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxLQUFLLEVBQUMsd0JBQXdCLEVBQUMsR0FBRyxFQUFDLFlBQVksRUFBQyxFQUFDLENBQUMsQ0FBQztRQUMvSixDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS50cmlnZ2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XHJcbmltcG9ydCB7cHJlcGFyZX0gZnJvbSBcIi4vbnBtY2kucHJlcGFyZVwiO1xyXG5pbXBvcnQge2Jhc2h9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcclxuXHJcbi8vVmFyaWFibGVzXHJcbmxldCB0cmlnZ2VyRW52UHJlZml4ID0gXCJOUE1DSV9UUklHR0VSX1wiO1xyXG5cclxuZXhwb3J0IGxldCB0cmlnZ2VyID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBwbHVnaW5zLmJlYXV0eWxvZy5pbmZvKFwibm93IHJ1bm5pbmcgdHJpZ2dlcnNcIik7XHJcbiAgICBsZXQgdHJpZ2dlclJlZ2V4ID0gL14oW2EtekEtWjAtOVxcLl0qKVxcfChbYS16QS1aMC05XFwuXSopXFx8KFthLXpBLVowLTlcXC5dKilcXHwoW2EtekEtWjAtOVxcLl0qKVxcfD8oW2EtekEtWjAtOVxcLlxcLVxcL10qKS87XHJcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspe1xyXG4gICAgICAgIGxldCBpdGVyYXRvclN0cmluZyA9IGkudG9TdHJpbmcoKTtcclxuICAgICAgICBsZXQgdHJpZ2dlck5hbWUgPSB0cmlnZ2VyRW52UHJlZml4ICsgaXRlcmF0b3JTdHJpbmdcclxuICAgICAgICBpZihwcm9jZXNzLmVudlt0cmlnZ2VyTmFtZV0pe1xyXG4gICAgICAgICAgICBsZXQgdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXkgPSB0cmlnZ2VyUmVnZXguZXhlYyhwcm9jZXNzLmVudlt0cmlnZ2VyTmFtZV0pO1xyXG4gICAgICAgICAgICBsZXQgcmVnZXhEb21haW4gPSB0cmlnZ2VyUmVnZXhSZXN1bHRBcnJheVsxXTtcclxuICAgICAgICAgICAgbGV0IHJlZ2V4UHJvamVjdElkID0gdHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXlbMl07XHJcbiAgICAgICAgICAgIGxldCByZWdleFByb2plY3RUcmlnZ2VyVG9rZW4gPSB0cmlnZ2VyUmVnZXhSZXN1bHRBcnJheVszXTtcclxuICAgICAgICAgICAgbGV0IHJlZ2V4UmVmTmFtZSA9IHRyaWdnZXJSZWdleFJlc3VsdEFycmF5WzRdO1xyXG4gICAgICAgICAgICBsZXQgcmVnZXhUcmlnZ2VyTmFtZTtcclxuICAgICAgICAgICAgaWYodHJpZ2dlclJlZ2V4UmVzdWx0QXJyYXkubGVuZ3RoID09IDYpe1xyXG4gICAgICAgICAgICAgICAgcmVnZXhUcmlnZ2VyTmFtZSA9IHRyaWdnZXJSZWdleFJlc3VsdEFycmF5WzVdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmVnZXhUcmlnZ2VyTmFtZSA9IFwiVW5uYW1lZCBUcmlnZ2VyXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIkZvdW5kIFwiICsgdHJpZ2dlck5hbWUpO1xyXG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJ0cmlnZ2VyaW5nIGJ1aWxkIGZvciByZWYgXCIgKyByZWdleFJlZk5hbWUgKyBcIiBvZiBcIiArIHJlZ2V4VHJpZ2dlck5hbWUpO1xyXG4gICAgICAgICAgICBwbHVnaW5zLnJlcXVlc3QucG9zdChcImh0dHBzOi8vZ2l0bGFiLmNvbS9hcGkvdjMvcHJvamVjdHMvXCIgKyByZWdleFByb2plY3RJZCArIFwiL3RyaWdnZXIvYnVpbGRzXCIsIHtmb3JtOnt0b2tlbjpyZWdleFByb2plY3RUcmlnZ2VyVG9rZW4scmVmOnJlZ2V4UmVmTmFtZX19KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBkb25lLnJlc29sdmUoKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn0iXX0= | ||||||
							
								
								
									
										10
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "npmci", |   "name": "npmci", | ||||||
|   "version": "1.0.4", |   "version": "2.1.2", | ||||||
|   "description": "", |   "description": "", | ||||||
|   "main": "dist/index.js", |   "main": "dist/index.js", | ||||||
|   "bin": { |   "bin": { | ||||||
| @@ -20,11 +20,17 @@ | |||||||
|   }, |   }, | ||||||
|   "homepage": "https://gitlab.com/pushrocks/npmci#README", |   "homepage": "https://gitlab.com/pushrocks/npmci#README", | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "npmts": "^5.1.15" |     "npmts": "^5.1.18" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|  |     "beautylog": "^5.0.6", | ||||||
|     "commander": "^2.9.0", |     "commander": "^2.9.0", | ||||||
|  |     "q": "^1.4.1", | ||||||
|  |     "request": "^2.72.0", | ||||||
|     "shelljs": "^0.7.0", |     "shelljs": "^0.7.0", | ||||||
|  |     "smartfile": "^3.0.10", | ||||||
|  |     "smartssh": "^1.0.4", | ||||||
|  |     "smartstring": "^2.0.4", | ||||||
|     "typings-global": "^1.0.3" |     "typings-global": "^1.0.3" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										69
									
								
								ts/index.ts
									
									
									
									
									
								
							
							
						
						
									
										69
									
								
								ts/index.ts
									
									
									
									
									
								
							| @@ -1,25 +1,56 @@ | |||||||
| #!/usr/bin/env node | #!/usr/bin/env node | ||||||
| import "typings-global" | import "typings-global"; | ||||||
| let shelljs = require("shelljs"); | import * as plugins from "./npmci.plugins"; | ||||||
|  |  | ||||||
| let program = require('commander'); | let packJson = require("../package.json"); | ||||||
| let cmdValue; |  | ||||||
| let nodeValue; |  | ||||||
|  |  | ||||||
| program | plugins.beautylog.info("npmci version: " + packJson.version); | ||||||
|   .version('0.0.1') |  | ||||||
|   .arguments('<cmd> [node]') |  | ||||||
|   .action(function (cmd, node) { |  | ||||||
|      cmdValue = cmd; |  | ||||||
|      nodeValue = node; |  | ||||||
|   }); |  | ||||||
|  |  | ||||||
| program.parse(process.argv); | import {build} from "./npmci.build" | ||||||
|  | import {install} from "./npmci.install"; | ||||||
|  | import {publish} from "./npmci.publish"; | ||||||
|  | import {prepare} from "./npmci.prepare"; | ||||||
|  | import {test} from "./npmci.test"; | ||||||
|  | import {trigger} from "./npmci.trigger"; | ||||||
|  |  | ||||||
| if (typeof cmdValue === 'undefined') { |  | ||||||
|    console.error('no command given!'); | let command; | ||||||
|    process.exit(1); | let commandOption; | ||||||
|  |  | ||||||
|  | plugins.commander | ||||||
|  |     .arguments('<commandarg> [commandoptionarg]') | ||||||
|  |     .action(function (commandarg, commandoptionarg) { | ||||||
|  |         command = commandarg; | ||||||
|  |         commandOption = commandoptionarg; | ||||||
|  |     }); | ||||||
|  |   | ||||||
|  | plugins.commander.parse(process.argv); | ||||||
|  |   | ||||||
|  | if (typeof command === 'undefined') { | ||||||
|  |     console.error('no command given!'); | ||||||
|  |     process.exit(1); | ||||||
| } | } | ||||||
| console.log('command:', cmdValue); |  | ||||||
| console.log('node Version:', nodeValue); | switch (command){ | ||||||
| shelljs.exec("bash -c \"source /usr/local/nvm/nvm.sh && nvm install "+ nodeValue + " nvm alias default " + nodeValue + "\""); |     case "build": | ||||||
|  |         build("commandArg"); | ||||||
|  |         break; | ||||||
|  |     case "install": | ||||||
|  |         install(commandOption); | ||||||
|  |         break; | ||||||
|  |     case "prepare": | ||||||
|  |         prepare(commandOption); | ||||||
|  |         break; | ||||||
|  |     case "publish": | ||||||
|  |         publish(commandOption); | ||||||
|  |         break; | ||||||
|  |     case "test": | ||||||
|  |         test(commandOption); | ||||||
|  |         break; | ||||||
|  |     case "trigger": | ||||||
|  |         trigger(); | ||||||
|  |         break; | ||||||
|  |     default: | ||||||
|  |         break; | ||||||
|  | } | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								ts/npmci.bash.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								ts/npmci.bash.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | import * as plugins from "./npmci.plugins"; | ||||||
|  | export let bash = (commandArg) => { | ||||||
|  |     let exitCode = plugins.shelljs.exec( | ||||||
|  |         "bash -c \"source /usr/local/nvm/nvm.sh &&" + | ||||||
|  |         commandArg + | ||||||
|  |         "\"" | ||||||
|  |     ).code; | ||||||
|  |     if(exitCode !== 0){ | ||||||
|  |         process.exit(1); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										11
									
								
								ts/npmci.build.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								ts/npmci.build.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | import * as plugins from "./npmci.plugins"; | ||||||
|  | import {bash} from "./npmci.bash"; | ||||||
|  |  | ||||||
|  | export let build = function(commandArg){ | ||||||
|  |     let done = plugins.q.defer(); | ||||||
|  |     let repo = new plugins.smartstring.GitRepo(process.env.CI_BUILD_REPO); | ||||||
|  |     plugins.shelljs.exec("docker build -t " + repo.user + "/" + repo.repo + ":latest ."); | ||||||
|  |     done.resolve(); | ||||||
|  |     return done.promise; | ||||||
|  | } | ||||||
							
								
								
									
										3
									
								
								ts/npmci.env.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								ts/npmci.env.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | export let env = function(){ | ||||||
|  |      | ||||||
|  | }; | ||||||
							
								
								
									
										25
									
								
								ts/npmci.install.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								ts/npmci.install.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | import * as plugins from "./npmci.plugins"; | ||||||
|  | import {bash} from "./npmci.bash"; | ||||||
|  |  | ||||||
|  | export let install = (versionArg) => { | ||||||
|  |     let done = plugins.q.defer(); | ||||||
|  |     plugins.beautylog.log("now installing " + "node ".green + ("version " + versionArg).yellow); | ||||||
|  |     let version:string; | ||||||
|  |     if(versionArg == "lts"){ | ||||||
|  |         version = "4"; | ||||||
|  |     } else if(versionArg == "legacy"){ | ||||||
|  |         version = "4.0.0" | ||||||
|  |     } else { | ||||||
|  |         version = versionArg; | ||||||
|  |     }; | ||||||
|  |     bash( | ||||||
|  |         "nvm install " + version + | ||||||
|  |         " && nvm alias default " + version | ||||||
|  |     ); | ||||||
|  |     plugins.beautylog.success("Node version " + version + " successfully installed!"); | ||||||
|  |     bash("node -v"); | ||||||
|  |     bash("npm -v"); | ||||||
|  |     done.resolve(); | ||||||
|  |     return done.promise; | ||||||
|  | } | ||||||
							
								
								
									
										9
									
								
								ts/npmci.plugins.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								ts/npmci.plugins.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | export import beautylog = require("beautylog"); | ||||||
|  | export let commander = require("commander"); | ||||||
|  | export let q = require("q"); | ||||||
|  | export let request = require("request"); | ||||||
|  | export let shelljs = require("shelljs"); | ||||||
|  | export let smartssh = require("smartssh"); | ||||||
|  | export import smartstring = require("smartstring"); | ||||||
|  | export import smartfile = require("smartfile"); | ||||||
							
								
								
									
										57
									
								
								ts/npmci.prepare.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								ts/npmci.prepare.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | import * as plugins from "./npmci.plugins"; | ||||||
|  | import {bash} from "./npmci.bash"; | ||||||
|  |  | ||||||
|  | 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(); | ||||||
|  |     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(); | ||||||
|  |     let ciBuildToken = process.env.CI_BUILD_TOKEN | ||||||
|  |     plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + ciBuildToken + " registry.gitlab.com"); | ||||||
|  |     done.resolve(); | ||||||
|  |     return done.promise; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export let prepare = function(serviceArg:string){ | ||||||
|  |     switch (serviceArg) { | ||||||
|  |         case "npm": | ||||||
|  |             return npm(); | ||||||
|  |         case "docker": | ||||||
|  |             return docker(); | ||||||
|  |         case "docker-gitlab": | ||||||
|  |             return dockerGitlab(); | ||||||
|  |         default: | ||||||
|  |             break; | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										43
									
								
								ts/npmci.publish.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								ts/npmci.publish.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | import * as plugins from "./npmci.plugins"; | ||||||
|  | import {prepare} from "./npmci.prepare"; | ||||||
|  | import {bash} from "./npmci.bash"; | ||||||
|  |  | ||||||
|  | export let publish = (serviceArg:string = "npm") => { | ||||||
|  |     let done = plugins.q.defer(); | ||||||
|  |     switch (serviceArg){ | ||||||
|  |         case "npm":  | ||||||
|  |             publishNpm() | ||||||
|  |                 .then(function(){ | ||||||
|  |                     done.resolve(); | ||||||
|  |                 }); | ||||||
|  |             break; | ||||||
|  |         case "docker": | ||||||
|  |             publishDocker() | ||||||
|  |                 .then(function(){ | ||||||
|  |                     done.resolve(); | ||||||
|  |                 }); | ||||||
|  |     } | ||||||
|  |     return done.promise; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | let publishNpm  = function(){ | ||||||
|  |     let done = plugins.q.defer(); | ||||||
|  |     prepare("npm") | ||||||
|  |         .then(function(){ | ||||||
|  |             bash("npm publish"); | ||||||
|  |             plugins.beautylog.ok("Done!") ; | ||||||
|  |             done.resolve(); | ||||||
|  |         }); | ||||||
|  |    return done.promise; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | let publishDocker = function(){ | ||||||
|  |     let done = plugins.q.defer(); | ||||||
|  |     prepare("docker") | ||||||
|  |         .then(function(){ | ||||||
|  |             bash("docker push"); | ||||||
|  |             done.resolve(); | ||||||
|  |         }); | ||||||
|  |     return done.promise; | ||||||
|  | }; | ||||||
							
								
								
									
										18
									
								
								ts/npmci.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								ts/npmci.test.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | import "typings-global"; | ||||||
|  | import * as plugins from "./npmci.plugins"; | ||||||
|  | import {bash} from "./npmci.bash"; | ||||||
|  | import {install} from "./npmci.install"; | ||||||
|  |  | ||||||
|  | export let test = (versionArg) => { | ||||||
|  |     let done = plugins.q.defer(); | ||||||
|  |     install(versionArg) | ||||||
|  |         .then(function(){ | ||||||
|  |             plugins.beautylog.info("now installing dependencies:"); | ||||||
|  |             bash("npm install"); | ||||||
|  |             plugins.beautylog.info("now starting tests:"); | ||||||
|  |             bash("npm test"); | ||||||
|  |             plugins.beautylog.success("test finished"); | ||||||
|  |             done.resolve(); | ||||||
|  |         }) | ||||||
|  |     return done.promise; | ||||||
|  | } | ||||||
							
								
								
									
										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