Skip to content

Instantly share code, notes, and snippets.

@cbeams
Created January 6, 2012 17:05
Show Gist options
  • Select an option

  • Save cbeams/1571450 to your computer and use it in GitHub Desktop.

Select an option

Save cbeams/1571450 to your computer and use it in GitHub Desktop.
OVERVIEW
==================================
The release process consists of six steps:
1. staging a release via bamboo to http://repo.springsource.org
2. verifying the contents of that staged release
3. verifying distribution, docs and schema publication
4. pushing the release into maven central
5. promoting the release out of staging at repo.springsource.org
6. announcing the release
Each of these steps are quite simple, but I've spelled it out in detail below to ensure there's no confusion.
STEP 1: STAGE A RELEASE
==================================
* Go to https://build.springsource.org/browse/INT-B21X-JOB1
* Click on "Artifactory Release Management". Fill it out as follows:
Artifactory Pro Release Staging
-------------------------------
Release Value: 2.1.0.RELEASE
Next Integration Value: 2.1.1.BUILD-SNAPSHOT
VCS Configuration
-------------------------------
[ ] Use Release Branch
[x] Create VCS Tag
Tag URL/name: v2.1.0.RELEASE
Tag comment: Release version 2.1.0.RELEASE
Next dev vers comment: Increment version to 2.1.1.BUILD-SNAPSHOT
Publishing repository: libs-staging-local
Staging comment: <empty>
* Click "Build and Release to Artifactory"
* Wait for the build to succeed.
* Perform a `git pull` locally and verify the new commits and tag are present.
STEP 2: VERIFY STAGED RELEASE
==================================
* Go to http://repo.springsource.org/webapp/builds/
* Navigate to your build and click the 'published modules' tab
* Ensure that all expected modules are present
* Navigate to the modules in the tree view and spot-check their contents
* manifest files in module jars
* drill down to API and reference docs, view them directly in browser
* Perform any internal testing against the staged release artifacts by working against http://repo.springsource.org/libs-staging-local in Maven and Gradle build scripts.
STEP 3: VERIFY DIST ARCHIVE, DOCS, AND SCHEMA PUBLICATION
==================================
Skip this step for now - the publication script is not yet finished, so we'll publish zip files by hand.
At this point, your -docs, -dist, and -schema archives should have been discovered and published by an automated script. Look at the following sites to ensure they are published as expected:
http://static.springsource.org/spring-integration/
http://www.springsource.com/download/community?project=Spring%20Integration
http://static.springsource.org/schema/integration/
STEP 4: PUSH RELEASE TO MAVEN CENTRAL
==================================
You've verified the staged release in Artifactory, now let's try to push it into Maven Central.
Note that we are working with JFrog on making this step pushbutton-easy, probably directly from the Bamboo UI. In the meantime, there's a simple command line curl invocation necessary against Artifactory's REST API.
Also note that the command currently must be run by an Artifactory user with administrative rights. Currently this is just Chris and Trevor.
* Navigate back to http://repo.springsource.org/webapp/builds/
* Click on your "Build Name". This should be something like "Spring Integration - 2.1.x - Default Job"
* From the location bar, select and copy the URL-escaped name of your build. This should look something like "Spring%20Integration%20-%202.1.x%20-%20Default%20Job"
* Craft the following command at the command line, replacing BUILD_NAME with the URL-escaped value above and BUILD_NUMBER appropriately:
$ curl -X POST -v -u cbeams "http://repo.springsource.org/api/plugins/execute/nexusPush?params=stagingProfile=buildmaster|close=true|build.name=<BUILD_NAME>|build.number=<BUILD_NUMBER>"
* When you run this command, you will be prompted for your password. This must be your ENCRYPTED artifactory password![1]
* When the command completes you should see "successfully closed staging repository". If the command returns with any errors (like missing elements from the project poms, etc) then fix those and try again.
* Go to https://oss.sonatype.org and log in with
username: sonatype
password: <password>
* You will see your "closed staging repository" there. Click "Release" to push the artifacts into Maven Central.
STEP 5: PROMOTE STAGED RELEASE IN ARTIFACTORY
==================================
Remember that your artifacts are still sitting within the libs-staging-local repository under Artifactory. Now that we've successfully pushed them all the way through to Maven Central, promote them in Artifactory to libs-release-local.
* Go to https://build.springsource.org
* Navigate to the build number that successfully staged the release
* Navigate to Default Job > Artifactory
* Under Artifactory Release Management > Promote, fill in the following:
Target Status: Released
Comment: <empty>
Target prom. repo: libs-release-local
[ ] Include dependencies
[ ] Use Copy
Click "Update"
STEP 6: ANNOUNCE THE RELEASE!
==================================
At this point your artifacts are available for all the world to see -- in Maven Central and from our own repo.springsource.org. Blog, tweet, announce on springsource.org and forum.springsource.org; you know the drill.
FOOTNOTES
==================================
[1] See http://wiki.jfrog.org/confluence/display/RTF/Centrally+Secure+Passwords for information on retrieving your encrypted Artifactory password.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment