| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  | import * as plugins from './npmci.plugins' | 
					
						
							|  |  |  | import * as paths from './npmci.paths' | 
					
						
							|  |  |  | import {GitRepo} from 'smartstring' | 
					
						
							|  |  |  | import {Dockerfile} from './npmci.build.docker' | 
					
						
							| 
									
										
										
										
											2016-06-03 02:56:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  | export let repo: GitRepo | 
					
						
							|  |  |  | if (process.env.CI_BUILD_REPO) repo = new GitRepo(process.env.CI_BUILD_REPO) | 
					
						
							| 
									
										
										
										
											2016-06-05 21:11:30 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  | export let buildStage: string = process.env.CI_BUILD_STAGE | 
					
						
							| 
									
										
										
										
											2016-06-03 03:44:24 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-05 23:24:11 +02:00
										 |  |  | // handling config between commands
 | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  | export let dockerRegistry: string // will be set by npmci.prepare
 | 
					
						
							|  |  |  | export let setDockerRegistry = (dockerRegistryArg: string) => { | 
					
						
							|  |  |  |     dockerRegistry = dockerRegistryArg | 
					
						
							| 
									
										
										
										
											2016-07-18 18:39:04 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  | export let dockerFilesBuilt: Dockerfile[] = [] | 
					
						
							|  |  |  | export let dockerFiles: Dockerfile[] = [] | 
					
						
							| 
									
										
										
										
											2016-06-26 04:40:58 +02:00
										 |  |  | export let config = { | 
					
						
							| 
									
										
										
										
											2016-06-26 05:21:24 +02:00
										 |  |  |     dockerRegistry: undefined, // this will be set later on store
 | 
					
						
							| 
									
										
										
										
											2016-06-26 04:40:58 +02:00
										 |  |  |     dockerFilesBuilt: dockerFilesBuilt, | 
					
						
							|  |  |  |     dockerFiles: dockerFiles, | 
					
						
							|  |  |  |     project: undefined | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2016-06-05 02:17:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  | export let configStore = () => { | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  |     config.dockerRegistry = dockerRegistry | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  |     plugins.smartfile.memory.toFsSync( | 
					
						
							|  |  |  |         JSON.stringify(config), | 
					
						
							| 
									
										
										
										
											2016-06-25 03:19:29 +02:00
										 |  |  |         paths.NpmciPackageConfig | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  |     ) | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-19 02:30:50 +02:00
										 |  |  | let configLoad = () => { | 
					
						
							|  |  |  |     // internal config to transfer information in between npmci shell calls
 | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  |     try { | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  |         plugins.lodash.assign(config,plugins.smartfile.fs.toObjectSync(paths.NpmciPackageConfig,'json')) | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  |     catch (err) { | 
					
						
							|  |  |  |         configStore() | 
					
						
							|  |  |  |         plugins.beautylog.log('config initialized!') | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-06-19 02:30:50 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // project config
 | 
					
						
							|  |  |  |     try { | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  |         if (!config.project) { | 
					
						
							|  |  |  |             config.project = plugins.smartfile.fs.toObjectSync(paths.NpmciProjectDir,'npmci.json') | 
					
						
							|  |  |  |             plugins.beautylog.ok('project config found!') | 
					
						
							| 
									
										
										
										
											2016-06-19 02:30:50 +02:00
										 |  |  |         }; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  |     catch (err) { | 
					
						
							|  |  |  |         config.project = {} | 
					
						
							|  |  |  |         plugins.beautylog.log('no project config found, so proceeding with default behaviour!') | 
					
						
							| 
									
										
										
										
											2016-06-19 02:30:50 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     config.dockerRegistry ? dockerRegistry = config.dockerRegistry : void(0) | 
					
						
							|  |  |  |     config.dockerFilesBuilt ? dockerFilesBuilt = config.dockerFilesBuilt : void(0) | 
					
						
							| 
									
										
										
										
											2016-06-05 23:24:11 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  | configLoad() |