Skip to content
Cornelius Schumacher edited this page Jan 9, 2016 · 4 revisions

yes_ship_it applies assertions on the software to be released to check that all artifacts are correctly created and create them if that hasn't happened yet. Here is what the assertions do.

built_gem

Assert that a gem can be built and is present.

change_log

Assert that there is a change log present and contains an entry for the asserted version.

An example for a change log file is:

# Change log of my program

## Version 0.0.2

* Second release

## Version 0.0.1

* First release

The preferred way to maintain a change log is documented in Keep a CHANGELOG.

published_gem

Assert that the built gem has been published on RubyGems.org

pushed_code

Assert that the release code has been pushed to the remote repository.

pushed_tag

Assert that the tag has been pushed to the remote repository.

release_archive

Assert that a release archive has been created. The default is a compressed tar archive which contains all the files required to build and run the software.

release_branch

Assert that the local checkout where yes_ship_it is run is on the release branch. The default release branch is master.

submitted_rpm

Assert that the release has been submitted to the Open Build Service.

tag

Assert that a tag corresponding to the version is created in the version control system.

version

Assert that there is a version defined in the source code and make the version available for other assertions. The version assertion takes a parameter version_file where you can configure the file, where the version is stored. The default is lib/version.rb, which is the standard convention for Ruby projects.

An example for a config using a version with parameter is:

assertions:
  release_branch:
  working_directory:
  version:
    version_file: src/polkaversion.h
  change_log:
  tag:
  pushed_tag:
  pushed_code:
  yes_it_shipped:

The preferred version scheme is semantic versioning.

working_directory

Assert that the local checkout where yes_ship_it is run is in a clean state and doesn't have uncomitted changes or untracked files.

yes_it_shipped

Assert that the release has been announced on yes_ship_it's central server: Yes, It Shipped!.