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: GitRepo if (process.env.CI_BUILD_REPO) repo = new GitRepo(process.env.CI_BUILD_REPO) export let buildStage: string = process.env.CI_BUILD_STAGE // handling config between commands export let dockerRegistry: string // will be set by npmci.prepare export let setDockerRegistry = (dockerRegistryArg: string) => { dockerRegistry = dockerRegistryArg } export let dockerFilesBuilt: Dockerfile[] = [] export let dockerFiles: Dockerfile[] = [] export let config = { dockerRegistry: undefined, // this will be set later on store dockerFilesBuilt: dockerFilesBuilt, dockerFiles: dockerFiles, project: undefined } export let configStore = () => { config.dockerRegistry = dockerRegistry plugins.smartfile.memory.toFsSync( JSON.stringify(config), paths.NpmciPackageConfig ) } let configLoad = () => { // 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!') } // 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!') } config.dockerRegistry ? dockerRegistry = config.dockerRegistry : void (0) config.dockerFilesBuilt ? dockerFilesBuilt = config.dockerFilesBuilt : void (0) } configLoad()