Skip to content

Rapid Build UI · Automation Tasks for Components, Mixins and Showcase Site

License

Notifications You must be signed in to change notification settings

rapid-build-ui/cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

72d1d7c · Jul 12, 2019

History

54 Commits
Jul 12, 2019
May 23, 2018
Jun 7, 2018
Jun 7, 2018
Nov 13, 2018
Jul 12, 2019
May 23, 2018
Jul 12, 2019
Jul 12, 2019
Jul 12, 2019
Jun 7, 2018

Repository files navigation

@rapid-build-ui/cli

Set of automation tasks for Rapid Build UI cli, components, mixins and showcase.

Installation

Run in project root!

$ npm install @rapid-build-ui/cli

How To Use: Option 1

Simple way, place in project's root package.json scripts property.

cli

{
  "scripts": {
    "build-continuous": "node node_modules/@rapid-build-ui/cli/ci cli continuous",
    "build-release": "node node_modules/@rapid-build-ui/cli/ci cli release",
    "bump": "node node_modules/@rapid-build-ui/cli/bump cli patch"
  }
}

components

{
  "scripts": {
    "build-continuous": "node node_modules/@rapid-build-ui/cli/ci component continuous",
    "build-release": "node node_modules/@rapid-build-ui/cli/ci component release",
    "bump": "node node_modules/@rapid-build-ui/cli/bump component patch"
  }
}

showcase

{
  "scripts": {
    "build-continuous": "node node_modules/@rapid-build-ui/cli/ci showcase continuous",
    "build-release": "node node_modules/@rapid-build-ui/cli/ci showcase release",
    "bump": "node node_modules/@rapid-build-ui/cli/bump showcase patch"
  }
}

How To Use: Option 2

Use the API. The process.cwd() must be the project's root path!

const cli = require('@rapid-build-ui/cli');
// See API Documentation

API

All return a promise.

  • cli.bump.run(type, semver, extraBumpFile = null)

    • params
      • type (string): cli | component
      • semver (string): 1.0.0 | patch | reference
      • extraBumpFile (string, optional): file path relative to project root
    • overview
      • bump version in all package.json(s)
      • bump extra file (optional)
      • update changelog
  • cli.ci.component.continuous(config)

    • build component
    • copy root files to: dist/client/ (ex: LICENSE)
    • trigger showcase ci build
  • cli.ci.component.release(config)

    • build component
    • copy root files to: dist/client/
    • copy npm config to dist/client/
    • publish npm package from dist/client/
    • publish github release from master
  • cli.ci.cli.continuous(config)

    • copy root files to: dist/server/ (ex: LICENSE)
  • cli.ci.cli.release(config)

    • copy root files to: dist/server/
    • copy npm config to dist/server/
    • publish npm package from dist/server/
    • publish github release from master
  • cli.ci.showcase.continuous(config)

    • create directory for cloned components (.rb-components)
    • clone component repos (into .rb-components)
    • setup components
    • setup showcase
    • build showcase
    • create heroku dist/package.json
    • publish heroku app rapid-build-ui-io-dev
  • cli.ci.showcase.release(config)

    • install client
    • install server
    • build showcase
    • create heroku dist/package.json
    • publish heroku app rapid-build-ui-io-staging
    • publish github release from master
  • cli.ci methods

# config example
repo:
	name:  'rb-alert'
	owner: 'rapid-build-ui'
	slug:  'rapid-build-ui/rb-alert'
tokens:
	github: 'token' # all projects
	heroku: 'token' # showcase
	npm:    'token' # components and cli
	travis: 'token' # components
paths:
	abs: # absolute os paths
		project:    '/rb-alert'
		components: '/rapid-build-ui.io/.rb-components' # (showcase only)
		dist:
			root:   '/rb-alert/dist'
			client: '/rb-alert/dist/client'
			server: '/rb-alert/dist/server'
		src:
			root:   '/rb-alert/src'
			client: '/rb-alert/src/client'
			server: '/rb-alert/src/server'
	rel: # relative paths from project root
		dist:
			root:   'dist'
			client: 'dist/client'
			server: 'dist/server'
		src:
			root:   'src'
			client: 'src/client'
			server: 'src/server'

Release Process

Applies to all projects.

$ git checkout master
$ git pull
$ git merge continuous --no-ff -m "chore(merge): continuous"
$ npm run bump # then check CHANGELOG.md (might need tweaking)
$ git commit -am "chore(bump): v1.x.x"
$ git push # ✓ then wait for successful travis ci build
$ git checkout continuous
$ git pull
$ git merge master -m "chore(merge): master"
$ git push