Created
January 6, 2012 17:05
-
-
Save cbeams/1571450 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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