Shipkit

Build Status Gradle Portal codecov MIT License latest release

Documentation

Imagine

You will be more productive if your releases are fully automated and happen on every change. You will build great product if you can focus on code & features, but not on the release overhead. Shipkit will make it happen. Shipkit is a toolkit for shipping it.

Every team should be empowered to develop with rapid velocity, frictionless releases and semantic versioning just like we do it in Mockito. Shipkit enables Mockito to automatically publish new versions to 2M Mockito users!

Fully automated releases are only the first part of the journey... Imagine the world where you call pull in a new version of some Open Source library and not worry if it breaks compatibility. Imagine that you can submit a pull request to some project, have it reviewed timely, and have the new version with your fix available to you in minutes after your PR is merged. Imagine that for any dependency you consider upgrading, you can view its neatly and consistently maintained release notes. Imagine that you can set up practical Continuous Delivery automation in your project in minutes, by using a well behaving and documented Gradle plugin. Imagine that you can focus on code and features while the release management, versioning, publishing, release notes generation is taken care for you automagically. This is the goal of "Shipkit" project.

Customers

Using Shipkit? Submit a pull request and add your project to the list!

Help us!

If the vision of the project connects with you help us!!!

Features

Currently, Shipkit offers Gradle plugins for automating releases of Java libraries and Gradle plugins. Basic use case is simple: You have code that wants to be delivered to your customers, Shipkit has tools to help you out:

For details see "How Shipkit Works?"

Quick start

Add Gradle plugin:

plugins {
  // TODO: Use latest version from https://plugins.gradle.org/plugin/org.shipkit.java
  id "org.shipkit.java" version "2.0.0" // use 1.0.12 if you still need Java 6/7 and/or Gradle 2/3 support
}

Initialize:

./gradlew initShipkit

Perform release:

./gradlew performRelease

For more and detailed information see docs/getting-started.md

History

Want to include your event? Submit a pull request!

Plans