Compare commits
	
		
			36 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| aaf11b66d7 | |||
| 83d7d46896 | |||
| 693bda6a49 | |||
| bfe3e266ee | |||
| 5f33ebd8a7 | |||
| f78c80e100 | |||
| f4d8656831 | |||
| 2290081ef0 | |||
| 189d02a16f | |||
| 55aee04334 | |||
| 0e407b9b9d | |||
| 24095bbd40 | |||
| f97ee94b5a | |||
| 4cf7aea374 | |||
| 6ab5e9cb30 | |||
| 95c1145bf5 | |||
| ea04a1b788 | |||
| 3bc2499d09 | |||
| 1f5967ac45 | |||
| fd952f086b | |||
| 79500cb2c2 | |||
| 6c58864fcf | |||
| 7ea3ac182d | |||
| 8979d26005 | |||
| c8876dac88 | |||
| 9c8a257c2a | |||
| 8b77930ece | |||
| ba672d030f | |||
| 8ad7e016e7 | |||
| d843311d7b | |||
| 14ef2cfa9b | |||
| 648effcf86 | |||
| 572738e88f | |||
| 129ae93044 | |||
| e910892231 | |||
| 6d9cabf7ee | 
							
								
								
									
										2064
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2064
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										30
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@shipzone/npmci", |   "name": "@shipzone/npmci", | ||||||
|   "version": "3.1.44", |   "version": "3.1.63", | ||||||
|   "private": false, |   "private": false, | ||||||
|   "description": "node and docker in gitlab ci on steroids", |   "description": "node and docker in gitlab ci on steroids", | ||||||
|   "main": "dist/index.js", |   "main": "dist/index.js", | ||||||
| @@ -9,8 +9,8 @@ | |||||||
|     "npmci": "cli.js" |     "npmci": "cli.js" | ||||||
|   }, |   }, | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "test": "(rm -f config.json) && tstest test/", |     "test": "tstest test/", | ||||||
|     "build": "(rm -f config.json) && tsbuild && (npm run testVersion)", |     "build": "tsbuild && (npm run testVersion)", | ||||||
|     "testVersion": "(cd test/assets/ && node ../../cli.js -v)" |     "testVersion": "(cd test/assets/ && node ../../cli.js -v)" | ||||||
|   }, |   }, | ||||||
|   "repository": { |   "repository": { | ||||||
| @@ -26,33 +26,33 @@ | |||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@gitzone/tsbuild": "^2.1.17", |     "@gitzone/tsbuild": "^2.1.17", | ||||||
|     "@gitzone/tsrun": "^1.2.6", |     "@gitzone/tsrun": "^1.2.6", | ||||||
|     "@gitzone/tstest": "^1.0.24", |     "@gitzone/tstest": "^1.0.27", | ||||||
|     "@pushrocks/tapbundle": "^3.0.13", |     "@pushrocks/tapbundle": "^3.0.13", | ||||||
|     "@types/node": "^12.7.2", |     "@types/node": "^12.7.9", | ||||||
|     "tslint": "^5.19.0", |     "tslint": "^5.20.0", | ||||||
|     "tslint-config-prettier": "^1.18.0" |     "tslint-config-prettier": "^1.18.0" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@apiglobal/typedrequest": "^1.0.17", |     "@apiglobal/typedrequest": "^1.0.24", | ||||||
|     "@pushrocks/lik": "^3.0.11", |     "@pushrocks/lik": "^3.0.11", | ||||||
|     "@pushrocks/npmextra": "^3.0.5", |     "@pushrocks/npmextra": "^3.0.7", | ||||||
|     "@pushrocks/projectinfo": "^4.0.2", |     "@pushrocks/projectinfo": "^4.0.2", | ||||||
|     "@pushrocks/qenv": "^4.0.2", |     "@pushrocks/qenv": "^4.0.6", | ||||||
|     "@pushrocks/smartanalytics": "^2.0.15", |     "@pushrocks/smartanalytics": "^2.0.15", | ||||||
|     "@pushrocks/smartcli": "^3.0.7", |     "@pushrocks/smartcli": "^3.0.7", | ||||||
|     "@pushrocks/smartdelay": "^2.0.3", |     "@pushrocks/smartdelay": "^2.0.3", | ||||||
|     "@pushrocks/smartfile": "^7.0.2", |     "@pushrocks/smartfile": "^7.0.6", | ||||||
|     "@pushrocks/smartgit": "^1.0.13", |     "@pushrocks/smartgit": "^1.0.13", | ||||||
|     "@pushrocks/smartlog": "^2.0.19", |     "@pushrocks/smartlog": "^2.0.19", | ||||||
|     "@pushrocks/smartlog-destination-local": "^8.0.2", |     "@pushrocks/smartlog-destination-local": "^8.0.2", | ||||||
|     "@pushrocks/smartparam": "^1.0.4", |     "@pushrocks/smartparam": "^1.0.4", | ||||||
|     "@pushrocks/smartpromise": "^3.0.2", |     "@pushrocks/smartpromise": "^3.0.6", | ||||||
|     "@pushrocks/smartrequest": "^1.1.23", |     "@pushrocks/smartrequest": "^1.1.36", | ||||||
|     "@pushrocks/smartshell": "^2.0.23", |     "@pushrocks/smartshell": "^2.0.25", | ||||||
|     "@pushrocks/smartsocket": "^1.1.45", |     "@pushrocks/smartsocket": "^1.1.49", | ||||||
|     "@pushrocks/smartssh": "^1.2.3", |     "@pushrocks/smartssh": "^1.2.3", | ||||||
|     "@pushrocks/smartstring": "^3.0.10", |     "@pushrocks/smartstring": "^3.0.10", | ||||||
|     "@servezone/servezone-interfaces": "^2.0.28", |     "@servezone/servezone-interfaces": "^2.0.51", | ||||||
|     "@types/shelljs": "^0.8.5", |     "@types/shelljs": "^0.8.5", | ||||||
|     "@types/through2": "^2.0.34", |     "@types/through2": "^2.0.34", | ||||||
|     "through2": "^3.0.1" |     "through2": "^3.0.1" | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| import * as plugins from '../npmci.plugins'; | import * as plugins from '../npmci.plugins'; | ||||||
|  |  | ||||||
| import {Npmci} from '../npmci.classes.npmci'; | import { Npmci } from '../npmci.classes.npmci'; | ||||||
| import { logger } from '../npmci.logging'; | import { logger } from '../npmci.logging'; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -13,18 +13,20 @@ export class CloudlyConnector { | |||||||
|     this.npmciRef = npmciRefArg; |     this.npmciRef = npmciRefArg; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   public async announceDockerContainer(optionsArg: plugins.servezoneInterfaces.version.IVersionData) { | ||||||
|   public async announceDockerContainer(optionsArg: plugins.servezoneInterfaces.IVersionData) { |  | ||||||
|     const cloudlyUrl = this.npmciRef.npmciConfig.getConfig().urlCloudly; |     const cloudlyUrl = this.npmciRef.npmciConfig.getConfig().urlCloudly; | ||||||
|     if (!cloudlyUrl) { |     if (!cloudlyUrl) { | ||||||
|       logger.log('warn', 'no cloudly url provided. Thus we cannot announce the newly built Dockerimage!'); |       logger.log( | ||||||
|  |         'warn', | ||||||
|  |         'no cloudly url provided. Thus we cannot announce the newly built Dockerimage!' | ||||||
|  |       ); | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     const typedrequest = new plugins.typedrequest.TypedRequest< |     const typedrequest = new plugins.typedrequest.TypedRequest< | ||||||
|       plugins.servezoneInterfaces.IRequest_Any_Cloudly_VersionManager_Update |       plugins.servezoneInterfaces.request.version.IRequest_Any_Cloudly_VersionManager_Update | ||||||
|     >(`https://${cloudlyUrl}/versionmanager`, 'update'); |     >(`https://${cloudlyUrl}/versionmanager`, 'update'); | ||||||
|  |  | ||||||
|     const response = (await typedrequest.fire(optionsArg)); |     const response = await typedrequest.fire(optionsArg); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -50,7 +50,7 @@ export class NpmciDockerManager { | |||||||
|         `>>npmci docker ...<< cli arguments invalid... Please read the documentation.` |         `>>npmci docker ...<< cli arguments invalid... Please read the documentation.` | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
|   } |   }; | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * builds a cwd of Dockerfiles by triggering a promisechain |    * builds a cwd of Dockerfiles by triggering a promisechain | ||||||
| @@ -62,7 +62,7 @@ export class NpmciDockerManager { | |||||||
|       .then(Dockerfile.sortDockerfiles) |       .then(Dockerfile.sortDockerfiles) | ||||||
|       .then(Dockerfile.mapDockerfiles) |       .then(Dockerfile.mapDockerfiles) | ||||||
|       .then(Dockerfile.buildDockerfiles); |       .then(Dockerfile.buildDockerfiles); | ||||||
|   } |   }; | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * login to the DockerRegistries |    * login to the DockerRegistries | ||||||
| @@ -70,7 +70,7 @@ export class NpmciDockerManager { | |||||||
|   public login = async () => { |   public login = async () => { | ||||||
|     await this.prepare(); |     await this.prepare(); | ||||||
|     await this.npmciRegistryStorage.loginAll(); |     await this.npmciRegistryStorage.loginAll(); | ||||||
|   } |   }; | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * logs in docker |    * logs in docker | ||||||
| @@ -98,7 +98,7 @@ export class NpmciDockerManager { | |||||||
|       } |       } | ||||||
|     ); |     ); | ||||||
|     return; |     return; | ||||||
|   } |   }; | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * pushes an image towards a registry |    * pushes an image towards a registry | ||||||
| @@ -146,7 +146,7 @@ export class NpmciDockerManager { | |||||||
|         await dockerfile.push(dockerRegistryToPushTo, suffix); |         await dockerfile.push(dockerRegistryToPushTo, suffix); | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   } |   }; | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * pulls an image |    * pulls an image | ||||||
| @@ -165,7 +165,7 @@ export class NpmciDockerManager { | |||||||
|     for (const dockerfile of dockerfileArray) { |     for (const dockerfile of dockerfileArray) { | ||||||
|       await dockerfile.pull(localDockerRegistry, suffix); |       await dockerfile.pull(localDockerRegistry, suffix); | ||||||
|     } |     } | ||||||
|   } |   }; | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * tests docker files |    * tests docker files | ||||||
| @@ -173,5 +173,5 @@ export class NpmciDockerManager { | |||||||
|   public test = async () => { |   public test = async () => { | ||||||
|     await this.prepare(); |     await this.prepare(); | ||||||
|     return await Dockerfile.readDockerfiles(this).then(Dockerfile.testDockerfiles); |     return await Dockerfile.readDockerfiles(this).then(Dockerfile.testDockerfiles); | ||||||
|   } |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -214,6 +214,7 @@ export class Dockerfile { | |||||||
|   public version: string; |   public version: string; | ||||||
|   public cleanTag: string; |   public cleanTag: string; | ||||||
|   public buildTag: string; |   public buildTag: string; | ||||||
|  |   public pushTag: string; | ||||||
|   public containerName: string; |   public containerName: string; | ||||||
|   public content: string; |   public content: string; | ||||||
|   public baseImage: string; |   public baseImage: string; | ||||||
| @@ -248,7 +249,9 @@ export class Dockerfile { | |||||||
|   public async build() { |   public async build() { | ||||||
|     logger.log('info', 'now building Dockerfile for ' + this.cleanTag); |     logger.log('info', 'now building Dockerfile for ' + this.cleanTag); | ||||||
|     const buildArgsString = await Dockerfile.getDockerBuildArgs(this.npmciDockerManagerRef); |     const buildArgsString = await Dockerfile.getDockerBuildArgs(this.npmciDockerManagerRef); | ||||||
|     const buildCommand = `docker build -t ${this.buildTag} -f ${this.filePath} ${buildArgsString} .`; |     const buildCommand = `docker build --label="version=${ | ||||||
|  |       this.npmciDockerManagerRef.npmciRef.npmciConfig.getConfig().projectInfo.npm.version | ||||||
|  |     }" -t ${this.buildTag} -f ${this.filePath} ${buildArgsString} .`; | ||||||
|     await bash(buildCommand); |     await bash(buildCommand); | ||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
| @@ -257,21 +260,23 @@ export class Dockerfile { | |||||||
|    * pushes the Dockerfile to a registry |    * pushes the Dockerfile to a registry | ||||||
|    */ |    */ | ||||||
|   public async push(dockerRegistryArg: DockerRegistry, versionSuffix: string = null) { |   public async push(dockerRegistryArg: DockerRegistry, versionSuffix: string = null) { | ||||||
|     const pushTag = Dockerfile.getDockerTagString( |     this.pushTag = Dockerfile.getDockerTagString( | ||||||
|       this.npmciDockerManagerRef, |       this.npmciDockerManagerRef, | ||||||
|       dockerRegistryArg.registryUrl, |       dockerRegistryArg.registryUrl, | ||||||
|       this.repo, |       this.repo, | ||||||
|       this.version, |       this.version, | ||||||
|       versionSuffix |       versionSuffix | ||||||
|     ); |     ); | ||||||
|     await bash(`docker tag ${this.buildTag} ${pushTag}`); |     await bash(`docker tag ${this.buildTag} ${this.pushTag}`); | ||||||
|     await bash(`docker push ${pushTag}`); |     await bash(`docker push ${this.pushTag}`); | ||||||
|     const imageDigest = (await bash( |     const imageDigest = (await bash( | ||||||
|       `docker inspect --format='{{index .RepoDigests 0}}' ${pushTag}` |       `docker inspect --format="{{index .RepoDigests 0}}" ${this.pushTag}` | ||||||
|     )).split('@')[1]; |     )).split('@')[1]; | ||||||
|  |     console.log(`The image ${this.pushTag} has digest ${imageDigest}`); | ||||||
|     await this.npmciDockerManagerRef.npmciRef.cloudlyConnector.announceDockerContainer({ |     await this.npmciDockerManagerRef.npmciRef.cloudlyConnector.announceDockerContainer({ | ||||||
|       dockerImageUrl: pushTag, |       dockerImageUrl: this.pushTag, | ||||||
|       dockerImageVersion: imageDigest |       dockerImageVersion: this.npmciDockerManagerRef.npmciRef.npmciConfig.getConfig().projectInfo | ||||||
|  |         .npm.version | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ export class NpmciGitManager { | |||||||
|   public mirror = async () => { |   public mirror = async () => { | ||||||
|     const githubToken = process.env.NPMCI_GIT_GITHUBTOKEN; |     const githubToken = process.env.NPMCI_GIT_GITHUBTOKEN; | ||||||
|     const githubUser = process.env.NPMCI_GIT_GITHUBGROUP || this.npmciRef.npmciEnv.repo.user; |     const githubUser = process.env.NPMCI_GIT_GITHUBGROUP || this.npmciRef.npmciEnv.repo.user; | ||||||
|     const githubRepo = process.env.NPMCI_GIT_GITHUB || this.npmciRef.npmciEnv.repo; |     const githubRepo = process.env.NPMCI_GIT_GITHUB || this.npmciRef.npmciEnv.repo.repo; | ||||||
|     if ( |     if ( | ||||||
|       this.npmciRef.npmciConfig.getConfig().projectInfo.npm.packageJson.private === true || |       this.npmciRef.npmciConfig.getConfig().projectInfo.npm.packageJson.private === true || | ||||||
|       this.npmciRef.npmciConfig.getConfig().npmAccessLevel === 'private' |       this.npmciRef.npmciConfig.getConfig().npmAccessLevel === 'private' | ||||||
|   | |||||||
| @@ -22,6 +22,9 @@ export class NpmciNpmManager { | |||||||
|         case 'install': |         case 'install': | ||||||
|           await this.install(); |           await this.install(); | ||||||
|           break; |           break; | ||||||
|  |         case 'build': | ||||||
|  |             await this.build(); | ||||||
|  |             break; | ||||||
|         case 'prepare': |         case 'prepare': | ||||||
|           await this.prepare(); |           await this.prepare(); | ||||||
|           break; |           break; | ||||||
| @@ -133,8 +136,8 @@ export class NpmciNpmManager { | |||||||
|     await bash(`npm -v`); |     await bash(`npm -v`); | ||||||
|  |  | ||||||
|     // -> build it |     // -> build it | ||||||
|     await bash(`npm install`); |     await this.install(); | ||||||
|     await bash(`npm run build`); |     await this.build(); | ||||||
|  |  | ||||||
|     logger.log('success', `Nice!!! The build for the publication was successfull!`); |     logger.log('success', `Nice!!! The build for the publication was successfull!`); | ||||||
|     logger.log('info', `Lets clean up so we don't publish any packages that don't belong to us:`); |     logger.log('info', `Lets clean up so we don't publish any packages that don't belong to us:`); | ||||||
| @@ -152,7 +155,12 @@ export class NpmciNpmManager { | |||||||
|  |  | ||||||
|   public async install(): Promise<void> { |   public async install(): Promise<void> { | ||||||
|     logger.log('info', 'now installing dependencies:'); |     logger.log('info', 'now installing dependencies:'); | ||||||
|     await bash('npm install'); |     await bash('npm ci'); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public async build(): Promise<void> { | ||||||
|  |     logger.log('info', 'now building the project:'); | ||||||
|  |     await bash('npm run build'); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   public async test(): Promise<void> { |   public async test(): Promise<void> { | ||||||
|   | |||||||
| @@ -6,9 +6,7 @@ export { path }; | |||||||
| // @apiglobal | // @apiglobal | ||||||
| import * as typedrequest from '@apiglobal/typedrequest'; | import * as typedrequest from '@apiglobal/typedrequest'; | ||||||
|  |  | ||||||
| export { | export { typedrequest }; | ||||||
|   typedrequest |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| // @servezone | // @servezone | ||||||
| import * as servezoneInterfaces from '@servezone/servezone-interfaces'; | import * as servezoneInterfaces from '@servezone/servezone-interfaces'; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user