Compare commits
	
		
			52 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 821747510f | |||
| e13624fc26 | |||
| 02e363d105 | |||
| 47aac2f7c5 | |||
| 832031a02a | |||
| 73b4057dc9 | |||
| fcd6b81668 | |||
| b84152aac2 | |||
| 198b35b0c6 | |||
| 334713a344 | |||
| 36c4a676c7 | |||
| 0571051009 | |||
| 0d4fd9dbba | |||
| 1e9c2c850c | |||
| 2ae6fad2a1 | |||
| d3dcc2f8ab | |||
| c718593162 | |||
| c9ba850b4b | |||
| faef4da6be | |||
| 3300f177ca | |||
| b2d56e59bb | |||
| ee54cbf78d | |||
| e3c1ac1897 | |||
| ea01b87949 | |||
| 229c3ae27b | |||
| 19e3aa3721 | |||
| a965cf38c8 | |||
| 7924ba26a2 | |||
| 361d45e086 | |||
| cb7cb852ea | |||
| 61720f47be | |||
| b435fc6bdf | |||
| 70ad41ab86 | |||
| d67109b4bc | |||
| a29e04f9e3 | |||
| 9634ca3b4d | |||
| d2e7488868 | |||
| bb44333d70 | |||
| 87f6adeda4 | |||
| 6334396bfc | |||
| 7a33252f2f | |||
| b7068b7b53 | |||
| 1e5b56a388 | |||
| 786de4ae18 | |||
| 62ee8a26a4 | |||
| f544aef054 | |||
| cb6867dbde | |||
| 5316740a1a | |||
| 06bc1e59f8 | |||
| bd237ccdab | |||
| f51b556fca | |||
| 9ce29a7c24 | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +1,4 @@ | ||||
| node_modules/ | ||||
| coverage/ | ||||
| docs/ | ||||
| config.json | ||||
| @@ -1,10 +1,14 @@ | ||||
| image: hosttoday/ht-docker-node:npmci | ||||
| image: hosttoday/ht-docker-node:lts | ||||
|  | ||||
| stages: | ||||
| - test | ||||
| - release | ||||
| - trigger | ||||
|  | ||||
|  | ||||
| before_script: | ||||
|   - npm install -g npmci | ||||
|  | ||||
| testLTS: | ||||
|   stage: test | ||||
|   script: | ||||
| @@ -12,10 +16,6 @@ testLTS: | ||||
|   tags: | ||||
|     - docker | ||||
|     | ||||
| before_script: | ||||
|   - npm uninstall -g npmci | ||||
|   - npm install -g npmci | ||||
|     | ||||
| testSTABLE: | ||||
|   stage: test | ||||
|   script: | ||||
|   | ||||
							
								
								
									
										3
									
								
								dist/npmci.bash.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/npmci.bash.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +1,3 @@ | ||||
| import "typings-global"; | ||||
| export declare let bash: (commandArg: any) => void; | ||||
| export declare let bash: (commandArg: string, retryArg?: number) => void; | ||||
| export declare let bashBare: (commandArg: any, retryArg?: number) => void; | ||||
|   | ||||
							
								
								
									
										50
									
								
								dist/npmci.bash.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										50
									
								
								dist/npmci.bash.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										18
									
								
								dist/npmci.build.docker.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								dist/npmci.build.docker.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,10 @@ | ||||
