algolia / shipjs

Take control of what is going to be your next release.
https://community.algolia.com/shipjs/
MIT License
765 stars 30 forks source link
automation ci conventional-changelog conventional-commits github process release semantic semver versioning

πŸ›³ Ship.js

npm CircleCI NPM All Contributors Chat on Slack

Take control of what is going to be your next release.
https://community.algolia.com/shipjs/

Features

Installation

Running the following command will guide you to set it up interactively.

npx shipjs setup

This interactive CLI will help you install Ship.js into your package and create a tailored config file for your project.

npx shipjs setup

Why πŸ€·πŸ»β€

Coding is fun, debugging and testing are okay, but releasing is NOT.

When releasing, you go through something like the following:

What could go wrong?

How to solve them❓

In Ship.js, the release process consists of three parts.

Part 1. Preparation (shipjs prepare)

Preview

Run shipjs prepare and it will briefly do the following:

It takes less than a couple of minutes.

Part 2. Review

When you think it's ready to release, merge the PR.

Part 3. Trigger a release (shipjs trigger)

Run shipjs trigger and it will briefly do the following:

You can manually run shipjs trigger on the base branch after the PR is merged.

However you can also configure your CI service(e.g. CircleCI) to do this for you. It means the longest process is on the CI service asynchronously, not occupying your working environment.

Getting Started

Let's move on to the guide.

Or, you can watch this video if you prefer.

Getting Started with Ship.js

How is it different from semantic-release?

semantic-release is a tool for fully automated version management and package publishing.

Ship.js gives you more control over the release process. Ship.js automatically creates a PR before publishing every release, so that you can:

How to Contribute?

Read Contribution Guide β†’

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Eunjae Lee

πŸ’» πŸ“–

Fred K. Schott

πŸ“–

Yasuaki Uechi

πŸ’» πŸ“–

Dmitry Ivakhnenko

πŸ’» πŸ“–

James George

πŸ’» πŸ“–

kazuya kawaguchi

πŸ’» πŸ“

tyankatsu

πŸ’» πŸ“–

Haroen Viaene

πŸ’»

Shinya Ohyanagi

πŸ’»

Donghoon Song

πŸ’»

Miyata Jumpei

πŸ’»

lulzneko

πŸ’» πŸ“–

Vinayak Kulkarni

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!

Badge deploy

Show the world you're using Ship.js

[![deploy](https://img.shields.io/badge/deploy-πŸ›³%20Ship.js-blue?style=flat)](https://github.com/algolia/shipjs)
<a title="deploy" href="https://github.com/algolia/shipjs" rel="nofollow">
  <img src="https://img.shields.io/badge/deploy-πŸ›³%20Ship.js-blue?style=flat" />
</a>