Skip to content
Thibaud Flury edited this page Aug 21, 2014 · 13 revisions

Release process

ApAM has two public repositories, one containing the released versions and another the snapshots (nightly build).

The release is performed by its developers regularly when the project manager feels like we have a baseline which can be published and is stable enough.

Public repositories

These are the two repositories available so the ApAM dependencies can be fetched.

...
		<repository>
			<id>cloudbees-ApAM-release</id>
			<name>Cloudbees Private Repository - ApAM - Release </name>
			<url>https://repository-apam.forge.cloudbees.com/release/repository/</url>
		</repository>
		<repository>
			<id>cloudbees-ApAM-snapshot</id>
			<name>Cloudbees Private Repository - ApAM - Snapshot</name>
			<url>https://repository-apam.forge.cloudbees.com/snapshot/repository/</url>
		</repository>
...

Introduction to release process

In order to perform a release you must to:

  • Github account with access to ApAM
  • Cloudbees account
  • All the unit tests are finishing with success

With that in hands you just need to set those information into maven settings so they can be used later on by the maven-release-plugin.

Maven settings configuration

Create a file named settings.xml in $HOME/.m2/settings.xml and change it accordingly filling up the placeholders for your usernames and passwords

<settings>
	<servers>
		<server>
			<id>github</id>
			<username><!-- put here your github username--></username>
			<password><!-- put here your github password--></password>
		</server>
		<server>
			<id>cloudbees-private-snapshot-repository</id>
			<username><!-- put here your CB username(not email)--></username>
			<password><!-- put here your CB password(not email)--></password>
			<filePermissions>664</filePermissions>
			<directoryPermissions>775</directoryPermissions>
		</server>
		<server>
			<id>cloudbees-private-release-repository</id>
			<username><!-- put here your CB username(not email)--></username>
			<password><!-- put here your CB password(not email)--></password>
			<filePermissions>664</filePermissions>
			<directoryPermissions>775</directoryPermissions>
		</server>
	</servers>
</settings>

Release process

Before releasing checklist

  • Make sure that all resolved issues are marked as such at issues track
  • Make sure that all resolved issues have the right milestone assigned at issues track
  • Check that all the unit tests resulting PASS at cloudbees

Performing the release

The release process, it happens in two stages, prepare and perform.

Run the following command at the ApAM source root folder:

  • mvn release:prepare -Pcomplete # filling up all the information requested (if necessary to skip tests add -Darguments='-Dmaven.test.skip=true')
  • The prepare seems to fails sometimes (new version is not installed in local repository), mvn install -Pcomplete then mvn release:clean and then restarting the mvn release:prepare should do the trick.
  • mvn release:perform -Pcomplete # just wait so the all components are uploaded property (if necessary to skip tests add -Darguments='-Dmaven.test.skip=true')
  • This one also fails when releasing a new version of the plugin, build with mvn install -Plocal before restarting the mvn release:perform

If everything is well configured (the github and cloudbees account) you should have no problems at this points.

After releasing checklist

This is the checklist to be strictly followed to make sure your release was correctly performed:

Clone this wiki locally