| export declare let build: () => any; | ||||
| export declare let readDockerfiles: () => any; | ||||
| export declare let getDockerImagesGitlab: (sortableArrayArg: Dockerfile[]) => void; | ||||
| export declare let sortDockerfiles: (sortableArrayArg: Dockerfile[]) => any; | ||||
| export declare let mapDockerfiles: (sortedArray: Dockerfile[]) => any; | ||||
| export declare let buildDockerfiles: (sortedArrayArg: Dockerfile[]) => any; | ||||
| export declare let pushDockerfiles: (sortedArrayArg: Dockerfile[]) => any; | ||||
| export declare class Dockerfile { | ||||
|     filePath: string; | ||||
|     repo: string; | ||||
| @@ -6,13 +12,21 @@ export declare class Dockerfile { | ||||
|     cleanTag: string; | ||||
|     buildTag: string; | ||||
|     content: string; | ||||
|     patchedContent: string; | ||||
|     baseImage: string; | ||||
|     localBaseImageDependent: boolean; | ||||
|     localBaseDockerfile: Dockerfile; | ||||
|     constructor(options: { | ||||
|         filePath?: string; | ||||
|         fileContents?: string | Buffer; | ||||
|         read?: boolean; | ||||
|     }); | ||||
|     build(): void; | ||||
|     push(): void; | ||||
|     build(): any; | ||||
|     push(): any; | ||||
|     patchContents(): any; | ||||
|     restoreContents(): any; | ||||
| } | ||||
| export declare let dockerFileVersion: (dockerfileNameArg: string) => string; | ||||
| export declare let dockerBaseImage: (dockerfileContentArg: string) => string; | ||||
| export declare let dockerTag: (repoArg: string, versionArg: string) => string; | ||||
| export declare let cleanTagsArrayFunction: (dockerfileArrayArg: Dockerfile[], trackingArrayArg: Dockerfile[]) => string[]; | ||||
|   | ||||
							
								
								
									
										197
									
								
								dist/npmci.build.docker.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										197
									
								
								dist/npmci.build.docker.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										6
									
								
								dist/npmci.env.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								dist/npmci.env.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -2,8 +2,10 @@ 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 buildStage: string; | ||||
| export declare let dockerRegistry: any; | ||||
| export declare let dockerFilesBuilt: Dockerfile[]; | ||||
| export declare let dockerFiles: Dockerfile[]; | ||||
| export declare let config: any; | ||||
| export declare let configStore: () => void; | ||||
| export declare let configLoad: () => void; | ||||
|   | ||||
							
								
								
									
										24
									
								
								dist/npmci.env.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								dist/npmci.env.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +1,30 @@ | ||||
| "use strict"; | ||||
| require("typings-global"); | ||||
| var plugins = require("./npmci.plugins"); | ||||
| var paths = require("./npmci.paths"); | ||||
| var smartstring_1 = require("smartstring"); | ||||
| exports.repo = new smartstring_1.GitRepo(process.env.CI_BUILD_REPO); | ||||
| exports.buildStage = process.env.CI_BUILD_STAGE; | ||||
| exports.dockerFilesBuilt = []; | ||||
| exports.dockerFiles = []; | ||||
| exports.configStore = function () { | ||||
|     plugins.smartfile.memory.toFsSync(JSON.stringify(exports.config), { | ||||
|         fileName: "config.json", | ||||
|         filePath: paths.NpmciPackageRoot | ||||
|     }); | ||||
| }; | ||||
| exports.configLoad = function () { | ||||
|     try { | ||||
|         exports.config = plugins.smartfile.local.toObjectSync(paths.NpmciPackageConfig, "json"); | ||||
|     } | ||||
|     catch (err) { | ||||
|         exports.config = {}; | ||||
|         exports.configStore(); | ||||
|         plugins.beautylog.log("config inititialized!"); | ||||
|     } | ||||
|     exports.config.dockerRegistry ? exports.dockerRegistry = exports.config.dockerRegistry : void (0); | ||||
|     exports.config.dockerFilesBuilt ? exports.dockerFilesBuilt = exports.config.dockerFilesBuilt : void (0); | ||||
| }; | ||||
| exports.configLoad(); | ||||
|  | ||||
| //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBRXhCLDRCQUFzQixhQUFhLENBQUMsQ0FBQTtBQUd6QixZQUFJLEdBQUcsSUFBSSxxQkFBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFLOUMsd0JBQWdCLEdBQWdCLEVBQUUsQ0FBQztBQUNuQyxtQkFBVyxHQUFnQixFQUFFLENBQUMiLCJmaWxlIjoibnBtY2kuZW52LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xuaW1wb3J0IHtHaXRSZXBvfSBmcm9tIFwic21hcnRzdHJpbmdcIjtcbmltcG9ydCB7RG9ja2VyZmlsZX0gZnJvbSBcIi4vbnBtY2kuYnVpbGQuZG9ja2VyXCJcblxuZXhwb3J0IGxldCByZXBvID0gbmV3IEdpdFJlcG8ocHJvY2Vzcy5lbnYuQ0lfQlVJTERfUkVQTyk7XG5leHBvcnQgbGV0IGRvY2tlclRlc3RUYWc6c3RyaW5nO1xuZXhwb3J0IGxldCBkb2NrZXJSZWxlYXNlVGFnOnN0cmluZztcblxuZXhwb3J0IGxldCBkb2NrZXJSZWdpc3RyeTsgLy8gd2lsbCBiZSBzZXQgYnkgbnBtY2kucHJlcGFyZVxuZXhwb3J0IGxldCBkb2NrZXJGaWxlc0J1aWx0OkRvY2tlcmZpbGVbXSA9IFtdO1xuZXhwb3J0IGxldCBkb2NrZXJGaWxlczpEb2NrZXJmaWxlW10gPSBbXTtcblxuIl19 | ||||
| //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLmVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3hCLElBQVksT0FBTyxXQUFNLGlCQUFpQixDQUFDLENBQUE7QUFDM0MsSUFBWSxLQUFLLFdBQU0sZUFBZSxDQUFDLENBQUE7QUFDdkMsNEJBQXNCLGFBQWEsQ0FBQyxDQUFBO0FBR3pCLFlBQUksR0FBVyxJQUFJLHFCQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV0RCxrQkFBVSxHQUFVLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO0FBSS9DLHdCQUFnQixHQUFnQixFQUFFLENBQUM7QUFDbkMsbUJBQVcsR0FBZ0IsRUFBRSxDQUFDO0FBSTlCLG1CQUFXLEdBQUc7SUFDckIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQU0sQ0FBQyxFQUN0QjtRQUNJLFFBQVEsRUFBQyxhQUFhO1FBQ3RCLFFBQVEsRUFBQyxLQUFLLENBQUMsZ0JBQWdCO0tBQ2xDLENBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQTtBQUVVLGtCQUFVLEdBQUc7SUFDcEIsSUFBSSxDQUFDO1FBQ0QsY0FBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkYsQ0FDQTtJQUFBLEtBQUssQ0FBQSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUM7UUFDUCxjQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osbUJBQVcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsY0FBTSxDQUFDLGNBQWMsR0FBRyxzQkFBYyxHQUFHLGNBQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLGNBQU0sQ0FBQyxnQkFBZ0IsR0FBRyx3QkFBZ0IsR0FBRyxjQUFNLENBQUMsZ0JBQWdCLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25GLENBQUMsQ0FBQTtBQUNELGtCQUFVLEVBQUUsQ0FBQyIsImZpbGUiOiJucG1jaS5lbnYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5pbXBvcnQgKiBhcyBwYXRocyBmcm9tIFwiLi9ucG1jaS5wYXRoc1wiO1xuaW1wb3J0IHtHaXRSZXBvfSBmcm9tIFwic21hcnRzdHJpbmdcIjtcbmltcG9ydCB7RG9ja2VyZmlsZX0gZnJvbSBcIi4vbnBtY2kuYnVpbGQuZG9ja2VyXCJcblxuZXhwb3J0IGxldCByZXBvOkdpdFJlcG8gPSBuZXcgR2l0UmVwbyhwcm9jZXNzLmVudi5DSV9CVUlMRF9SRVBPKTtcblxuZXhwb3J0IGxldCBidWlsZFN0YWdlOnN0cmluZyA9IHByb2Nlc3MuZW52LkNJX0JVSUxEX1NUQUdFO1xuXG4vLyBoYW5kbGluZyBjb25maWcgYmV0d2VlbiBjb21tYW5kc1xuZXhwb3J0IGxldCBkb2NrZXJSZWdpc3RyeTsgLy8gd2lsbCBiZSBzZXQgYnkgbnBtY2kucHJlcGFyZVxuZXhwb3J0IGxldCBkb2NrZXJGaWxlc0J1aWx0OkRvY2tlcmZpbGVbXSA9IFtdO1xuZXhwb3J0IGxldCBkb2NrZXJGaWxlczpEb2NrZXJmaWxlW10gPSBbXTtcblxuZXhwb3J0IGxldCBjb25maWc7XG5cbmV4cG9ydCBsZXQgY29uZmlnU3RvcmUgPSAoKSA9PiB7XG4gICAgcGx1Z2lucy5zbWFydGZpbGUubWVtb3J5LnRvRnNTeW5jKFxuICAgICAgICBKU09OLnN0cmluZ2lmeShjb25maWcpLFxuICAgICAgICB7XG4gICAgICAgICAgICBmaWxlTmFtZTpcImNvbmZpZy5qc29uXCIsXG4gICAgICAgICAgICBmaWxlUGF0aDpwYXRocy5OcG1jaVBhY2thZ2VSb290XG4gICAgICAgIH1cbiAgICApO1xufVxuXG5leHBvcnQgbGV0IGNvbmZpZ0xvYWQgPSAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uZmlnID0gcGx1Z2lucy5zbWFydGZpbGUubG9jYWwudG9PYmplY3RTeW5jKHBhdGhzLk5wbWNpUGFja2FnZUNvbmZpZyxcImpzb25cIik7XG4gICAgfVxuICAgIGNhdGNoKGVycil7XG4gICAgICAgIGNvbmZpZyA9IHt9O1xuICAgICAgICBjb25maWdTdG9yZSgpO1xuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJjb25maWcgaW5pdGl0aWFsaXplZCFcIik7XG4gICAgfVxuICAgIFxuICAgIGNvbmZpZy5kb2NrZXJSZWdpc3RyeSA/IGRvY2tlclJlZ2lzdHJ5ID0gY29uZmlnLmRvY2tlclJlZ2lzdHJ5IDogdm9pZCgwKTtcbiAgICBjb25maWcuZG9ja2VyRmlsZXNCdWlsdCA/IGRvY2tlckZpbGVzQnVpbHQgPSBjb25maWcuZG9ja2VyRmlsZXNCdWlsdCA6IHZvaWQoMCk7XG59XG5jb25maWdMb2FkKCk7Il19 | ||||
|   | ||||
							
								
								
									
										0
									
								
								dist/npmci.get.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										0
									
								
								dist/npmci.get.d.ts
									
									
									
									
										vendored
									
									
								
							
							
								
								
									
										3
									
								
								dist/npmci.get.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/npmci.get.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
|  | ||||
|  | ||||
| //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJucG1jaS5nZXQuanMiLCJzb3VyY2VzQ29udGVudCI6W119 | ||||
							
								
								
									
										4
									
								
								dist/npmci.paths.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								dist/npmci.paths.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| import "typings-global"; | ||||
| export declare let cwd: string; | ||||
| export declare let NpmciPackageRoot: string; | ||||
| export declare let NpmciPackageConfig: string; | ||||
							
								
								
									
										8
									
								
								dist/npmci.paths.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								dist/npmci.paths.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| "use strict"; | ||||
| require("typings-global"); | ||||
| var plugins = require("./npmci.plugins"); | ||||
| exports.cwd = process.cwd(); | ||||
| exports.NpmciPackageRoot = plugins.path.join(__dirname, "../"); | ||||
| exports.NpmciPackageConfig = plugins.path.join(exports.NpmciPackageRoot, "./config.json"); | ||||
|  | ||||
| //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBhdGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0saUJBQWlCLENBQUMsQ0FBQTtBQUVoQyxXQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRXBCLHdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUN0RCwwQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBZ0IsRUFBQyxlQUFlLENBQUMsQ0FBQSIsImZpbGUiOiJucG1jaS5wYXRocy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcblxuZXhwb3J0IGxldCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xuXG5leHBvcnQgbGV0IE5wbWNpUGFja2FnZVJvb3QgPSBwbHVnaW5zLnBhdGguam9pbihfX2Rpcm5hbWUsXCIuLi9cIik7XG5leHBvcnQgbGV0IE5wbWNpUGFja2FnZUNvbmZpZyA9IHBsdWdpbnMucGF0aC5qb2luKE5wbWNpUGFja2FnZVJvb3QsXCIuL2NvbmZpZy5qc29uXCIpIl19 | ||||
							
								
								
									
										1
									
								
								dist/npmci.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								dist/npmci.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -10,3 +10,4 @@ export declare let shelljs: any; | ||||
| export import smartssh = require("smartssh"); | ||||
| export import smartstring = require("smartstring"); | ||||
| export import smartfile = require("smartfile"); | ||||
| export declare let through2: any; | ||||
|   | ||||
							
								
								
									
										3
									
								
								dist/npmci.plugins.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/npmci.plugins.js
									
									
									
									
										vendored
									
									
								
							| @@ -11,5 +11,6 @@ exports.shelljs = require("shelljs"); | ||||
| exports.smartssh = require("smartssh"); | ||||
| exports.smartstring = require("smartstring"); | ||||
| exports.smartfile = require("smartfile"); | ||||
| exports.through2 = require("through2"); | ||||
|  | ||||
| //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsWUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixvQkFBWSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNyQyxZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDMUIsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLGVBQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsZ0JBQVEsV0FBVyxVQUFVLENBQUMsQ0FBQztBQUMvQixtQkFBVyxXQUFXLGFBQWEsQ0FBQyxDQUFDO0FBQ3JDLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5leHBvcnQgaW1wb3J0IGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XG5leHBvcnQgbGV0IGNvbW1hbmRlciA9IHJlcXVpcmUoXCJjb21tYW5kZXJcIik7XG5leHBvcnQgbGV0IGd1bHAgPSByZXF1aXJlKFwiZ3VscFwiKTtcbmV4cG9ydCBsZXQgZ3VscEZ1bmN0aW9uID0gcmVxdWlyZShcImd1bHAtZnVuY3Rpb25cIik7XG5leHBvcnQgaW1wb3J0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmV4cG9ydCBsZXQgcSA9IHJlcXVpcmUoXCJxXCIpO1xuZXhwb3J0IGxldCByZXF1ZXN0ID0gcmVxdWlyZShcInJlcXVlc3RcIik7XG5leHBvcnQgbGV0IHNoZWxsanMgPSByZXF1aXJlKFwic2hlbGxqc1wiKTtcbmV4cG9ydCBpbXBvcnQgc21hcnRzc2ggPSByZXF1aXJlKFwic21hcnRzc2hcIik7XG5leHBvcnQgaW1wb3J0IHNtYXJ0c3RyaW5nID0gcmVxdWlyZShcInNtYXJ0c3RyaW5nXCIpO1xuZXhwb3J0IGltcG9ydCBzbWFydGZpbGUgPSByZXF1aXJlKFwic21hcnRmaWxlXCIpOyJdfQ== | ||||
| //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsWUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixvQkFBWSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNyQyxZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDMUIsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLGVBQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsZ0JBQVEsV0FBVyxVQUFVLENBQUMsQ0FBQztBQUMvQixtQkFBVyxXQUFXLGFBQWEsQ0FBQyxDQUFDO0FBQ3JDLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsZ0JBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5leHBvcnQgaW1wb3J0IGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XG5leHBvcnQgbGV0IGNvbW1hbmRlciA9IHJlcXVpcmUoXCJjb21tYW5kZXJcIik7XG5leHBvcnQgbGV0IGd1bHAgPSByZXF1aXJlKFwiZ3VscFwiKTtcbmV4cG9ydCBsZXQgZ3VscEZ1bmN0aW9uID0gcmVxdWlyZShcImd1bHAtZnVuY3Rpb25cIik7XG5leHBvcnQgaW1wb3J0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmV4cG9ydCBsZXQgcSA9IHJlcXVpcmUoXCJxXCIpO1xuZXhwb3J0IGxldCByZXF1ZXN0ID0gcmVxdWlyZShcInJlcXVlc3RcIik7XG5leHBvcnQgbGV0IHNoZWxsanMgPSByZXF1aXJlKFwic2hlbGxqc1wiKTtcbmV4cG9ydCBpbXBvcnQgc21hcnRzc2ggPSByZXF1aXJlKFwic21hcnRzc2hcIik7XG5leHBvcnQgaW1wb3J0IHNtYXJ0c3RyaW5nID0gcmVxdWlyZShcInNtYXJ0c3RyaW5nXCIpO1xuZXhwb3J0IGltcG9ydCBzbWFydGZpbGUgPSByZXF1aXJlKFwic21hcnRmaWxlXCIpO1xuZXhwb3J0IGxldCB0aHJvdWdoMiA9IHJlcXVpcmUoXCJ0aHJvdWdoMlwiKTsiXX0= | ||||
|   | ||||
							
								
								
									
										9
									
								
								dist/npmci.prepare.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								dist/npmci.prepare.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										15
									
								
								dist/npmci.publish.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								dist/npmci.publish.js
									
									
									
									
										vendored
									
									
								
							| @@ -3,7 +3,7 @@ require("typings-global"); | ||||
| var plugins = require("./npmci.plugins"); | ||||
| var npmci_prepare_1 = require("./npmci.prepare"); | ||||
| var npmci_bash_1 = require("./npmci.bash"); | ||||
| var NpmciEnv = require("./npmci.env"); | ||||
| var NpmciBuildDocker = require("./npmci.build.docker"); | ||||
| exports.publish = function (serviceArg) { | ||||
|     if (serviceArg === void 0) { serviceArg = "npm"; } | ||||
|     switch (serviceArg) { | ||||
| @@ -25,18 +25,9 @@ var publishNpm = function () { | ||||
| }; | ||||
| 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(); | ||||
|     }); | ||||
|     NpmciBuildDocker.readDockerfiles(); | ||||
|     done.resolve(); | ||||
|     return done.promise; | ||||
| }; | ||||
|  | ||||
| //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUNsQyxJQUFZLFFBQVEsV0FBTSxhQUFhLENBQUMsQ0FBQTtBQUU3QixlQUFPLEdBQUcsVUFBQyxVQUF5QjtJQUF6QiwwQkFBeUIsR0FBekIsa0JBQXlCO0lBQzNDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7UUFDaEIsS0FBSyxLQUFLO1lBQ04sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssUUFBUTtZQUNULE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMvQixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsSUFBSSxVQUFVLEdBQUk7SUFDZCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLHVCQUFPLENBQUMsS0FBSyxDQUFDO1NBQ1QsSUFBSSxDQUFDO1FBQ0YsaUJBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBRTtRQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN2QixDQUFDLENBQUE7QUFFRCxJQUFJLGFBQWEsR0FBRztJQUNoQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsVUFBUyxhQUFhO1FBQ3BELGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLElBQUksaUJBQWlCLEdBQUc7SUFDcEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFVBQVMsYUFBYTtRQUNwRCxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUEiLCJmaWxlIjoibnBtY2kucHVibGlzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcbmltcG9ydCB7cHJlcGFyZX0gZnJvbSBcIi4vbnBtY2kucHJlcGFyZVwiO1xuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XG5pbXBvcnQgKiBhcyBOcG1jaUVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcblxuZXhwb3J0IGxldCBwdWJsaXNoID0gKHNlcnZpY2VBcmc6c3RyaW5nID0gXCJucG1cIikgPT4ge1xuICAgIHN3aXRjaCAoc2VydmljZUFyZyl7XG4gICAgICAgIGNhc2UgXCJucG1cIjogXG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaE5wbSgpO1xuICAgICAgICBjYXNlIFwiZG9ja2VyXCI6XG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaERvY2tlcigpO1xuICAgIH1cbn07XG5cbmxldCBwdWJsaXNoTnBtICA9IGZ1bmN0aW9uKCl7XG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICBwcmVwYXJlKFwibnBtXCIpXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBiYXNoKFwibnBtIHB1Ymxpc2hcIik7XG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5vayhcIkRvbmUhXCIpIDtcbiAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgICAgICB9KTtcbiAgIHJldHVybiBkb25lLnByb21pc2U7XG59XG5cbmxldCBwdWJsaXNoRG9ja2VyID0gZnVuY3Rpb24oKXtcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgIE5wbWNpRW52LmRvY2tlckZpbGVzQnVpbHQuZm9yRWFjaChmdW5jdGlvbihkb2NrZXJmaWxlQXJnKXtcbiAgICAgICAgZG9ja2VyZmlsZUFyZy5wdXNoKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcbn07XG5cbmxldCBwdWJsaXNoRG9ja2VyVGVzdCA9IGZ1bmN0aW9uKCl7XG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICBOcG1jaUVudi5kb2NrZXJGaWxlc0J1aWx0LmZvckVhY2goZnVuY3Rpb24oZG9ja2VyZmlsZUFyZyl7XG4gICAgICAgIGRvY2tlcmZpbGVBcmcucHVzaCgpO1xuICAgIH0pO1xuICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgIHJldHVybiBkb25lLnByb21pc2U7XG59Il19 | ||||
| //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUVsQyxJQUFZLGdCQUFnQixXQUFNLHNCQUVsQyxDQUFDLENBRnVEO0FBRTdDLGVBQU8sR0FBRyxVQUFDLFVBQXlCO0lBQXpCLDBCQUF5QixHQUF6QixrQkFBeUI7SUFDM0MsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQztRQUNoQixLQUFLLEtBQUs7WUFDTixNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEIsS0FBSyxRQUFRO1lBQ1QsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixJQUFJLFVBQVUsR0FBSTtJQUNkLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsdUJBQU8sQ0FBQyxLQUFLLENBQUM7U0FDVCxJQUFJLENBQUM7UUFDRixpQkFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFFO1FBQy9CLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQTtBQUVELElBQUksYUFBYSxHQUFHO0lBQ2hCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLENBQUE7SUFHdEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwiZmlsZSI6Im5wbWNpLnB1Ymxpc2guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9ucG1jaS5wbHVnaW5zXCI7XG5pbXBvcnQge3ByZXBhcmV9IGZyb20gXCIuL25wbWNpLnByZXBhcmVcIjtcbmltcG9ydCB7YmFzaH0gZnJvbSBcIi4vbnBtY2kuYmFzaFwiO1xuaW1wb3J0ICogYXMgTnBtY2lFbnYgZnJvbSBcIi4vbnBtY2kuZW52XCI7XG5pbXBvcnQgKiBhcyBOcG1jaUJ1aWxkRG9ja2VyIGZyb20gXCIuL25wbWNpLmJ1aWxkLmRvY2tlclwiXG5cbmV4cG9ydCBsZXQgcHVibGlzaCA9IChzZXJ2aWNlQXJnOnN0cmluZyA9IFwibnBtXCIpID0+IHtcbiAgICBzd2l0Y2ggKHNlcnZpY2VBcmcpe1xuICAgICAgICBjYXNlIFwibnBtXCI6IFxuICAgICAgICAgICAgcmV0dXJuIHB1Ymxpc2hOcG0oKTtcbiAgICAgICAgY2FzZSBcImRvY2tlclwiOlxuICAgICAgICAgICAgcmV0dXJuIHB1Ymxpc2hEb2NrZXIoKTtcbiAgICB9XG59O1xuXG5sZXQgcHVibGlzaE5wbSAgPSBmdW5jdGlvbigpe1xuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgcHJlcGFyZShcIm5wbVwiKVxuICAgICAgICAudGhlbihmdW5jdGlvbigpe1xuICAgICAgICAgICAgYmFzaChcIm5wbSBwdWJsaXNoXCIpO1xuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cub2soXCJEb25lIVwiKSA7XG4gICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcbiAgICAgICAgfSk7XG4gICByZXR1cm4gZG9uZS5wcm9taXNlO1xufVxuXG5sZXQgcHVibGlzaERvY2tlciA9IGZ1bmN0aW9uKCl7XG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICAgICAgTnBtY2lCdWlsZERvY2tlci5yZWFkRG9ja2VyZmlsZXMoKVxuICAgICAgICAgICAgXG4gICAgICAgIFxuICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgIHJldHVybiBkb25lLnByb21pc2U7XG59OyJdfQ== | ||||
|   | ||||
							
								
								
									
										1
									
								
								dist/npmci.test.docker.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								dist/npmci.test.docker.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| export declare let testDocker: () => void; | ||||
							
								
								
									
										5
									
								
								dist/npmci.test.docker.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								dist/npmci.test.docker.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| "use strict"; | ||||
