| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  | import * as plugins from './npmci.plugins' | 
					
						
							|  |  |  | import * as paths from './npmci.paths' | 
					
						
							| 
									
										
										
										
											2017-03-08 14:50:41 +01:00
										 |  |  | 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) => { | 
					
						
							| 
									
										
										
										
											2017-03-08 14:50:41 +01:00
										 |  |  |   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 = { | 
					
						
							| 
									
										
										
										
											2017-03-08 14:50:41 +01:00
										 |  |  |   dockerRegistry: undefined, // this will be set later on store
 | 
					
						
							|  |  |  |   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 = () => { | 
					
						
							| 
									
										
										
										
											2017-03-08 14:50:41 +01:00
										 |  |  |   config.dockerRegistry = dockerRegistry | 
					
						
							|  |  |  |   plugins.smartfile.memory.toFsSync( | 
					
						
							|  |  |  |     JSON.stringify(config), | 
					
						
							|  |  |  |     paths.NpmciPackageConfig | 
					
						
							|  |  |  |   ) | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-19 02:30:50 +02:00
										 |  |  | let configLoad = () => { | 
					
						
							| 
									
										
										
										
											2017-03-08 14:50:41 +01:00
										 |  |  |   // internal config to transfer information in between npmci shell calls
 | 
					
						
							|  |  |  |   try { | 
					
						
							|  |  |  |     plugins.lodash.assign(config, plugins.smartfile.fs.toObjectSync(paths.NpmciPackageConfig, 'json')) | 
					
						
							|  |  |  |   } catch (err) { | 
					
						
							|  |  |  |     configStore() | 
					
						
							|  |  |  |     plugins.beautylog.log('config initialized!') | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-06-19 02:30:50 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-08 14:50:41 +01:00
										 |  |  |   // project config
 | 
					
						
							|  |  |  |   try { | 
					
						
							|  |  |  |     if (!config.project) { | 
					
						
							|  |  |  |       config.project = plugins.smartfile.fs.toObjectSync(paths.NpmciProjectDir, 'npmci.json') | 
					
						
							|  |  |  |       plugins.beautylog.ok('project config found!') | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   catch (err) { | 
					
						
							|  |  |  |     config.project = {} | 
					
						
							|  |  |  |     plugins.beautylog.log('no project config found, so proceeding with default behaviour!') | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-11-25 00:07:20 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-08 14:50:41 +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() |