@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cmflow/cli",
3
- "version": "0.65.4",
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
  }
@@ -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 { getConfig, git } from '../common'
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 [mergeBranch(context)]
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
- // eslint-disable-next-line no-console
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
- // eslint-disable-next-line no-console
30
- console.log(chalk.green(figures.tick), 'Merge branch', chalk.green(context.BRANCH_NAME), `into ${context.PRODUCTION_BRANCH} not required`)
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.start('Checkout production branch')
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.success(`Current branch: ${PRODUCTION_BRANCH}`)
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.start(`Merge ${branch.name} into ${PRODUCTION_BRANCH} branch`)
38
+ logger.info(`Merge ${branch.name} into ${PRODUCTION_BRANCH} branch`)
39
39
  git.merge('--no-ff', '-m', `${branch.name}`, branch.name)
40
- logger.success(`${branch.name} merged into ${PRODUCTION_BRANCH} branch`)
40
+ logger.info(`${branch.name} merged into ${PRODUCTION_BRANCH} branch`)
41
41
 
42
42
  setGHToken(context)
43
43
 
44
- logger.start(`Push ${PRODUCTION_BRANCH} branch`)
44
+ logger.info(`Push ${PRODUCTION_BRANCH} branch`)
45
45
  await git.push(ORIGIN, PRODUCTION_BRANCH)
46
- logger.success(`${PRODUCTION_BRANCH} branch pushed`)
46
+ logger.info(`${PRODUCTION_BRANCH} branch pushed`)
47
47
 
48
- logger.start(`Remove ${ORIGIN}/${branch.name} branch`)
48
+ logger.info(`Remove ${ORIGIN}/${branch.name} branch`)
49
49
  await git.push(ORIGIN, ':' + branch.name)
50
- logger.success(`${ORIGIN}/${branch.name} branch correctly removed`)
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 = ({ useYarn, skipTest, skipUnit, skipE2E }) => {
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',
@@ -26,7 +26,7 @@ class NpmCli extends Cli {
26
26
  * @returns {Promise<unknown>}
27
27
  */
28
28
  restore () {
29
- return super.run('install', '--no-package-lock', '--no-production')
29
+ return super.run('ci')
30
30
  }
31
31
  }
32
32
 
@@ -26,7 +26,7 @@ class YarnCli extends Cli {
26
26
  * @returns {Promise<unknown>}
27
27
  */
28
28
  restore () {
29
- return super.run('install', '--frozen-lockfile', '--production=false')
29
+ return super.run('install', '--immutable')
30
30
  }
31
31
  }
32
32
 
@@ -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: pkg.scripts.test_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
- ...getConfig(),
20
+ ...config,
21
+ branch: { name: config.BRANCH_NAME },
22
+ config,
23
+ logger: console,
20
24
  verbose: commander.verbose
21
25
  }
22
26