| exports.testDocker = function () { | ||||
| }; | ||||
|  | ||||
| //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnRlc3QuZG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFLVyxrQkFBVSxHQUFHO0FBRXhCLENBQUMsQ0FBQyIsImZpbGUiOiJucG1jaS50ZXN0LmRvY2tlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiXG5pbXBvcnQgKiBhcyBOcG1jaUVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcbmltcG9ydCB7YmFzaEJhcmV9IGZyb20gXCIuL25wbWNpLmJhc2hcIjtcbmltcG9ydCAqIGFzIE5wbWNpQnVpbGREb2NrZXIgZnJvbSBcIi4vbnBtY2kuYnVpbGQuZG9ja2VyXCI7XG5cbmV4cG9ydCBsZXQgdGVzdERvY2tlciA9ICgpID0+IHtcblxufTsiXX0= | ||||
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "npmci", | ||||
|   "version": "2.1.13", | ||||
|   "version": "2.1.31", | ||||
|   "description": "", | ||||
|   "main": "dist/index.js", | ||||
|   "bin": { | ||||
| @@ -20,7 +20,9 @@ | ||||
|   }, | ||||
|   "homepage": "https://gitlab.com/pushrocks/npmci#README", | ||||
|   "devDependencies": { | ||||
|     "npmts": "^5.2.1" | ||||
|     "npmts": "^5.2.1", | ||||
|     "should": "^9.0.0", | ||||
|     "typings-test": "^1.0.1" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "beautylog": "^5.0.8", | ||||
| @@ -32,7 +34,7 @@ | ||||
|     "shelljs": "^0.7.0", | ||||
|     "smartfile": "^3.0.10", | ||||
|     "smartssh": "^1.0.5", | ||||
|     "smartstring": "^2.0.4", | ||||
|     "smartstring": "^2.0.6", | ||||
|     "through2": "^2.0.1", | ||||
|     "typings-global": "^1.0.3" | ||||
|   } | ||||
|   | ||||
							
								
								
									
										2
									
								
								test/assets/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/assets/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| FROM ubuntu | ||||
