/semantic-release-cli

:cl::round_pushpin: single command setup

Primary LanguageJavaScript

semantic-release-cli

Build Status Coverage Status Dependency Status devDependency Status js-standard-style

NPM NPM

Install

npm install -g semantic-release-cli

cd your-module
semantic-release-cli setup

dialogue

Options

Usage:
  semantic-release-cli setup [options]

Options:
  -h --help           Show this screen.
  -v --version        Show version.
  --[no-]keychain     Use keychain to get passwords [default: true].
  --ask-for-passwords Ask for the passwords even if passwords are stored [default: false].
  --tag=<String>      npm tag to install [default: 'latest'].

Aliases:
  init                 setup

What it Does

semantic-release-cli performs the following steps:

  1. Asks for the information it needs. You will need to provide it with:
    • Whether your GitHub repository is public or private
    • Which NPM registry you want to use (Default: https://registry.npmjs.org/)
    • Your NPM username (unless passwords were previously saved to keychain)
    • Your NPM email
    • Your NPM password
    • Your GitHub username
    • Your GitHub password (unless passwords were previously saved to keychain)
    • Which continuous integration system you want to use. (Options: Travis CI / Pro / Enterprise, or Other)
    • Whether you want to test a single node.js version (e.g. - 0.12) or multiple node.js versions (e.g. - 0.10, 0.12, etc.)
  2. Save your passwords to your local OS's keychain using keytar for future use (unless --no-keychain was specified)
  3. NPM Add User
    • Runs npm adduser with the npm information provided to generate a .npmrc
    • Parses the NPM token from the .npmrc for future use
  4. Create GitHub Personal Token
  5. Overwrite your .travis.yml file (if Travis CI was selected)
    • before_install: npm i -g npm@^2.0.0: install NPM 2
    • before_script: curl -Lo travis_after_all.py https://git.io/vLSON: install travis-after-all script to enable running semantic-release after ALL build succeed
    • after_success: python travis_after_all.py and npm run semantic-release: run semantic-release exactly once after all builds pass
    • Set other sane defaults: sudo: false, cache: directories: node_modules, notifications: email: false, before_script: npm prune
  6. Update your package.json
    • Remove version field (you don't need it anymore -- semantic-release will set the version for you automatically)
    • Add a semantic-release script: "semantic-release": "semantic-release pre && npm publish && semantic-release post"
    • Add semantic-release as a devDependency
    • Add or overwrite the repository field
  7. Login to Travis CI to configure the package
    • Enable builds of your repo
    • Add GH_TOKEN and NPM_TOKEN environment variables in the settings

Other CI Servers

By default, semantic-release-cli supports the popular Travis CI server. If you select Other as your server during configuration, semantic-release-cli will print out the environment variables you need to set on your CI server. You will be responsible for adding these environment variables as well as configuring your CI server to run npm run semantic-release after all the builds pass.

Note that your CI server will also need to set the environment variable CI=true so that semantic-release will not perform a dry run. (Most CI services do this by default.) See the semantic-release documentation for more details.

License

MIT License 2015 © Christoph Witzko and contributors

https://twitter.com/trodrigues/status/509301317467373571