-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathlogic.js
More file actions
92 lines (81 loc) 路 4.87 KB
/
Copy pathlogic.js
File metadata and controls
92 lines (81 loc) 路 4.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
const { readFile,writeFile,makeDirectory, encryptWithCheckJet } = require('./util')
const LogHorizon = require('log-horizon')
const logger = new LogHorizon({statusType:'badge'})
async function createInitFile (params) {
let deployScriptFile = readFile(__dirname + '/template_flie/aws_deployment')
let codeshipServiceFile = readFile(__dirname + '/template_flie/codeship-services.yml')
let codeshipStepFile = readFile(__dirname + '/template_flie/codeship-steps.yml')
let dockerRunFile = readFile(__dirname + '/template_flie/Dockerrun.aws.json')
let awsImageName = params.awsImageName.trim().split('/')
awsImageName = awsImageName[awsImageName.length - 1]
codeshipServiceFile = codeshipServiceFile.replace(/{aws-image-name}/g, params.awsRgistry.trim() + '/' + params.awsImageName.trim())
codeshipServiceFile = codeshipServiceFile.replace(/{aws-key-encrypt-path}/g, params.awsKeyEncryptPath.trim())
codeshipServiceFile = codeshipServiceFile.replace(/{aws-region}/g, params.awsRegion.trim())
codeshipStepFile = codeshipStepFile.replace(/{aws-image-name}/g, params.awsRgistry.trim() + '/' + params.awsImageName.trim())
codeshipStepFile = codeshipStepFile.replace(/{aws-registry}/g, params.awsRgistry.trim())
codeshipStepFile = codeshipStepFile.replace(/{application-name}/g, params.applicationName.trim())
codeshipStepFile = codeshipStepFile.replace(/{application-env}/g, params.applicationEnv.trim())
codeshipStepFile = codeshipStepFile.replace(/{s3-bucket}/g, params.s3Bucket.trim())
if (params.isHaveTestCommand) {
const testStep = `- name: Run test \n service: app \n command: ${params.testCommand.trim()}`
codeshipStepFile = codeshipStepFile.replace(/{run-test-command}/g, testStep)
} else {
codeshipStepFile = codeshipStepFile.replace(/\n {run-test-command}/g, '')
}
dockerRunFile = dockerRunFile.replace(/{port}/g, params.containerPort.trim())
dockerRunFile = dockerRunFile.replace(/{image-name}/g, awsImageName)
makeDirectory('./deploy')
let writeProcess = []
writeProcess.push(writeFile('./deploy/aws_deployment', deployScriptFile))
writeProcess.push(writeFile('./codeship-services.yml', codeshipServiceFile))
writeProcess.push(writeFile('./codeship-steps.yml', codeshipStepFile))
writeProcess.push(writeFile('./deploy/Dockerrun.aws.json', dockerRunFile))
try {
await Promise.all(writeProcess)
} catch(e) {
logger.error('Something went wrong!')
logger.error(e)
}
logger.success('File was generated please copy key file to deploy directory.')
}
async function createInitEnvFile (params) {
let deployScriptFile = readFile(__dirname + '/template_flie/aws_deployment')
let codeshipServiceFile = readFile(__dirname + '/template_flie/codeship-services.yml')
let codeshipStepFile = readFile(__dirname + '/template_flie/codeship-steps.yml')
let dockerRunFile = readFile(__dirname + '/template_flie/Dockerrun.aws.json')
let awsImageName = params.awsImageName.trim().split('/')
awsImageName = awsImageName[awsImageName.length - 1]
codeshipServiceFile = codeshipServiceFile.replace(/{aws-image-name}/g, params.awsRgistry.trim() + '/' + params.awsImageName.trim())
codeshipServiceFile = codeshipServiceFile.replace(/{aws-key-encrypt-path}/g, params.awsKeyEncryptPath.trim())
codeshipServiceFile = codeshipServiceFile.replace(/{aws-region}/g, params.awsRegion.trim())
codeshipStepFile = codeshipStepFile.replace(/{aws-image-name}/g, params.awsRgistry.trim() + '/' + params.awsImageName.trim())
codeshipStepFile = codeshipStepFile.replace(/{aws-registry}/g, params.awsRgistry.trim())
codeshipStepFile = codeshipStepFile.replace(/{application-name}/g, params.applicationName.trim())
codeshipStepFile = codeshipStepFile.replace(/{application-env}/g, params.applicationEnv.trim())
codeshipStepFile = codeshipStepFile.replace(/{s3-bucket}/g, params.s3Bucket.trim())
if (params.isHaveTestCommand) {
const testStep = `- name: Run test \n service: app \n command: ${params.testCommand.trim()}`
codeshipStepFile = codeshipStepFile.replace(/{run-test-command}/g, testStep)
} else {
codeshipStepFile = codeshipStepFile.replace(/\n {run-test-command}/g, '')
}
dockerRunFile = dockerRunFile.replace(/{port}/g, params.containerPort.trim())
dockerRunFile = dockerRunFile.replace(/{image-name}/g, awsImageName)
makeDirectory('./deploy')
let writeProcess = []
writeProcess.push(writeFile('./deploy/aws_deployment', deployScriptFile))
writeProcess.push(writeFile('./codeship-services.yml', codeshipServiceFile))
writeProcess.push(writeFile('./codeship-steps.yml', codeshipStepFile))
writeProcess.push(writeFile('./deploy/Dockerrun.aws.json', dockerRunFile))
try {
await Promise.all(writeProcess)
} catch(e) {
logger.error('Something went wrong!')
logger.error(e)
}
logger.success('File was generated please copy key file to deploy directory.')
}
module.exports = {
createInitFile,
createInitEnvFile
}