| RUN apt-get update | ||||
							
								
								
									
										2
									
								
								test/assets/Dockerfile_sometag1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/assets/Dockerfile_sometag1
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| FROM mygroup/myrepo:sometag2 | ||||
| RUN apt-get update | ||||
							
								
								
									
										1
									
								
								test/assets/Dockerfile_sometag2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								test/assets/Dockerfile_sometag2
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| FROM mygroup/myrepo:latest | ||||
							
								
								
									
										2
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| import "typings-test"; | ||||
| import "should"; | ||||
							
								
								
									
										78
									
								
								test/test.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								test/test.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										78
									
								
								test/test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								test/test.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| import "typings-test"; | ||||
| import "should"; | ||||
| import path = require("path"); | ||||
| import * as beautylog from "beautylog" | ||||
| //set up environment | ||||
| process.env.CI_BUILD_REPO = "https://yyyyyy:xxxxxxxx@gitlab.com/mygroup/myrepo.git"; | ||||
| process.env.NPMTS_TEST = "true"; | ||||
| process.cwd = () => { | ||||
|     return path.join(__dirname,"assets/"); | ||||
| }; | ||||
|  | ||||
| //require NPMCI files | ||||
| import NpmciBuildDocker = require("../dist/npmci.build.docker"); | ||||
| import NpmciPublish = require("../dist/npmci.publish"); | ||||
| import NpmciTest = require("../dist/npmci.test"); | ||||
|  | ||||
|  | ||||
| let dockerfile1:NpmciBuildDocker.Dockerfile; | ||||
| let dockerfile2:NpmciBuildDocker.Dockerfile; | ||||
| let sortableArray:NpmciBuildDocker.Dockerfile[]; | ||||
|  | ||||
| describe("NPMCI",function(){ | ||||
|     describe("build.docker",function(){ | ||||
|         it("should return valid Dockerfiles",function(){ | ||||
|             dockerfile1 = new NpmciBuildDocker.Dockerfile({filePath:"./Dockerfile",read:true}); | ||||
|             dockerfile2 = new NpmciBuildDocker.Dockerfile({filePath:"./Dockerfile_sometag1",read:true}); | ||||
|             dockerfile1.version.should.equal("latest"); | ||||
|             dockerfile2.version.should.equal("sometag1"); | ||||
|         }); | ||||
|         it("should read a directory of Dockerfiles",function(done){ | ||||
|             NpmciBuildDocker.readDockerfiles() | ||||
|                 .then(function(readDockerfilesArrayArg:NpmciBuildDocker.Dockerfile[]){ | ||||
|                     readDockerfilesArrayArg[1].version.should.equal("sometag1"); | ||||
|                     sortableArray = readDockerfilesArrayArg | ||||
|                     done(); | ||||
|                 }); | ||||
|         }) | ||||
|         it("should sort an array of Dockerfiles",function(done){ | ||||
|             NpmciBuildDocker.sortDockerfiles(sortableArray) | ||||
|                 .then(function(sortedArrayArg:NpmciBuildDocker.Dockerfile[]){ | ||||
|                     beautylog.success("final result"); | ||||
|                     console.log(sortedArrayArg); | ||||
|                     done(); | ||||
|                 }) | ||||
|         }); | ||||
|         it("should correctly chain Dockerfile handling",function(done){ | ||||
|             NpmciBuildDocker.build() | ||||
|                 .then(()=>{ | ||||
|                     done(); | ||||
|                 }); | ||||
|         }) | ||||
|     }); | ||||
|     describe(".publish.docker",function(){ | ||||
|         it("should publish all built Dockerfiles",function(done){ | ||||
|             NpmciPublish.publish("docker") | ||||
|                 .then(() => { | ||||
|                     done(); | ||||
|                 });; | ||||
|         }); | ||||
|     }); | ||||
|     describe(".test.npm",function(){ | ||||
|         it("should source nvm using bash and install a specific node version",function(done){ | ||||
|             NpmciTest.test("legacy") | ||||
|                 .then(() => { | ||||
|                     return NpmciTest.test("lts"); | ||||
|                 }) | ||||
|                 .then(() => { | ||||
|                     return NpmciTest.test("stable"); | ||||
|                 }) | ||||
|                 .then(() => { | ||||
|                      return NpmciTest.test("docker"); | ||||
|                 }) | ||||
|                 .then(() => { | ||||
|                     done(); | ||||
|                 }); | ||||
|         }) | ||||
|     }); | ||||
| }) | ||||
| @@ -1,12 +1,41 @@ | ||||
| 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); | ||||
| export let bash = (commandArg:string,retryArg = 2) => { | ||||
|     if(!process.env.NPMTS_TEST){ | ||||
|         for (let i = 0; i <= retryArg; i++){ | ||||
|             let exitCode:number = plugins.shelljs.exec( | ||||
|                 "bash -c \"source /usr/local/nvm/nvm.sh &&" + | ||||
|                 commandArg + | ||||
|                 "\"" | ||||
|             ).code; | ||||
|             if(exitCode !== 0 && i == retryArg){ | ||||
|                 process.exit(1); | ||||
|             } else if(exitCode == 0){ | ||||
|                 i = retryArg + 1; // if everything works out ok retrials are not wanted | ||||
|             } else { | ||||
|                 plugins.beautylog.warn("Something went wrong! Exit Code: " + exitCode.toString); | ||||
|                 plugins.beautylog.info("Retry " + (i + 1).toString() + " of " +  retryArg.toString()); | ||||
|             } | ||||
|         } | ||||
|     } else { | ||||
|         plugins.beautylog.log("ShellExec would be: " + commandArg.blue) | ||||
|     } | ||||
| } | ||||
|  | ||||
| export let bashBare = (commandArg,retryArg = 2) => { | ||||
|     if (!process.env.NPMTS_TEST){ | ||||
|         for(let i = 0; i <= retryArg; i++){ | ||||
|             let exitCode:number = plugins.shelljs.exec(commandArg).code; | ||||
|             if(exitCode !== 0 && i == retryArg){ | ||||
|                 process.exit(1); | ||||
|             } else if(exitCode == 0){ | ||||
|                 i = retryArg + 1; // if everything works out ok retrials are not wanted | ||||
|             } else { | ||||
|                 plugins.beautylog.warn("Something went wrong! Exit Code: " + exitCode.toString); | ||||
|                 plugins.beautylog.info("Retry " + (i + 1).toString() + " of " +  retryArg.toString()); | ||||
|             } | ||||
|         } | ||||
|     } else { | ||||
|         plugins.beautylog.log("ShellExec would be: " + commandArg.blue) | ||||
|     } | ||||
| } | ||||
| @@ -1,68 +1,97 @@ | ||||
| import * as plugins from "./npmci.plugins" | ||||
| import * as NpmciEnv from "./npmci.env"; | ||||
|  | ||||
| import {bashBare} from "./npmci.bash"; | ||||
|  | ||||
| export let build = function(){ | ||||
|     let done = plugins.q.defer(); | ||||
|     plugins.gulp.dest("./Dockerfile*") | ||||
|         .pipe(readDockerfiles()) | ||||
|         .pipe(plugins.gulpFunction(function(){ | ||||
|             sortDockerfiles() | ||||
|                 .then(buildDockerfiles) | ||||
|                 .then(done.resolve); | ||||
|         },"atEnd")); | ||||
|     return done.promise; | ||||
| } | ||||
|  | ||||
| let readDockerfiles = function(){ | ||||
|     return plugins.trhough2(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 sortFunction = function(){ | ||||
|         redoSort = false; | ||||
|         let notYetBuiltImages:string[] = []; | ||||
|         NpmciEnv.dockerFiles.forEach((dockerFileArg)=>{ | ||||
|             notYetBuiltImages.push(dockerFileArg.cleanTag); | ||||
|         }); | ||||
|         NpmciEnv.dockerFiles.sort(function(a,b){ | ||||
|             plugins.beautylog.log("sort build order for Dockerimages"); | ||||
|             let aIndex = notYetBuiltImages.indexOf(a.cleanTag); | ||||
|             if(aIndex != -1){notYetBuiltImages.splice(aIndex,1)} | ||||
|             if(notYetBuiltImages.indexOf(b.cleanTag) != -1){ | ||||
|                 redoSort = true; | ||||
|                 return -1; | ||||
|             } else { | ||||
|                 return 0 | ||||
|             } | ||||
|         }); | ||||
|         if(redoSort){ | ||||
|             sortFunction(); | ||||
|         } else { | ||||
|     readDockerfiles() | ||||
|         .then(sortDockerfiles) | ||||
|         .then(mapDockerfiles) | ||||
|         .then(buildDockerfiles) | ||||
|         .then(pushDockerfiles) | ||||
|         .then(() => { | ||||
|             done.resolve(); | ||||
|         } | ||||
|     }; | ||||
|     sortFunction(); | ||||
|         }); | ||||
|     return done.promise; | ||||
| } | ||||
|  | ||||
| let buildDockerfiles = function(){ | ||||
| export let readDockerfiles = function(){ | ||||
|     let done = plugins.q.defer(); | ||||
|     NpmciEnv.dockerFiles.forEach(function(dockerfileArg){ | ||||
|     let readDockerfilesArray:Dockerfile[] = [] | ||||
|     plugins.gulp.src("./Dockerfile*") | ||||
|         .pipe(plugins.through2.obj(function(file,enc,cb){ | ||||
|             let myDockerfile = new Dockerfile({ | ||||
|                 filePath:file.path, | ||||
|                 read:true | ||||
|             }); | ||||
|             readDockerfilesArray.push(myDockerfile); | ||||
|             cb(null,file); | ||||
|          },function(){ | ||||
|              done.resolve(readDockerfilesArray); | ||||
|          })); | ||||
|     return done.promise; | ||||
| } | ||||
|  | ||||
| export let getDockerImagesGitlab = function(sortableArrayArg:Dockerfile[]){ | ||||
|      | ||||
| } | ||||
|  | ||||
| export let sortDockerfiles = function(sortableArrayArg:Dockerfile[]){ | ||||
|     let done = plugins.q.defer(); | ||||
|     let sortedArray:Dockerfile[] = [];  | ||||
|     let trackingArray:Dockerfile[] = []; | ||||
|     let sorterFunctionCounter:number = 0; | ||||
|     let sorterFunction = function(){ | ||||
|         sortableArrayArg.forEach((dockerfileArg)=>{ | ||||
|             let cleanTags = cleanTagsArrayFunction(sortableArrayArg,trackingArray); | ||||
|             if(cleanTags.indexOf(dockerfileArg.baseImage) == -1 && trackingArray.indexOf(dockerfileArg) == -1){ | ||||
|                 sortedArray.push(dockerfileArg); | ||||
|                 trackingArray.push(dockerfileArg); | ||||
|             } else if(cleanTags.indexOf(dockerfileArg.baseImage) != -1){ | ||||
|                 dockerfileArg.localBaseImageDependent = true; | ||||
|             }; | ||||
|         }); | ||||
|         if(sortableArrayArg.length == sortedArray.length){ | ||||
|             done.resolve(sortedArray); | ||||
|         } else if (sorterFunctionCounter < 10) { | ||||
|             sorterFunctionCounter++; | ||||
|             sorterFunction(); | ||||
|         }; | ||||
|     } | ||||
|     sorterFunction(); | ||||
|     return done.promise; | ||||
| }; | ||||
|  | ||||
| export let mapDockerfiles = function(sortedArray:Dockerfile[]){ | ||||
|     let done = plugins.q.defer(); | ||||
|     sortedArray.forEach((dockerfileArg) => { | ||||
|         if(dockerfileArg.localBaseImageDependent){ | ||||
|             sortedArray.forEach((dockfile2:Dockerfile) => { | ||||
|                 if(dockfile2.cleanTag == dockerfileArg.baseImage){ | ||||
|                     dockerfileArg.localBaseDockerfile = dockfile2; | ||||
|                 } | ||||
|             }) | ||||
|         }; | ||||
|     }); | ||||
|     done.resolve(sortedArray); | ||||
|     return done.promise; | ||||
| } | ||||
|  | ||||
| export let buildDockerfiles = function(sortedArrayArg:Dockerfile[]){ | ||||
|     let done = plugins.q.defer(); | ||||
|     sortedArrayArg.forEach(function(dockerfileArg){ | ||||
|         dockerfileArg.build(); | ||||
|     }) | ||||
|     done.resolve(); | ||||
|     done.resolve(sortedArrayArg); | ||||
|     return done.promise; | ||||
| } | ||||
|  | ||||
| export let pushDockerfiles = function(sortedArrayArg:Dockerfile[]){ | ||||
|     let done = plugins.q.defer(); | ||||
|     sortedArrayArg.forEach(function(dockerfileArg){ | ||||
|         dockerfileArg.push(); | ||||
|     }); | ||||
|     done.resolve(sortedArrayArg); | ||||
|     return done.promise; | ||||
| } | ||||
|  | ||||
| @@ -73,7 +102,10 @@ export class Dockerfile { | ||||
|     cleanTag:string; | ||||
|     buildTag:string; | ||||
|     content:string; | ||||
|     patchedContent:string; | ||||
|     baseImage:string; | ||||
|     localBaseImageDependent:boolean; | ||||
|     localBaseDockerfile:Dockerfile; | ||||
|     constructor(options:{filePath?:string,fileContents?:string|Buffer,read?:boolean}){ | ||||
|         this.filePath = options.filePath; | ||||
|         this.repo = NpmciEnv.repo.user + "/" + NpmciEnv.repo.repo; | ||||
| @@ -83,32 +115,65 @@ export class Dockerfile { | ||||
|             this.content = plugins.smartfile.local.toStringSync(plugins.path.resolve(options.filePath)); | ||||
|         }; | ||||
|         this.baseImage = dockerBaseImage(this.content); | ||||
|         this.localBaseImageDependent = false; | ||||
|     }; | ||||
|     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!"); | ||||
|         } | ||||
|          | ||||
|         let done = plugins.q.defer(); | ||||
|         this.patchContents(); | ||||
|         let tag = dockerTag(this.repo,this.version); | ||||
|         bashBare("docker build -t " + tag + " -f " + this.filePath + " ."); | ||||
|         this.buildTag = tag; | ||||
|         NpmciEnv.dockerFilesBuilt.push(this); | ||||
|         this.restoreContents(); | ||||
|         done.resolve(); | ||||
|         return done.promise; | ||||
|     }; | ||||
|     push(){ | ||||
|         let done = plugins.q.defer(); | ||||
|         if(this.buildTag){ | ||||
|             plugins.shelljs.exec("docker push " + this.buildTag); | ||||
|             bashBare("docker push " + this.buildTag); | ||||
|         } else { | ||||
|             plugins.beautylog.error("Dockerfile hasn't been built yet!"); | ||||
|         } | ||||
|         done.resolve(); | ||||
|         return done.promise; | ||||
|     } | ||||
|     patchContents(){ | ||||
|         let done = plugins.q.defer(); | ||||
|         if(this.localBaseImageDependent == true){ | ||||
|             this.patchedContent = this.content.replace(/FROM\s[a-zA-Z0-9\/\-\:]*/, 'FROM ' + this.localBaseDockerfile.buildTag); | ||||
|             plugins.smartfile.memory.toFsSync( | ||||
|                 this.patchedContent, | ||||
|                 { | ||||
|                     fileName:plugins.path.parse(this.filePath).name, | ||||
|                     filePath:plugins.path.parse(this.filePath).dir | ||||
|                 } | ||||
|             ); | ||||
|         } | ||||
|         done.resolve(); | ||||
|         return done.promise; | ||||
|     }; | ||||
|     restoreContents(){ | ||||
|         let done = plugins.q.defer(); | ||||
|         if(this.localBaseImageDependent == true){ | ||||
|             plugins.smartfile.memory.toFsSync( | ||||
|                 this.content, | ||||
|                 { | ||||
|                     fileName:plugins.path.parse(this.filePath).name, | ||||
|                     filePath:plugins.path.parse(this.filePath).dir | ||||
|                 } | ||||
|             ); | ||||
|         } | ||||
|         done.resolve(); | ||||
|         return done.promise; | ||||
|     }; | ||||
| } | ||||
|  | ||||
| let dockerFileVersion = function(dockerfileNameArg:string):string{ | ||||
| export let dockerFileVersion = function(dockerfileNameArg:string):string{ | ||||
|     let versionString:string; | ||||
|     let versionRegex = /Dockerfile_([a-zA-Z0-9\.]*)$/; | ||||
|     let regexResultArray = versionRegex.exec(dockerfileNameArg); | ||||
|     if(regexResultArray.length = 2){ | ||||
|     if(regexResultArray && regexResultArray.length == 2){ | ||||
|         versionString = regexResultArray[1];         | ||||
|     } else { | ||||
|         versionString = "latest"; | ||||
| @@ -116,8 +181,8 @@ let dockerFileVersion = function(dockerfileNameArg:string):string{ | ||||
|     return versionString; | ||||
| } | ||||
|  | ||||
| let dockerBaseImage = function(dockerfileContentArg:string){ | ||||
|     let baseImageRegex = /FROM\s([a-zA-z0-9\/\-\:]*)\n/ | ||||
| export let dockerBaseImage = function(dockerfileContentArg:string){ | ||||
|     let baseImageRegex = /FROM\s([a-zA-z0-9\/\-\:]*)\n?/ | ||||
|     let regexResultArray = baseImageRegex.exec(dockerfileContentArg) | ||||
|     return regexResultArray[1]; | ||||
| } | ||||
| @@ -125,14 +190,24 @@ let dockerBaseImage = function(dockerfileContentArg:string){ | ||||
| export let dockerTag = function(repoArg:string,versionArg:string):string{ | ||||
|     let tagString:string; | ||||
|     let registry = NpmciEnv.dockerRegistry; | ||||
|     if(process.env.CI_BUILD_STAGE == "test"){ | ||||
|     if(NpmciEnv.buildStage == "build"  || NpmciEnv.buildStage == "test"){ | ||||
|         registry = "registry.gitlab.com"; | ||||
|     }  | ||||
|     let repo = repoArg; | ||||
|     let version = versionArg; | ||||
|     if(process.env.CI_BUILD_STAGE == "test" || process.env.CI_BUILD_STAGE == "build"){ | ||||
|     if(NpmciEnv.buildStage == "build" || NpmciEnv.buildStage == "test"){ | ||||
|         version = version + "_test"; | ||||
|     } | ||||
|     tagString = registry + "/" + repo + ":" + version; | ||||
|     return tagString; | ||||
| }; | ||||
|  | ||||
| export let cleanTagsArrayFunction = function(dockerfileArrayArg:Dockerfile[],trackingArrayArg:Dockerfile[]):string[]{ | ||||
|     let cleanTagsArray:string[] = []; | ||||
|     dockerfileArrayArg.forEach(function(dockerfileArg){ | ||||
|         if(trackingArrayArg.indexOf(dockerfileArg) == -1){ | ||||
|             cleanTagsArray.push(dockerfileArg.cleanTag); | ||||
|         } | ||||
|     }); | ||||
|     return cleanTagsArray; | ||||
| } | ||||
| @@ -1,13 +1,41 @@ | ||||
| import "typings-global"; | ||||
| import * as plugins from "./npmci.plugins"; | ||||
| import * as paths from "./npmci.paths"; | ||||
| import {GitRepo} from "smartstring"; | ||||
| import {Dockerfile} from "./npmci.build.docker" | ||||
|  | ||||
| export let repo = new GitRepo(process.env.CI_BUILD_REPO); | ||||
| export let dockerTestTag:string; | ||||
| export let dockerReleaseTag:string; | ||||
| export let repo:GitRepo = new GitRepo(process.env.CI_BUILD_REPO); | ||||
|  | ||||
| export let buildStage:string = process.env.CI_BUILD_STAGE; | ||||
|  | ||||
| // handling config between commands | ||||
| export let dockerRegistry; // will be set by npmci.prepare | ||||
| export let dockerFilesBuilt:Dockerfile[] = []; | ||||
| export let dockerFiles:Dockerfile[] = []; | ||||
|  | ||||
| export let config; | ||||
|  | ||||
| export let configStore = () => { | ||||
|     plugins.smartfile.memory.toFsSync( | ||||
|         JSON.stringify(config), | ||||
|         { | ||||
|             fileName:"config.json", | ||||
|             filePath:paths.NpmciPackageRoot | ||||
|         } | ||||
|     ); | ||||
| } | ||||
|  | ||||
| export let configLoad = () => { | ||||
|     try { | ||||
|         config = plugins.smartfile.local.toObjectSync(paths.NpmciPackageConfig,"json"); | ||||
|     } | ||||
|     catch(err){ | ||||
|         config = {}; | ||||
|         configStore(); | ||||
|         plugins.beautylog.log("config inititialized!"); | ||||
|     } | ||||
|      | ||||
|     config.dockerRegistry ? dockerRegistry = config.dockerRegistry : void(0); | ||||
|     config.dockerFilesBuilt ? dockerFilesBuilt = config.dockerFilesBuilt : void(0); | ||||
| } | ||||
| configLoad(); | ||||
							
								
								
									
										7
									
								
								ts/npmci.paths.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								ts/npmci.paths.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| import "typings-global"; | ||||
| import * as plugins from "./npmci.plugins"; | ||||
|  | ||||
| export let cwd = process.cwd(); | ||||
|  | ||||
| export let NpmciPackageRoot = plugins.path.join(__dirname,"../"); | ||||
| export let NpmciPackageConfig = plugins.path.join(NpmciPackageRoot,"./config.json") | ||||
| @@ -10,3 +10,4 @@ export let shelljs = require("shelljs"); | ||||
| export import smartssh = require("smartssh"); | ||||
| export import smartstring = require("smartstring"); | ||||
| export import smartfile = require("smartfile"); | ||||
| export let through2 = require("through2"); | ||||
| @@ -29,6 +29,7 @@ let docker = function(){ | ||||
|         plugins.beautylog.error("You have to specify Login Data to the Docker Registry"); | ||||
|         process.exit(1); | ||||
|     } | ||||
|     plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + process.env.CI_BUILD_TOKEN + " " + "registry.gitlab.com"); // Always also login to GitLab Registry | ||||
|     let dockerRegexResultArray = dockerRegex.exec(process.env.NPMCI_LOGIN_DOCKER); | ||||
|     let username = dockerRegexResultArray[1]; | ||||
|     let password = dockerRegexResultArray[2]; | ||||
| @@ -40,8 +41,7 @@ let docker = function(){ | ||||
| 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); | ||||
|     plugins.shelljs.exec("docker login -u gitlab-ci-token -p " + process.env.CI_BUILD_TOKEN + " " + "registry.gitlab.com"); | ||||
|     done.resolve(); | ||||
|     return done.promise; | ||||
| } | ||||
| @@ -51,8 +51,7 @@ export let prepare = function(serviceArg:string){ | ||||
|         case "npm": | ||||
|             return npm(); | ||||
|         case "docker": | ||||
|             return docker() | ||||
|                 .then(dockerGitlab); // always also login to gitlab registry for tests  | ||||
|             return docker(); | ||||
|         case "docker-gitlab": | ||||
|             return dockerGitlab() | ||||
|         default: | ||||
|   | ||||
| @@ -3,6 +3,7 @@ import * as plugins from "./npmci.plugins"; | ||||
| import {prepare} from "./npmci.prepare"; | ||||
| import {bash} from "./npmci.bash"; | ||||
| import * as NpmciEnv from "./npmci.env"; | ||||
| import * as NpmciBuildDocker from "./npmci.build.docker" | ||||
|  | ||||
| export let publish = (serviceArg:string = "npm") => { | ||||
|     switch (serviceArg){ | ||||
| @@ -26,17 +27,9 @@ let publishNpm  = function(){ | ||||
|  | ||||
| let publishDocker = function(){ | ||||
|     let done = plugins.q.defer(); | ||||
|     NpmciEnv.dockerFilesBuilt.forEach(function(dockerfileArg){ | ||||
|         dockerfileArg.push(); | ||||
|     }); | ||||
|     return done.promise; | ||||
| }; | ||||
|         NpmciBuildDocker.readDockerfiles() | ||||
|              | ||||
|          | ||||
| let publishDockerTest = function(){ | ||||
|     let done = plugins.q.defer(); | ||||
|     NpmciEnv.dockerFilesBuilt.forEach(function(dockerfileArg){ | ||||
|         dockerfileArg.push(); | ||||
|     }); | ||||
|     done.resolve(); | ||||
|     return done.promise; | ||||
| } | ||||
| }; | ||||
							
								
								
									
										8
									
								
								ts/npmci.test.docker.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								ts/npmci.test.docker.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| import * as plugins from "./npmci.plugins" | ||||
| import * as NpmciEnv from "./npmci.env"; | ||||
| import {bashBare} from "./npmci.bash"; | ||||
| import * as NpmciBuildDocker from "./npmci.build.docker"; | ||||
|  | ||||
| export let testDocker = () => { | ||||
|  | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user