@cmflow/cli 0.65.4 → 0.66.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -1
- package/src/commands/merge.js +11 -15
- package/src/commands/tasks/merge-branch.js +8 -8
- package/src/commands/tasks/run-test.js +8 -2
- package/src/common/cli/npm.js +1 -1
- package/src/common/cli/yarn.js +1 -1
- package/src/common/get-config.js +6 -3
- package/src/common/run-command.js +5 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cmflow/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.66.0",
|
|
4
4
|
"description": "An awesome Git Flow",
|
|
5
5
|
"author": "camfou",
|
|
6
6
|
"license": "MIT",
|
|
@@ -85,5 +85,11 @@
|
|
|
85
85
|
"eslint -c .eslintrc --fix",
|
|
86
86
|
"git add"
|
|
87
87
|
]
|
|
88
|
+
},
|
|
89
|
+
"flow": {
|
|
90
|
+
"branch": {
|
|
91
|
+
"develop": "master",
|
|
92
|
+
"production": "master"
|
|
93
|
+
}
|
|
88
94
|
}
|
|
89
95
|
}
|
package/src/commands/merge.js
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import chalk from 'chalk'
|
|
2
2
|
import figures from 'figures'
|
|
3
3
|
import { mergeBranch } from './tasks/merge-branch'
|
|
4
|
-
import {
|
|
4
|
+
import { configureGitWorkspace, git } from '../common'
|
|
5
5
|
|
|
6
6
|
export class Merge {
|
|
7
|
-
mapContext (commander, context) {
|
|
8
|
-
return {
|
|
9
|
-
...context,
|
|
10
|
-
config: getConfig()
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
7
|
getTasks (context) {
|
|
15
8
|
const { RELEASE_CANDIDATE_TAG } = context
|
|
16
9
|
this.lastCommitMessage = git.getLastCommitMsg()
|
|
17
10
|
if (this.lastCommitMessage.includes(RELEASE_CANDIDATE_TAG)) {
|
|
18
|
-
return [
|
|
11
|
+
return [
|
|
12
|
+
{
|
|
13
|
+
title: 'Configure workspace',
|
|
14
|
+
task: () => configureGitWorkspace(context)
|
|
15
|
+
},
|
|
16
|
+
mergeBranch(context)
|
|
17
|
+
]
|
|
19
18
|
}
|
|
20
19
|
return []
|
|
21
20
|
}
|
|
@@ -23,13 +22,10 @@ export class Merge {
|
|
|
23
22
|
success (context) {
|
|
24
23
|
const { RELEASE_CANDIDATE_TAG } = context
|
|
25
24
|
if (this.lastCommitMessage.includes(RELEASE_CANDIDATE_TAG)) {
|
|
26
|
-
|
|
27
|
-
console.log(chalk.green(figures.tick), 'Branch', chalk.green(context.BRANCH_NAME), `merged into ${context.PRODUCTION_BRANCH}`)
|
|
25
|
+
context.logger.info(chalk.green(figures.tick), 'Branch', chalk.green(context.BRANCH_NAME), `merged into ${context.PRODUCTION_BRANCH}`)
|
|
28
26
|
} else {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
// eslint-disable-next-line no-console
|
|
32
|
-
console.log(chalk.green(figures.tick), 'Last commit message : ', chalk.green(this.lastCommitMessage), `does not contains ${RELEASE_CANDIDATE_TAG}`)
|
|
27
|
+
context.logger.info(chalk.green(figures.tick), 'Merge branch', chalk.green(context.BRANCH_NAME), `into ${context.PRODUCTION_BRANCH} not required`)
|
|
28
|
+
context.logger.info(chalk.green(figures.tick), 'Last commit message : ', chalk.green(this.lastCommitMessage), `does not contains ${RELEASE_CANDIDATE_TAG}`)
|
|
33
29
|
}
|
|
34
30
|
}
|
|
35
31
|
}
|
|
@@ -23,31 +23,31 @@ async function gitMep (context) {
|
|
|
23
23
|
git.reset('--hard')
|
|
24
24
|
git.clean('-f', '-d').sync()
|
|
25
25
|
|
|
26
|
-
logger.
|
|
26
|
+
logger.info('Checkout production branch')
|
|
27
27
|
|
|
28
28
|
git.config('--replace-all', 'remote.origin.fetch', '+refs/heads/*:refs/remotes/origin/*')
|
|
29
29
|
git.fetch().sync()
|
|
30
30
|
git.fetch('--tags').sync()
|
|
31
31
|
git.checkout('-qf', PRODUCTION_BRANCH).sync()
|
|
32
32
|
|
|
33
|
-
logger.
|
|
33
|
+
logger.info(`Current branch: ${PRODUCTION_BRANCH}`)
|
|
34
34
|
|
|
35
35
|
const building = git.getLastCommitMsg()
|
|
36
36
|
logger.info('Last commit message on production', building)
|
|
37
37
|
|
|
38
|
-
logger.
|
|
38
|
+
logger.info(`Merge ${branch.name} into ${PRODUCTION_BRANCH} branch`)
|
|
39
39
|
git.merge('--no-ff', '-m', `${branch.name}`, branch.name)
|
|
40
|
-
logger.
|
|
40
|
+
logger.info(`${branch.name} merged into ${PRODUCTION_BRANCH} branch`)
|
|
41
41
|
|
|
42
42
|
setGHToken(context)
|
|
43
43
|
|
|
44
|
-
logger.
|
|
44
|
+
logger.info(`Push ${PRODUCTION_BRANCH} branch`)
|
|
45
45
|
await git.push(ORIGIN, PRODUCTION_BRANCH)
|
|
46
|
-
logger.
|
|
46
|
+
logger.info(`${PRODUCTION_BRANCH} branch pushed`)
|
|
47
47
|
|
|
48
|
-
logger.
|
|
48
|
+
logger.info(`Remove ${ORIGIN}/${branch.name} branch`)
|
|
49
49
|
await git.push(ORIGIN, ':' + branch.name)
|
|
50
|
-
logger.
|
|
50
|
+
logger.info(`${ORIGIN}/${branch.name} branch correctly removed`)
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
export function mergeBranch (context) {
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { git, npm, yarn } from '../../common'
|
|
2
2
|
|
|
3
|
-
export const runTest = ({
|
|
3
|
+
export const runTest = ({
|
|
4
|
+
E2E_CMD,
|
|
5
|
+
useYarn,
|
|
6
|
+
skipTest,
|
|
7
|
+
skipUnit,
|
|
8
|
+
skipE2E
|
|
9
|
+
}) => {
|
|
4
10
|
const manager = useYarn ? yarn : npm
|
|
5
11
|
|
|
6
12
|
return [
|
|
@@ -12,7 +18,7 @@ export const runTest = ({ useYarn, skipTest, skipUnit, skipE2E }) => {
|
|
|
12
18
|
{
|
|
13
19
|
title: 'E2E test',
|
|
14
20
|
skip: () => skipTest || skipE2E,
|
|
15
|
-
task: () => manager.run('test_e2e')
|
|
21
|
+
task: () => manager.run(E2E_CMD || 'test_e2e')
|
|
16
22
|
},
|
|
17
23
|
{
|
|
18
24
|
title: 'Reset changes',
|
package/src/common/cli/npm.js
CHANGED
package/src/common/cli/yarn.js
CHANGED
package/src/common/get-config.js
CHANGED
|
@@ -92,12 +92,15 @@ export function getConfig () {
|
|
|
92
92
|
GIT_USER_EMAIL
|
|
93
93
|
} = process.env
|
|
94
94
|
|
|
95
|
+
const e2eCmd = pkg.scripts.test_e2e ? 'test_e2e' : pkg.scripts['test:e2e'] ? 'test:e2e' : undefined
|
|
96
|
+
|
|
95
97
|
return {
|
|
96
98
|
PROJECT_NAME: PROJECT_NAME || projectName,
|
|
97
99
|
HAS_YARN: hasYarn(),
|
|
98
100
|
HAS_LERNA: pkg.dependencies.lerna || pkg.devDependencies.lerna,
|
|
99
101
|
HAS_BUILD: pkg.scripts.build,
|
|
100
|
-
HAS_E2E:
|
|
102
|
+
HAS_E2E: !!e2eCmd,
|
|
103
|
+
E2E_CMD: e2eCmd,
|
|
101
104
|
HAS_BUILD_CHANGELOG: pkg.scripts.build_changelog,
|
|
102
105
|
get DEPLOY_ON_DOCKER () {
|
|
103
106
|
return toBool(process.env.DEPLOY_ON_DOCKER) && DOCKER_HUB_ID && DOCKER_HUB_PWD
|
|
@@ -107,10 +110,10 @@ export function getConfig () {
|
|
|
107
110
|
RELEASE_CANDIDATE_TAG: '[MEP]',
|
|
108
111
|
ORIGIN: 'origin',
|
|
109
112
|
get PRODUCTION_BRANCH () {
|
|
110
|
-
return process.env.PRODUCTION_BRANCH || 'production'
|
|
113
|
+
return get('flow.branch.production') || process.env.PRODUCTION_BRANCH || 'production'
|
|
111
114
|
},
|
|
112
115
|
get DEVELOP_BRANCH () {
|
|
113
|
-
return process.env.DEVELOP_BRANCH || 'master'
|
|
116
|
+
return get('flow.branch.develop') || process.env.DEVELOP_BRANCH || 'master'
|
|
114
117
|
},
|
|
115
118
|
get OWNER () {
|
|
116
119
|
return process.env.OWNER || owner
|
|
@@ -14,9 +14,13 @@ function createTasksRunner (tasks, ctx) {
|
|
|
14
14
|
|
|
15
15
|
export async function runCommand (klass, commander) {
|
|
16
16
|
try {
|
|
17
|
+
const config = getConfig()
|
|
17
18
|
let context = {
|
|
18
19
|
...getReleaseConfig(),
|
|
19
|
-
...
|
|
20
|
+
...config,
|
|
21
|
+
branch: { name: config.BRANCH_NAME },
|
|
22
|
+
config,
|
|
23
|
+
logger: console,
|
|
20
24
|
verbose: commander.verbose
|
|
21
25
|
}
|
|
22
26
|
|