Compare commits
	
		
			10 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 2af2a71471 | |||
| 45e41500bc | |||
| a4d66744be | |||
| c0d0e5154a | |||
| e92d421bae | |||
| 2f827a7696 | |||
| 11c0341c76 | |||
| 4bc86ad7b8 | |||
| cebcfc9fc5 | |||
| ba047ed586 | 
							
								
								
									
										14
									
								
								dist/npmci.build.docker.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								dist/npmci.build.docker.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -4,19 +4,18 @@ export declare let sortDockerfiles: (sortableArrayArg: Dockerfile[]) => any; | |||||||
| export declare let mapDockerfiles: (sortedArray: Dockerfile[]) => any; | export declare let mapDockerfiles: (sortedArray: Dockerfile[]) => any; | ||||||
| export declare let buildDockerfiles: (sortedArrayArg: Dockerfile[]) => any; | export declare let buildDockerfiles: (sortedArrayArg: Dockerfile[]) => any; | ||||||
| export declare let pushDockerfiles: (sortedArrayArg: Dockerfile[]) => any; | export declare let pushDockerfiles: (sortedArrayArg: Dockerfile[]) => any; | ||||||
| export declare let pullDockerfileImages: (sortableArrayArg: Dockerfile[]) => any; | export declare let pullDockerfileImages: (sortableArrayArg: Dockerfile[], registryArg?: string) => any; | ||||||
| export declare let testDockerfiles: (sortedArrayArg: Dockerfile[]) => any; | export declare let testDockerfiles: (sortedArrayArg: Dockerfile[]) => any; | ||||||
| export declare let releaseDockerfiles: (sortedArrayArg: Dockerfile[]) => any; |  | ||||||
| export declare class Dockerfile { | export declare class Dockerfile { | ||||||
|     filePath: string; |     filePath: string; | ||||||
|     repo: string; |     repo: string; | ||||||
|     version: string; |     version: string; | ||||||
|     cleanTag: string; |     cleanTag: string; | ||||||
|     buildTag: string; |     buildTag: string; | ||||||
|  |     testTag: string; | ||||||
|     releaseTag: string; |     releaseTag: string; | ||||||
|     containerName: string; |     containerName: string; | ||||||
|     content: string; |     content: string; | ||||||
|     patchedContent: string; |  | ||||||
|     baseImage: string; |     baseImage: string; | ||||||
|     localBaseImageDependent: boolean; |     localBaseImageDependent: boolean; | ||||||
|     localBaseDockerfile: Dockerfile; |     localBaseDockerfile: Dockerfile; | ||||||
| @@ -26,15 +25,12 @@ export declare class Dockerfile { | |||||||
|         read?: boolean; |         read?: boolean; | ||||||
|     }); |     }); | ||||||
|     build(): any; |     build(): any; | ||||||
|     push(): any; |     push(stageArg: any): any; | ||||||
|     pull(): void; |     pull(registryArg: string): void; | ||||||
|     test(): void; |     test(): void; | ||||||
|     release(): void; |  | ||||||
|     getId(): string; |     getId(): string; | ||||||
|     patchContents(): any; |  | ||||||
|     restoreContents(): any; |  | ||||||
| } | } | ||||||
| export declare let dockerFileVersion: (dockerfileNameArg: string) => string; | export declare let dockerFileVersion: (dockerfileNameArg: string) => string; | ||||||
| export declare let dockerBaseImage: (dockerfileContentArg: string) => string; | export declare let dockerBaseImage: (dockerfileContentArg: string) => string; | ||||||
| export declare let dockerTag: (repoArg: string, versionArg: string, stageArg: string) => string; | export declare let dockerTag: (registryArg: string, repoArg: string, versionArg: string, suffixArg?: string) => string; | ||||||
| export declare let cleanTagsArrayFunction: (dockerfileArrayArg: Dockerfile[], trackingArrayArg: Dockerfile[]) => string[]; | export declare let cleanTagsArrayFunction: (dockerfileArrayArg: Dockerfile[], trackingArrayArg: Dockerfile[]) => string[]; | ||||||
|   | |||||||
							
								
								
									
										92
									
								
								dist/npmci.build.docker.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										92
									
								
								dist/npmci.build.docker.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								dist/npmci.publish.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/npmci.publish.js
									
									
									
									
										vendored
									
									
								
							| @@ -27,9 +27,9 @@ var publishDocker = function () { | |||||||
|     var done = plugins.q.defer(); |     var done = plugins.q.defer(); | ||||||
|     NpmciBuildDocker.readDockerfiles() |     NpmciBuildDocker.readDockerfiles() | ||||||
|         .then(NpmciBuildDocker.pullDockerfileImages) |         .then(NpmciBuildDocker.pullDockerfileImages) | ||||||
|         .then(NpmciBuildDocker.releaseDockerfiles) |         .then(NpmciBuildDocker.pushDockerfiles) | ||||||
|         .then(done.resolve); |         .then(done.resolve); | ||||||
|     return done.promise; |     return done.promise; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUVsQyxJQUFZLGdCQUFnQixXQUFNLHNCQUVsQyxDQUFDLENBRnVEO0FBRTdDLGVBQU8sR0FBRyxVQUFDLFVBQXlCO0lBQXpCLDBCQUF5QixHQUF6QixrQkFBeUI7SUFDM0MsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQztRQUNoQixLQUFLLEtBQUs7WUFDTixNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEIsS0FBSyxRQUFRO1lBQ1QsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixJQUFJLFVBQVUsR0FBSTtJQUNkLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsdUJBQU8sQ0FBQyxLQUFLLENBQUM7U0FDVCxJQUFJLENBQUM7UUFDRixpQkFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFFO1FBQy9CLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQTtBQUVELElBQUksYUFBYSxHQUFHO0lBQ2hCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsZ0JBQWdCLENBQUMsZUFBZSxFQUFFO1NBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQztTQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUM7U0FDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUMiLCJmaWxlIjoibnBtY2kucHVibGlzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vbnBtY2kucGx1Z2luc1wiO1xyXG5pbXBvcnQge3ByZXBhcmV9IGZyb20gXCIuL25wbWNpLnByZXBhcmVcIjtcclxuaW1wb3J0IHtiYXNofSBmcm9tIFwiLi9ucG1jaS5iYXNoXCI7XHJcbmltcG9ydCAqIGFzIE5wbWNpRW52IGZyb20gXCIuL25wbWNpLmVudlwiO1xyXG5pbXBvcnQgKiBhcyBOcG1jaUJ1aWxkRG9ja2VyIGZyb20gXCIuL25wbWNpLmJ1aWxkLmRvY2tlclwiXHJcblxyXG5leHBvcnQgbGV0IHB1Ymxpc2ggPSAoc2VydmljZUFyZzpzdHJpbmcgPSBcIm5wbVwiKSA9PiB7XHJcbiAgICBzd2l0Y2ggKHNlcnZpY2VBcmcpe1xyXG4gICAgICAgIGNhc2UgXCJucG1cIjogXHJcbiAgICAgICAgICAgIHJldHVybiBwdWJsaXNoTnBtKCk7XHJcbiAgICAgICAgY2FzZSBcImRvY2tlclwiOlxyXG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaERvY2tlcigpO1xyXG4gICAgfVxyXG59O1xyXG5cclxubGV0IHB1Ymxpc2hOcG0gID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBwcmVwYXJlKFwibnBtXCIpXHJcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgYmFzaChcIm5wbSBwdWJsaXNoXCIpO1xyXG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5vayhcIkRvbmUhXCIpIDtcclxuICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn1cclxuXHJcbmxldCBwdWJsaXNoRG9ja2VyID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICAgICAgTnBtY2lCdWlsZERvY2tlci5yZWFkRG9ja2VyZmlsZXMoKVxyXG4gICAgICAgIC50aGVuKE5wbWNpQnVpbGREb2NrZXIucHVsbERvY2tlcmZpbGVJbWFnZXMpXHJcbiAgICAgICAgLnRoZW4oTnBtY2lCdWlsZERvY2tlci5yZWxlYXNlRG9ja2VyZmlsZXMpXHJcbiAgICAgICAgLnRoZW4oZG9uZS5yZXNvbHZlKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn07Il19 | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5wbWNpLnB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDhCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDJCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUVsQyxJQUFZLGdCQUFnQixXQUFNLHNCQUVsQyxDQUFDLENBRnVEO0FBRTdDLGVBQU8sR0FBRyxVQUFDLFVBQXlCO0lBQXpCLDBCQUF5QixHQUF6QixrQkFBeUI7SUFDM0MsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQztRQUNoQixLQUFLLEtBQUs7WUFDTixNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEIsS0FBSyxRQUFRO1lBQ1QsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixJQUFJLFVBQVUsR0FBSTtJQUNkLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsdUJBQU8sQ0FBQyxLQUFLLENBQUM7U0FDVCxJQUFJLENBQUM7UUFDRixpQkFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFFO1FBQy9CLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQTtBQUVELElBQUksYUFBYSxHQUFHO0lBQ2hCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsZ0JBQWdCLENBQUMsZUFBZSxFQUFFO1NBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQztTQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1NBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwiZmlsZSI6Im5wbWNpLnB1Ymxpc2guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL25wbWNpLnBsdWdpbnNcIjtcclxuaW1wb3J0IHtwcmVwYXJlfSBmcm9tIFwiLi9ucG1jaS5wcmVwYXJlXCI7XHJcbmltcG9ydCB7YmFzaH0gZnJvbSBcIi4vbnBtY2kuYmFzaFwiO1xyXG5pbXBvcnQgKiBhcyBOcG1jaUVudiBmcm9tIFwiLi9ucG1jaS5lbnZcIjtcclxuaW1wb3J0ICogYXMgTnBtY2lCdWlsZERvY2tlciBmcm9tIFwiLi9ucG1jaS5idWlsZC5kb2NrZXJcIlxyXG5cclxuZXhwb3J0IGxldCBwdWJsaXNoID0gKHNlcnZpY2VBcmc6c3RyaW5nID0gXCJucG1cIikgPT4ge1xyXG4gICAgc3dpdGNoIChzZXJ2aWNlQXJnKXtcclxuICAgICAgICBjYXNlIFwibnBtXCI6IFxyXG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaE5wbSgpO1xyXG4gICAgICAgIGNhc2UgXCJkb2NrZXJcIjpcclxuICAgICAgICAgICAgcmV0dXJuIHB1Ymxpc2hEb2NrZXIoKTtcclxuICAgIH1cclxufTtcclxuXHJcbmxldCBwdWJsaXNoTnBtICA9IGZ1bmN0aW9uKCl7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgcHJlcGFyZShcIm5wbVwiKVxyXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGJhc2goXCJucG0gcHVibGlzaFwiKTtcclxuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cub2soXCJEb25lIVwiKSA7XHJcbiAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59XHJcblxyXG5sZXQgcHVibGlzaERvY2tlciA9IGZ1bmN0aW9uKCl7XHJcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xyXG4gICAgICAgIE5wbWNpQnVpbGREb2NrZXIucmVhZERvY2tlcmZpbGVzKClcclxuICAgICAgICAudGhlbihOcG1jaUJ1aWxkRG9ja2VyLnB1bGxEb2NrZXJmaWxlSW1hZ2VzKVxyXG4gICAgICAgIC50aGVuKE5wbWNpQnVpbGREb2NrZXIucHVzaERvY2tlcmZpbGVzKVxyXG4gICAgICAgIC50aGVuKGRvbmUucmVzb2x2ZSk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59OyJdfQ== | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "npmci", |   "name": "npmci", | ||||||
|   "version": "2.1.44", |   "version": "2.1.49", | ||||||
|   "description": "", |   "description": "", | ||||||
|   "main": "dist/index.js", |   "main": "dist/index.js", | ||||||
|   "bin": { |   "bin": { | ||||||
|   | |||||||
| @@ -86,16 +86,16 @@ export let buildDockerfiles = (sortedArrayArg:Dockerfile[]) => { | |||||||
| export let pushDockerfiles = function(sortedArrayArg:Dockerfile[]){ | export let pushDockerfiles = function(sortedArrayArg:Dockerfile[]){ | ||||||
|     let done = plugins.q.defer(); |     let done = plugins.q.defer(); | ||||||
|     sortedArrayArg.forEach(function(dockerfileArg){ |     sortedArrayArg.forEach(function(dockerfileArg){ | ||||||
|         dockerfileArg.push(); |         dockerfileArg.push(NpmciEnv.buildStage); | ||||||
|     }); |     }); | ||||||
|     done.resolve(sortedArrayArg); |     done.resolve(sortedArrayArg); | ||||||
|     return done.promise; |     return done.promise; | ||||||
| } | } | ||||||
|  |  | ||||||
| export let pullDockerfileImages = (sortableArrayArg:Dockerfile[]) => { | export let pullDockerfileImages = (sortableArrayArg:Dockerfile[],registryArg = "registry.gitlab.com") => { | ||||||
|     let done = plugins.q.defer(); |     let done = plugins.q.defer(); | ||||||
|     sortableArrayArg.forEach((dockerfileArg) => { |     sortableArrayArg.forEach((dockerfileArg) => { | ||||||
|         dockerfileArg.pull(); |         dockerfileArg.pull(registryArg); | ||||||
|     }); |     }); | ||||||
|     done.resolve(sortableArrayArg); |     done.resolve(sortableArrayArg); | ||||||
|     return done.promise; |     return done.promise; | ||||||
| @@ -110,25 +110,16 @@ export let testDockerfiles = (sortedArrayArg:Dockerfile[]) => { | |||||||
|     return done.promise; |     return done.promise; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| export let releaseDockerfiles = (sortedArrayArg:Dockerfile[]) => { |  | ||||||
|      let done = plugins.q.defer(); |  | ||||||
|     sortedArrayArg.forEach(function(dockerfileArg){ |  | ||||||
|         dockerfileArg.release(); |  | ||||||
|     }); |  | ||||||
|     done.resolve(sortedArrayArg); |  | ||||||
|     return done.promise; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| export class Dockerfile { | export class Dockerfile { | ||||||
|     filePath:string; |     filePath:string; | ||||||
|     repo:string; |     repo:string; | ||||||
|     version:string; |     version:string; | ||||||
|     cleanTag:string; |     cleanTag:string; | ||||||
|     buildTag:string; |     buildTag:string; | ||||||
|  |     testTag:string; | ||||||
|     releaseTag:string; |     releaseTag:string; | ||||||
|     containerName:string |     containerName:string | ||||||
|     content:string; |     content:string; | ||||||
|     patchedContent:string; |  | ||||||
|     baseImage:string; |     baseImage:string; | ||||||
|     localBaseImageDependent:boolean; |     localBaseImageDependent:boolean; | ||||||
|     localBaseDockerfile:Dockerfile; |     localBaseDockerfile:Dockerfile; | ||||||
| @@ -137,8 +128,9 @@ export class Dockerfile { | |||||||
|         this.repo = NpmciEnv.repo.user + "/" + NpmciEnv.repo.repo; |         this.repo = NpmciEnv.repo.user + "/" + NpmciEnv.repo.repo; | ||||||
|         this.version = dockerFileVersion(plugins.path.parse(options.filePath).base); |         this.version = dockerFileVersion(plugins.path.parse(options.filePath).base); | ||||||
|         this.cleanTag = this.repo + ":" + this.version; |         this.cleanTag = this.repo + ":" + this.version; | ||||||
|         this.buildTag = dockerTag(this.repo,this.version,"build"); |         this.buildTag = this.cleanTag; | ||||||
|         this.releaseTag = dockerTag(this.repo,this.version,"release"); |         this.testTag = dockerTag("registry.gitlab.com",this.repo,this.version,"test"); | ||||||
|  |         this.releaseTag = dockerTag(NpmciEnv.dockerRegistry,this.repo,this.version); | ||||||
|         this.containerName = "dockerfile-" + this.version; |         this.containerName = "dockerfile-" + this.version; | ||||||
|         if(options.filePath && options.read){ |         if(options.filePath && options.read){ | ||||||
|             this.content = plugins.smartfile.local.toStringSync(plugins.path.resolve(options.filePath)); |             this.content = plugins.smartfile.local.toStringSync(plugins.path.resolve(options.filePath)); | ||||||
| @@ -147,27 +139,34 @@ export class Dockerfile { | |||||||
|         this.localBaseImageDependent = false; |         this.localBaseImageDependent = false; | ||||||
|     }; |     }; | ||||||
|     build(){ |     build(){ | ||||||
|         plugins.beautylog.info("now building Dockerfile for " + this.cleanTag); |  | ||||||
|         let done = plugins.q.defer(); |         let done = plugins.q.defer(); | ||||||
|         this.patchContents(); |         plugins.beautylog.info("now building Dockerfile for " + this.cleanTag); | ||||||
|         bashBare("docker build -t " + this.buildTag + " -f " + this.filePath + " ."); |         bashBare("docker build -t " + this.buildTag + " -f " + this.filePath + " ."); | ||||||
|         NpmciEnv.dockerFilesBuilt.push(this); |         NpmciEnv.dockerFilesBuilt.push(this); | ||||||
|         this.restoreContents(); |  | ||||||
|         done.resolve(); |         done.resolve(); | ||||||
|         return done.promise; |         return done.promise; | ||||||
|     }; |     }; | ||||||
|     push(){ |     push(stageArg){ | ||||||
|         let done = plugins.q.defer(); |         let done = plugins.q.defer(); | ||||||
|         if(this.buildTag){ |         let pushTag; | ||||||
|             bashBare("docker push " + this.buildTag); |         switch (stageArg){ | ||||||
|         } else { |             case "release": | ||||||
|             plugins.beautylog.error("Dockerfile hasn't been built yet!"); |                 pushTag = this.releaseTag; | ||||||
|  |                 break; | ||||||
|  |             case "test": | ||||||
|  |             default: | ||||||
|  |                 pushTag = this.testTag; | ||||||
|  |                 break; | ||||||
|         } |         } | ||||||
|  |         bashBare("docker tag " + this.buildTag + " " + pushTag); | ||||||
|  |         bashBare("docker push " + pushTag); | ||||||
|         done.resolve(); |         done.resolve(); | ||||||
|         return done.promise; |         return done.promise; | ||||||
|     } |     } | ||||||
|     pull(){ |     pull(registryArg:string){ | ||||||
|         bashBare("docker pull " + this.buildTag); |         let pullTag = this.testTag; | ||||||
|  |         bashBare("docker pull " + pullTag); | ||||||
|  |         bashBare("docker tag " + pullTag + " " + this.buildTag); | ||||||
|     }; |     }; | ||||||
|     test(){ |     test(){ | ||||||
|         let testFile:string = plugins.path.join(paths.NpmciTestDir,"test_" + this.version + ".sh"); |         let testFile:string = plugins.path.join(paths.NpmciTestDir,"test_" + this.version + ".sh"); | ||||||
| @@ -183,44 +182,10 @@ export class Dockerfile { | |||||||
|             plugins.beautylog.warn("skipping tests for " + this.cleanTag + " because no testfile was found!"); |             plugins.beautylog.warn("skipping tests for " + this.cleanTag + " because no testfile was found!"); | ||||||
|         } |         } | ||||||
|     }; |     }; | ||||||
|     release(){ |  | ||||||
|         bashBare("docker tag " + this.getId() + " " + this.releaseTag); |  | ||||||
|         bashBare("docker push " + this.releaseTag); |  | ||||||
|     } |  | ||||||
|     getId(){ |     getId(){ | ||||||
|         let containerId = bashBare("docker inspect --type=image --format=\"{{.Id}}\" " + this.buildTag); |         let containerId = bashBare("docker inspect --type=image --format=\"{{.Id}}\" " + this.buildTag); | ||||||
|         return containerId; |         return containerId; | ||||||
|     }; |     }; | ||||||
|     patchContents(){ |  | ||||||
|         let done = plugins.q.defer(); |  | ||||||
|         if(this.localBaseImageDependent == true){ |  | ||||||
|             plugins.beautylog.info("patching Dockerfile due to local build dependency!"); |  | ||||||
|             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; |  | ||||||
|     }; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| export let dockerFileVersion = function(dockerfileNameArg:string):string{ | export let dockerFileVersion = function(dockerfileNameArg:string):string{ | ||||||
| @@ -241,17 +206,14 @@ export let dockerBaseImage = function(dockerfileContentArg:string){ | |||||||
|     return regexResultArray[1]; |     return regexResultArray[1]; | ||||||
| } | } | ||||||
|  |  | ||||||
| export let dockerTag = function(repoArg:string,versionArg:string,stageArg:string):string{ | export let dockerTag = function(registryArg:string,repoArg:string,versionArg:string,suffixArg?:string):string{ | ||||||
|     let tagString:string; |     let tagString:string; | ||||||
|     let registry = NpmciEnv.dockerRegistry; |     let registry = registryArg; | ||||||
|     if(stageArg == "build"  || stageArg == "test"){ |  | ||||||
|         registry = "registry.gitlab.com"; |  | ||||||
|     }  |  | ||||||
|     let repo = repoArg; |     let repo = repoArg; | ||||||
|     let version = versionArg; |     let version = versionArg; | ||||||
|     if(stageArg == "build"  || stageArg == "test"){ |     if(suffixArg){ | ||||||
|         version = version + "_test"; |         version = versionArg + "_" + suffixArg; | ||||||
|     } |     }; | ||||||
|     tagString = registry + "/" + repo + ":" + version; |     tagString = registry + "/" + repo + ":" + version; | ||||||
|     return tagString; |     return tagString; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ let publishDocker = function(){ | |||||||
|     let done = plugins.q.defer(); |     let done = plugins.q.defer(); | ||||||
|         NpmciBuildDocker.readDockerfiles() |         NpmciBuildDocker.readDockerfiles() | ||||||
|         .then(NpmciBuildDocker.pullDockerfileImages) |         .then(NpmciBuildDocker.pullDockerfileImages) | ||||||
|         .then(NpmciBuildDocker.releaseDockerfiles) |         .then(NpmciBuildDocker.pushDockerfiles) | ||||||
|         .then(done.resolve); |         .then(done.resolve); | ||||||
|     return done.promise; |     return done.promise; | ||||||
| }; | }; | ||||||
		Reference in New Issue
	
	Block a user