Sync docs from master to gh-pages

This commit is contained in:
buildmaster
2018-06-25 07:22:39 +00:00
parent 4fc5f4dd50
commit 2b10a155af
4 changed files with 101 additions and 22 deletions

View File

@@ -1,8 +1,9 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>1.&nbsp;Spring Cloud Release Tools</title><link rel="stylesheet" type="text/css" href="css/manual-multipage.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="multi_spring-cloud-release-tools.html" title="Spring Cloud Release Tools"><link rel="up" href="multi_spring-cloud-release-tools.html" title="Spring Cloud Release Tools"><link rel="prev" href="multi_spring-cloud-release-tools.html" title="Spring Cloud Release Tools"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">1.&nbsp;Spring Cloud Release Tools</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="multi_spring-cloud-release-tools.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;</td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="_spring_cloud_release_tools" href="#_spring_cloud_release_tools"></a>1.&nbsp;Spring Cloud Release Tools</h1></div></div></div><p>Spring Cloud projects reuse the same pattern of building and deploying the applications. That&#8217;s
why this tool makes it easy to automate the release / dependency update process of our applications.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_what_does_it_do" href="#_what_does_it_do"></a>1.1&nbsp;What does it do?</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Clones the Spring Cloud Release project and picks all versions (Boot + Cloud projects)</li><li class="listitem"><p class="simpara">Modifies the project versions with values from SC-Release</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">throws an exception when we bump versions to release and there&#8217;s a SNAPSHOT version referenced in the POM</li></ul></div></li><li class="listitem"><p class="simpara">Performs the build and checks if the <code class="literal">docs</code> modules have properly created the documentation</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">throws an exception when in the <code class="literal">docs</code> module there&#8217;s an unresolved tag in any HTML file</li></ul></div></li><li class="listitem">Commits changed poms (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Creates a tag for the release / milestone (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Runs the deployment of the artifacts</li><li class="listitem">Publishes the docs (to <code class="literal">spring-cloud-static</code> for non-snapshots, to <code class="literal">gh-pages</code> for snapshots)</li><li class="listitem">Reverts back to snapshots, bumps the version by a patch (<code class="literal">1.0.1.RELEASE</code> &#8594; <code class="literal">1.0.2.BUILD-SNAPSHOT</code>) (ONLY FOR RELEASE VERSIONS)</li><li class="listitem">Closes the milestone on Github (e.g. <code class="literal">v1.0.1.RELEASE</code>) (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates an email template under <code class="literal">target/email.txt</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a blog template under <code class="literal">target/blog.md</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a tweet template under <code class="literal">target/tweet.txt</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a release notes template under <code class="literal">target/notes.md</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Updates project information in Sagan (<a class="link" href="http://spring.io" target="_top">http://spring.io</a>) (ONLY FOR SNAPSHOT / RELEASE VERSIONS)</li><li class="listitem">For <code class="literal">GA</code>/ <code class="literal">SR</code> release will create an issue in Spring Guides under <a class="link" href="https://github.com/spring-guides/getting-started-guides/issues/" target="_top">https://github.com/spring-guides/getting-started-guides/issues/</a></li><li class="listitem">For <code class="literal">GA</code>/ <code class="literal">SR</code> release will update the links under <a class="link" href="https://github.com/spring-cloud/spring-cloud-static/tree/gh-pages/current" target="_top">https://github.com/spring-cloud/spring-cloud-static/tree/gh-pages/current</a></li></ul></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>Starting with version that does Sagan integration, you MUST pass the OAuth token,
otherwise the application will fail to start</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_what_should_i_do_first" href="#_what_should_i_do_first"></a>1.2&nbsp;What should I do first?</h2></div></div></div><p>Members of the Spring Cloud Team typically use this tool as follows. They first
why this tool makes it easy to automate the release / dependency update process of our applications.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_what_does_it_do" href="#_what_does_it_do"></a>1.1&nbsp;What does it do?</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_single_project" href="#_single_project"></a>1.1.1&nbsp;Single project</h3></div></div></div><p>For a single project</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Clones the Spring Cloud Release project and picks all versions (Boot + Cloud projects)</li><li class="listitem"><p class="simpara">Modifies the project versions with values from SC-Release</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">throws an exception when we bump versions to release and there&#8217;s a SNAPSHOT version referenced in the POM</li></ul></div></li><li class="listitem"><p class="simpara">Performs the build and checks if the <code class="literal">docs</code> modules have properly created the documentation</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">throws an exception when in the <code class="literal">docs</code> module there&#8217;s an unresolved tag in any HTML file</li></ul></div></li><li class="listitem">Commits changed poms (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Creates a tag for the release / milestone (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Runs the deployment of the artifacts</li><li class="listitem">Publishes the docs (to <code class="literal">spring-cloud-static</code> for non-snapshots, to <code class="literal">gh-pages</code> for snapshots)</li><li class="listitem">Reverts back to snapshots, bumps the version by a patch (<code class="literal">1.0.1.RELEASE</code> &#8594; <code class="literal">1.0.2.BUILD-SNAPSHOT</code>) (ONLY FOR RELEASE VERSIONS)</li><li class="listitem">Closes the milestone on Github (e.g. <code class="literal">v1.0.1.RELEASE</code>) (ONLY FOR NON-SNAPSHOT VERSIONS)</li></ul></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>Starting with version that does Sagan integration, you MUST pass the OAuth token,
otherwise the application will fail to start</p></td></tr></table></div><p>After project release</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Generates an email template under <code class="literal">target/email.txt</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a blog template under <code class="literal">target/blog.md</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a tweet template under <code class="literal">target/tweet.txt</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a release notes template under <code class="literal">target/notes.md</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Updates project information in Sagan (<a class="link" href="http://spring.io" target="_top">http://spring.io</a>) (ONLY FOR SNAPSHOT / RELEASE VERSIONS)</li><li class="listitem">For <code class="literal">GA</code>/ <code class="literal">SR</code> release will create an issue in Spring Guides under <a class="link" href="https://github.com/spring-guides/getting-started-guides/issues/" target="_top">https://github.com/spring-guides/getting-started-guides/issues/</a></li><li class="listitem">For <code class="literal">GA</code>/ <code class="literal">SR</code> release will update the links under <a class="link" href="https://github.com/spring-cloud/spring-cloud-static/tree/gh-pages/current" target="_top">https://github.com/spring-cloud/spring-cloud-static/tree/gh-pages/current</a></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_meta_release" href="#_meta_release"></a>1.1.2&nbsp;Meta-release</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Uses the fixed versions to clone and check out each project (e.g. <code class="literal">spring-cloud-sleuth: 2.1.0.RELEASE</code>)</li><li class="listitem"><p class="simpara">From the version analyzes the branch and checks it out. E.g.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">for <code class="literal">spring-cloud-release&#8217;s `Finchley.RELEASE</code> version will resolve either <code class="literal">Finchley.x</code> branch or will fallback to <code class="literal">master</code> if there&#8217;s no <code class="literal">Finchley.x</code> branch.</li><li class="listitem">for <code class="literal">spring-cloud-sleuth&#8217;s `2.1.0.RELEASE</code> version will resolve <code class="literal">2.1.x</code> branch</li></ul></div></li><li class="listitem">Performs the release tasks per each project</li><li class="listitem">Performs the post release tasks at the end of the release</li></ul></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>For the meta-releaser to work we assume that the path to the
custom configuration file for each project is always <code class="literal">config/releaser.yml</code>.</p></td></tr></table></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_what_should_i_do_first" href="#_what_should_i_do_first"></a>1.2&nbsp;What should I do first?</h2></div></div></div><p>Members of the Spring Cloud Team typically use this tool as follows. They first
clone the releaser locally and build the jar manually</p><pre class="programlisting">$ git clone git@github.com:spring-cloud/spring-cloud-release-tools.git
$ <span xmlns:d="http://docbook.org/ns/docbook" class="hl-keyword">cd</span> spring-cloud-release-tools
$ ./mvnw clean install</pre><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>You must set the value of the OAuth token. You can do it either via
@@ -101,8 +102,14 @@ $ java -jar ~/repo/spring-cloud-release-tools/spring-cloud-release-tools-spring/
</p><pre class="programlisting">$ java -jar ~/repo/spring-cloud-release-tools/spring-cloud-release-tools-spring/target/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>BUILD-SNAPSHOT.jar --releaser.pom.branch=vDalston.SR1 --spring.config.name=releaser -r d-p -i=false</pre><p>
</p><p><b>Running single task 'closeMilestone' (automatic).&nbsp;</b>
</p><pre class="programlisting">$ java -jar ~/repo/spring-cloud-release-tools/spring-cloud-release-tools-spring/target/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>BUILD-SNAPSHOT.jar --releaser.pom.branch=vDalston.SR1 --spring.config.name=releaser --closeMilestone -i=false</pre><p>
</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_project_options" href="#_project_options"></a>1.5&nbsp;Project options</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><code class="literal">releaser.fixed-versions</code> - A String to String mapping of manually set versions. E.g. <code class="literal">"spring-cloud-cli" &#8594; "1.0.0.RELEASE"</code> will set
the <code class="literal">spring-cloud-cli.version</code> to <code class="literal">1.0.0.RELEASE</code> regardless of what was set in <code class="literal">spring-cloud-release</code> project. Example <code class="literal">--releaser.fixed-versions[spring-cloud-cli]=1.0.0.RELEASE</code>.</li><li class="listitem"><code class="literal">releaser.git.fetch-versions-from-git</code> - If <code class="literal">true</code> then should fill the map of versions from Git. If <code class="literal">false</code> then picks fixed versions</li><li class="listitem"><code class="literal">releaser.git.clone-destination-dir</code> - Where should the Spring Cloud Release repo get cloned to. If null defaults to a temporary directory</li><li class="listitem"><code class="literal">releaser.git.spring-cloud-release-git-url</code> - URL to Spring Cloud Release Git repository. Defaults to <code class="literal"><a class="link" href="https://github.com/spring-cloud/spring-cloud-release" target="_top">https://github.com/spring-cloud/spring-cloud-release</a></code></li><li class="listitem"><code class="literal">releaser.git.documentation-url</code> - URL to the documentation Git repository. Defaults to <code class="literal"><a class="link" href="https://github.com/spring-cloud/spring-cloud-static" target="_top">https://github.com/spring-cloud/spring-cloud-static</a></code></li><li class="listitem"><code class="literal">releaser.git.documentation-branch</code> - Branch to check out for the documentation project. Defaults to <code class="literal">gh-pages</code></li><li class="listitem"><code class="literal">releaser.git.oauth-token</code> - GitHub OAuth token to be used to interact with GitHub repo.</li><li class="listitem"><code class="literal">releaser.git.username</code> - Optional Git username. If not passed keys will be used for authentication.</li><li class="listitem"><code class="literal">releaser.git.password</code> - Optional Git password. If not passed keys will be used for authentication.</li><li class="listitem"><code class="literal">releaser.git.number-of-checked-milestones</code> - In order not to iterate endlessly over milestones we introduce a threshold of milestones that
</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_how_to_run_meta_release_automatic_mode" href="#_how_to_run_meta_release_automatic_mode"></a>1.5&nbsp;How to run meta-release (automatic-mode)</h2></div></div></div><p>All you have to do is run the jar with the releaser and pass the
<code class="literal">-x=true</code> option to turn on meta-release and a list of fixed versions
in the `--"releaser.fixed-versions[project-name]=project-version" format</p><pre class="screen">$ java -jar spring-cloud-release-tools-spring/target/spring-cloud-release-tools-spring-1.0.0.BUILD-SNAPSHOT.jar --spring.config.name=releaser -x=true --"releaser.fixed-versions[spring-cloud-sleuth]=2.0.1.BUILD-SNAPSHOT"</pre><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>For the meta release the <code class="literal">startFrom</code> or <code class="literal">taskNames</code> take into consideration
the project names, not task names. E.g. you can start from <code class="literal">spring-cloud-netflix</code> project,
or build only tasks with names <code class="literal">spring-cloud-build,spring-cloud-sleuth</code>.</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_project_options" href="#_project_options"></a>1.6&nbsp;Project options</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><code class="literal">releaser.fixed-versions</code> - A String to String mapping of manually set versions. E.g. <code class="literal">"spring-cloud-cli" &#8594; "1.0.0.RELEASE"</code> will set
the <code class="literal">spring-cloud-cli.version</code> to <code class="literal">1.0.0.RELEASE</code> regardless of what was set in <code class="literal">spring-cloud-release</code> project. Example <code class="literal">--releaser.fixed-versions[spring-cloud-cli]=1.0.0.RELEASE</code>.
Use these properties to provide versions for the meta release.</li><li class="listitem"><code class="literal">releaser.meta-release.enabled</code> - You have to turn it on to enable a meta release. Defaults to <code class="literal">false</code></li><li class="listitem"><code class="literal">releaser.meta-release.release-train-project-name</code> - Name of the project that represents the BOM of the release train. Defaults to <code class="literal">spring-cloud-release</code></li><li class="listitem"><code class="literal">releaser.meta-release.git-org-url</code> - The URL of the Git organization. We&#8217;ll append each project&#8217;s name to it.
Defaults to <code class="literal"><a class="link" href="https://github.com/spring-cloud" target="_top">https://github.com/spring-cloud</a></code></li><li class="listitem"><code class="literal">releaser.git.fetch-versions-from-git</code> - If <code class="literal">true</code> then should fill the map of versions from Git. If <code class="literal">false</code> then picks fixed versions</li><li class="listitem"><code class="literal">releaser.git.clone-destination-dir</code> - Where should the Spring Cloud Release repo get cloned to. If null defaults to a temporary directory</li><li class="listitem"><code class="literal">releaser.git.spring-cloud-release-git-url</code> - URL to Spring Cloud Release Git repository. Defaults to <code class="literal"><a class="link" href="https://github.com/spring-cloud/spring-cloud-release" target="_top">https://github.com/spring-cloud/spring-cloud-release</a></code></li><li class="listitem"><code class="literal">releaser.git.documentation-url</code> - URL to the documentation Git repository. Defaults to <code class="literal"><a class="link" href="https://github.com/spring-cloud/spring-cloud-static" target="_top">https://github.com/spring-cloud/spring-cloud-static</a></code></li><li class="listitem"><code class="literal">releaser.git.documentation-branch</code> - Branch to check out for the documentation project. Defaults to <code class="literal">gh-pages</code></li><li class="listitem"><code class="literal">releaser.git.oauth-token</code> - GitHub OAuth token to be used to interact with GitHub repo.</li><li class="listitem"><code class="literal">releaser.git.username</code> - Optional Git username. If not passed keys will be used for authentication.</li><li class="listitem"><code class="literal">releaser.git.password</code> - Optional Git password. If not passed keys will be used for authentication.</li><li class="listitem"><code class="literal">releaser.git.number-of-checked-milestones</code> - In order not to iterate endlessly over milestones we introduce a threshold of milestones that
we will go through to find the matching milestone. Defaults to <code class="literal">10</code></li><li class="listitem"><code class="literal">releaser.maven.build-command</code> - Command to be executed to build the project. Defaults to <code class="literal">./mvnw clean install -Pdocs</code></li><li class="listitem"><code class="literal">releaser.maven.deploy-command</code> - Command to be executed to deploy a built project". Defaults to <code class="literal">./mvnw deploy -DskipTests -Pfast</code></li><li class="listitem"><code class="literal">releaser.maven.publish-docs-commands</code> - Command to be executed to deploy a built project. If present <code class="literal">{{version}}</code> will be replaced by the proper version.
Defaults to the standard Spring Cloud wget and execution of ghpages.</li><li class="listitem"><code class="literal">releaser.maven.system-properties</code> - Additional system properties that should be passed to any commands. If present <code class="literal">{{systemProps}}</code> will be replaced by the contents of this property.</li><li class="listitem"><code class="literal">releaser.maven.wait-time-in-minutes</code> - Max wait time in minutes for the process to finish. Defaults to <code class="literal">20</code></li><li class="listitem"><code class="literal">releaser.gradle.gradle-props-substitution</code> - a map containing a <code class="literal">key</code> which is a property key inside <code class="literal">gradle.properties</code> and a <code class="literal">value</code> of
a project name. E.g. in <code class="literal">gradle.properties</code> you have <code class="literal">foo=1.0.0.BUILD-SNAPSHOT</code> and you would like <code class="literal">spring-cloud-contract</code> version to
@@ -114,18 +121,19 @@ Example for application arguments: <code class="literal">java -jar target/spring
run a script (e.g. <code class="literal">scripts/foo.sh</code>) then inside <code class="literal">foo.sh</code> if you call a Maven build <code class="literal">./mvnw clean install</code>
then <span class="strong"><strong>remember to pass all arguments of the script there too</strong></span>. E.g. <code class="literal">./mvnw clean install ${@}</code>. That&#8217;s because
the releaser will pass any system properties to the <code class="literal">build</code> / <code class="literal">deploy</code> command, such as system properties
with keys and we need them to be passed inside the command executed by the releaser.</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_examples" href="#_examples"></a>1.6&nbsp;Examples</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_keeping_configuration_in_the_project" href="#_keeping_configuration_in_the_project"></a>1.6.1&nbsp;Keeping configuration in the project</h3></div></div></div><p>If your project has some custom configuration (e.g. Spring Cloud Contract needs a script to be executed
with keys and we need them to be passed inside the command executed by the releaser.</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_examples" href="#_examples"></a>1.7&nbsp;Examples</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_keeping_configuration_in_the_project" href="#_keeping_configuration_in_the_project"></a>1.7.1&nbsp;Keeping configuration in the project</h3></div></div></div><p>If your project has some custom configuration (e.g. Spring Cloud Contract needs a script to be executed
to build the project and properly merge the docs) then you can put a file named e.g. <code class="literal">releaser.yml</code> under <code class="literal">config</code>
folder and run your application like this:</p><pre class="programlisting">$ wget http://repo.spring.io/libs-milestone/org/springframework/cloud/internal/spring-cloud-release-tools-spring/<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar -O ../spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar
$ java -jar target/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar --spring.config.name=releaser</pre><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="images/tip.png"></td><th align="left">Tip</th></tr><tr><td align="left" valign="top"><p>Notice that we&#8217;re downloading the jar to a parent folder, not to <code class="literal">target</code>. That&#8217;s because <code class="literal">target</code> get cleaned
during the build process</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_specifying_a_branch" href="#_specifying_a_branch"></a>1.6.2&nbsp;Specifying A Branch</h3></div></div></div><p>By deafult the releaser will default to using the <code class="literal">master</code> branch of <code class="literal">spring-cloud-release</code>.
If you would like to use another branch you can specify it using the <code class="literal">releaser.pom.branch</code> property.</p><pre class="programlisting">$ java -jar spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar --releaser.pom.branch=Camden.SR6</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_using_environment_variables" href="#_using_environment_variables"></a>1.6.3&nbsp;Using Environment Variables</h3></div></div></div><p>In some cases it might be easier to specify environment variables instead of passing parameters to
during the build process</p></td></tr></table></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>For the meta-releaser to work we assume that the path to the
configuration file is always <code class="literal">config/releaser.yml</code>.</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_specifying_a_branch" href="#_specifying_a_branch"></a>1.7.2&nbsp;Specifying A Branch</h3></div></div></div><p>By deafult the releaser will default to using the <code class="literal">master</code> branch of <code class="literal">spring-cloud-release</code>.
If you would like to use another branch you can specify it using the <code class="literal">releaser.pom.branch</code> property.</p><pre class="programlisting">$ java -jar spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar --releaser.pom.branch=Camden.SR6</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_using_environment_variables" href="#_using_environment_variables"></a>1.7.3&nbsp;Using Environment Variables</h3></div></div></div><p>In some cases it might be easier to specify environment variables instead of passing parameters to
<code class="literal">releaser</code>. For example, you might want to use environment variables if you are going to be
releasing multiple projects, this keeps you from having to specify the same parameters for
each release</p><pre class="programlisting">$ <span xmlns:d="http://docbook.org/ns/docbook" class="hl-keyword">export</span> RELEASER_POM_BRANCH=Dalston.RELEASE
$ <span xmlns:d="http://docbook.org/ns/docbook" class="hl-keyword">export</span> RELEASER_GIT_OAUTH_TOKEN=...
$ wget http://repo.spring.io/libs-milestone/org/springframework/cloud/internal/spring-cloud-release-tools-spring/<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar -O spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar
$ java -jar target/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar --releaser.working-dir=/path/to/project/root</pre></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_faq" href="#_faq"></a>1.7&nbsp;FAQ</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_jschexception_auth_fail" href="#_jschexception_auth_fail"></a>1.7.1&nbsp;JSchException: Auth fail</h3></div></div></div><p>I got such an exception</p><pre class="screen">Caused by: org.eclipse.jgit.errors.TransportException: git@github.com:spring-cloud/spring-cloud-sleuth.git: Auth fail
$ java -jar target/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar --releaser.working-dir=/path/to/project/root</pre></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_faq" href="#_faq"></a>1.8&nbsp;FAQ</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_jschexception_auth_fail" href="#_jschexception_auth_fail"></a>1.8.1&nbsp;JSchException: Auth fail</h3></div></div></div><p>I got such an exception</p><pre class="screen">Caused by: org.eclipse.jgit.errors.TransportException: git@github.com:spring-cloud/spring-cloud-sleuth.git: Auth fail
at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:160) ~[org.eclipse.jgit-4.6.0.201612231935-r.jar!/:4.6.0.201612231935-r]
at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:137) ~[org.eclipse.jgit-4.6.0.201612231935-r.jar!/:4.6.0.201612231935-r]
at org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection.&lt;init&gt;(TransportGitSsh.java:322) ~[org.eclipse.jgit-4.6.0.201612231935-r.jar!/:4.6.0.201612231935-r]

View File

@@ -1,3 +1,3 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Spring Cloud Release Tools</title><link rel="stylesheet" type="text/css" href="css/manual-multipage.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="multi_spring-cloud-release-tools.html" title="Spring Cloud Release Tools"><link rel="next" href="multi__spring_cloud_release_tools.html" title="1.&nbsp;Spring Cloud Release Tools"></head><body class="firstpage" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Spring Cloud Release Tools</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="multi__spring_cloud_release_tools.html">Next</a></td></tr></table><hr></div><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d0e3"></a>Spring Cloud Release Tools</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="multi__spring_cloud_release_tools.html">1. Spring Cloud Release Tools</a></span></dt><dd><dl><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_what_does_it_do">1.1. What does it do?</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_what_should_i_do_first">1.2. What should I do first?</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_how_to_run_it_interactive_mode">1.3. How to run it (interactive mode)</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_how_to_run_it_automatic_mode">1.4. How to run it (automatic mode)</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_project_options">1.5. Project options</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_examples">1.6. Examples</a></span></dt><dd><dl><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_keeping_configuration_in_the_project">1.6.1. Keeping configuration in the project</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_specifying_a_branch">1.6.2. Specifying A Branch</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_using_environment_variables">1.6.3. Using Environment Variables</a></span></dt></dl></dd><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_faq">1.7. FAQ</a></span></dt><dd><dl><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_jschexception_auth_fail">1.7.1. JSchException: Auth fail</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="multi__spring_cloud_release_tools.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right" valign="top">&nbsp;1.&nbsp;Spring Cloud Release Tools</td></tr></table></div></body></html>
<title>Spring Cloud Release Tools</title><link rel="stylesheet" type="text/css" href="css/manual-multipage.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="multi_spring-cloud-release-tools.html" title="Spring Cloud Release Tools"><link rel="next" href="multi__spring_cloud_release_tools.html" title="1.&nbsp;Spring Cloud Release Tools"></head><body class="firstpage" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Spring Cloud Release Tools</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="multi__spring_cloud_release_tools.html">Next</a></td></tr></table><hr></div><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d0e3"></a>Spring Cloud Release Tools</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="multi__spring_cloud_release_tools.html">1. Spring Cloud Release Tools</a></span></dt><dd><dl><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_what_does_it_do">1.1. What does it do?</a></span></dt><dd><dl><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_single_project">1.1.1. Single project</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_meta_release">1.1.2. Meta-release</a></span></dt></dl></dd><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_what_should_i_do_first">1.2. What should I do first?</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_how_to_run_it_interactive_mode">1.3. How to run it (interactive mode)</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_how_to_run_it_automatic_mode">1.4. How to run it (automatic mode)</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_how_to_run_meta_release_automatic_mode">1.5. How to run meta-release (automatic-mode)</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_project_options">1.6. Project options</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_examples">1.7. Examples</a></span></dt><dd><dl><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_keeping_configuration_in_the_project">1.7.1. Keeping configuration in the project</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_specifying_a_branch">1.7.2. Specifying A Branch</a></span></dt><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_using_environment_variables">1.7.3. Using Environment Variables</a></span></dt></dl></dd><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_faq">1.8. FAQ</a></span></dt><dd><dl><dt><span class="section"><a href="multi__spring_cloud_release_tools.html#_jschexception_auth_fail">1.8.1. JSchException: Auth fail</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="multi__spring_cloud_release_tools.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right" valign="top">&nbsp;1.&nbsp;Spring Cloud Release Tools</td></tr></table></div></body></html>

View File

@@ -1,8 +1,9 @@
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Spring Cloud Release Tools</title><link rel="stylesheet" type="text/css" href="css/manual-singlepage.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d0e3"></a>Spring Cloud Release Tools</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="#_spring_cloud_release_tools">1. Spring Cloud Release Tools</a></span></dt><dd><dl><dt><span class="section"><a href="#_what_does_it_do">1.1. What does it do?</a></span></dt><dt><span class="section"><a href="#_what_should_i_do_first">1.2. What should I do first?</a></span></dt><dt><span class="section"><a href="#_how_to_run_it_interactive_mode">1.3. How to run it (interactive mode)</a></span></dt><dt><span class="section"><a href="#_how_to_run_it_automatic_mode">1.4. How to run it (automatic mode)</a></span></dt><dt><span class="section"><a href="#_project_options">1.5. Project options</a></span></dt><dt><span class="section"><a href="#_examples">1.6. Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#_keeping_configuration_in_the_project">1.6.1. Keeping configuration in the project</a></span></dt><dt><span class="section"><a href="#_specifying_a_branch">1.6.2. Specifying A Branch</a></span></dt><dt><span class="section"><a href="#_using_environment_variables">1.6.3. Using Environment Variables</a></span></dt></dl></dd><dt><span class="section"><a href="#_faq">1.7. FAQ</a></span></dt><dd><dl><dt><span class="section"><a href="#_jschexception_auth_fail">1.7.1. JSchException: Auth fail</a></span></dt></dl></dd></dl></dd></dl></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="_spring_cloud_release_tools" href="#_spring_cloud_release_tools"></a>1.&nbsp;Spring Cloud Release Tools</h1></div></div></div><p>Spring Cloud projects reuse the same pattern of building and deploying the applications. That&#8217;s
why this tool makes it easy to automate the release / dependency update process of our applications.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_what_does_it_do" href="#_what_does_it_do"></a>1.1&nbsp;What does it do?</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Clones the Spring Cloud Release project and picks all versions (Boot + Cloud projects)</li><li class="listitem"><p class="simpara">Modifies the project versions with values from SC-Release</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">throws an exception when we bump versions to release and there&#8217;s a SNAPSHOT version referenced in the POM</li></ul></div></li><li class="listitem"><p class="simpara">Performs the build and checks if the <code class="literal">docs</code> modules have properly created the documentation</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">throws an exception when in the <code class="literal">docs</code> module there&#8217;s an unresolved tag in any HTML file</li></ul></div></li><li class="listitem">Commits changed poms (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Creates a tag for the release / milestone (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Runs the deployment of the artifacts</li><li class="listitem">Publishes the docs (to <code class="literal">spring-cloud-static</code> for non-snapshots, to <code class="literal">gh-pages</code> for snapshots)</li><li class="listitem">Reverts back to snapshots, bumps the version by a patch (<code class="literal">1.0.1.RELEASE</code> &#8594; <code class="literal">1.0.2.BUILD-SNAPSHOT</code>) (ONLY FOR RELEASE VERSIONS)</li><li class="listitem">Closes the milestone on Github (e.g. <code class="literal">v1.0.1.RELEASE</code>) (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates an email template under <code class="literal">target/email.txt</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a blog template under <code class="literal">target/blog.md</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a tweet template under <code class="literal">target/tweet.txt</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a release notes template under <code class="literal">target/notes.md</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Updates project information in Sagan (<a class="link" href="http://spring.io" target="_top">http://spring.io</a>) (ONLY FOR SNAPSHOT / RELEASE VERSIONS)</li><li class="listitem">For <code class="literal">GA</code>/ <code class="literal">SR</code> release will create an issue in Spring Guides under <a class="link" href="https://github.com/spring-guides/getting-started-guides/issues/" target="_top">https://github.com/spring-guides/getting-started-guides/issues/</a></li><li class="listitem">For <code class="literal">GA</code>/ <code class="literal">SR</code> release will update the links under <a class="link" href="https://github.com/spring-cloud/spring-cloud-static/tree/gh-pages/current" target="_top">https://github.com/spring-cloud/spring-cloud-static/tree/gh-pages/current</a></li></ul></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>Starting with version that does Sagan integration, you MUST pass the OAuth token,
otherwise the application will fail to start</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_what_should_i_do_first" href="#_what_should_i_do_first"></a>1.2&nbsp;What should I do first?</h2></div></div></div><p>Members of the Spring Cloud Team typically use this tool as follows. They first
<title>Spring Cloud Release Tools</title><link rel="stylesheet" type="text/css" href="css/manual-singlepage.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d0e3"></a>Spring Cloud Release Tools</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="#_spring_cloud_release_tools">1. Spring Cloud Release Tools</a></span></dt><dd><dl><dt><span class="section"><a href="#_what_does_it_do">1.1. What does it do?</a></span></dt><dd><dl><dt><span class="section"><a href="#_single_project">1.1.1. Single project</a></span></dt><dt><span class="section"><a href="#_meta_release">1.1.2. Meta-release</a></span></dt></dl></dd><dt><span class="section"><a href="#_what_should_i_do_first">1.2. What should I do first?</a></span></dt><dt><span class="section"><a href="#_how_to_run_it_interactive_mode">1.3. How to run it (interactive mode)</a></span></dt><dt><span class="section"><a href="#_how_to_run_it_automatic_mode">1.4. How to run it (automatic mode)</a></span></dt><dt><span class="section"><a href="#_how_to_run_meta_release_automatic_mode">1.5. How to run meta-release (automatic-mode)</a></span></dt><dt><span class="section"><a href="#_project_options">1.6. Project options</a></span></dt><dt><span class="section"><a href="#_examples">1.7. Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#_keeping_configuration_in_the_project">1.7.1. Keeping configuration in the project</a></span></dt><dt><span class="section"><a href="#_specifying_a_branch">1.7.2. Specifying A Branch</a></span></dt><dt><span class="section"><a href="#_using_environment_variables">1.7.3. Using Environment Variables</a></span></dt></dl></dd><dt><span class="section"><a href="#_faq">1.8. FAQ</a></span></dt><dd><dl><dt><span class="section"><a href="#_jschexception_auth_fail">1.8.1. JSchException: Auth fail</a></span></dt></dl></dd></dl></dd></dl></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="_spring_cloud_release_tools" href="#_spring_cloud_release_tools"></a>1.&nbsp;Spring Cloud Release Tools</h1></div></div></div><p>Spring Cloud projects reuse the same pattern of building and deploying the applications. That&#8217;s
why this tool makes it easy to automate the release / dependency update process of our applications.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_what_does_it_do" href="#_what_does_it_do"></a>1.1&nbsp;What does it do?</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_single_project" href="#_single_project"></a>1.1.1&nbsp;Single project</h3></div></div></div><p>For a single project</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Clones the Spring Cloud Release project and picks all versions (Boot + Cloud projects)</li><li class="listitem"><p class="simpara">Modifies the project versions with values from SC-Release</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">throws an exception when we bump versions to release and there&#8217;s a SNAPSHOT version referenced in the POM</li></ul></div></li><li class="listitem"><p class="simpara">Performs the build and checks if the <code class="literal">docs</code> modules have properly created the documentation</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">throws an exception when in the <code class="literal">docs</code> module there&#8217;s an unresolved tag in any HTML file</li></ul></div></li><li class="listitem">Commits changed poms (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Creates a tag for the release / milestone (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Runs the deployment of the artifacts</li><li class="listitem">Publishes the docs (to <code class="literal">spring-cloud-static</code> for non-snapshots, to <code class="literal">gh-pages</code> for snapshots)</li><li class="listitem">Reverts back to snapshots, bumps the version by a patch (<code class="literal">1.0.1.RELEASE</code> &#8594; <code class="literal">1.0.2.BUILD-SNAPSHOT</code>) (ONLY FOR RELEASE VERSIONS)</li><li class="listitem">Closes the milestone on Github (e.g. <code class="literal">v1.0.1.RELEASE</code>) (ONLY FOR NON-SNAPSHOT VERSIONS)</li></ul></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>Starting with version that does Sagan integration, you MUST pass the OAuth token,
otherwise the application will fail to start</p></td></tr></table></div><p>After project release</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Generates an email template under <code class="literal">target/email.txt</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a blog template under <code class="literal">target/blog.md</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a tweet template under <code class="literal">target/tweet.txt</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Generates a release notes template under <code class="literal">target/notes.md</code> (ONLY FOR NON-SNAPSHOT VERSIONS)</li><li class="listitem">Updates project information in Sagan (<a class="link" href="http://spring.io" target="_top">http://spring.io</a>) (ONLY FOR SNAPSHOT / RELEASE VERSIONS)</li><li class="listitem">For <code class="literal">GA</code>/ <code class="literal">SR</code> release will create an issue in Spring Guides under <a class="link" href="https://github.com/spring-guides/getting-started-guides/issues/" target="_top">https://github.com/spring-guides/getting-started-guides/issues/</a></li><li class="listitem">For <code class="literal">GA</code>/ <code class="literal">SR</code> release will update the links under <a class="link" href="https://github.com/spring-cloud/spring-cloud-static/tree/gh-pages/current" target="_top">https://github.com/spring-cloud/spring-cloud-static/tree/gh-pages/current</a></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_meta_release" href="#_meta_release"></a>1.1.2&nbsp;Meta-release</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Uses the fixed versions to clone and check out each project (e.g. <code class="literal">spring-cloud-sleuth: 2.1.0.RELEASE</code>)</li><li class="listitem"><p class="simpara">From the version analyzes the branch and checks it out. E.g.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">for <code class="literal">spring-cloud-release&#8217;s `Finchley.RELEASE</code> version will resolve either <code class="literal">Finchley.x</code> branch or will fallback to <code class="literal">master</code> if there&#8217;s no <code class="literal">Finchley.x</code> branch.</li><li class="listitem">for <code class="literal">spring-cloud-sleuth&#8217;s `2.1.0.RELEASE</code> version will resolve <code class="literal">2.1.x</code> branch</li></ul></div></li><li class="listitem">Performs the release tasks per each project</li><li class="listitem">Performs the post release tasks at the end of the release</li></ul></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>For the meta-releaser to work we assume that the path to the
custom configuration file for each project is always <code class="literal">config/releaser.yml</code>.</p></td></tr></table></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_what_should_i_do_first" href="#_what_should_i_do_first"></a>1.2&nbsp;What should I do first?</h2></div></div></div><p>Members of the Spring Cloud Team typically use this tool as follows. They first
clone the releaser locally and build the jar manually</p><pre class="programlisting">$ git clone git@github.com:spring-cloud/spring-cloud-release-tools.git
$ <span xmlns:d="http://docbook.org/ns/docbook" class="hl-keyword">cd</span> spring-cloud-release-tools
$ ./mvnw clean install</pre><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>You must set the value of the OAuth token. You can do it either via
@@ -101,8 +102,14 @@ $ java -jar ~/repo/spring-cloud-release-tools/spring-cloud-release-tools-spring/
</p><pre class="programlisting">$ java -jar ~/repo/spring-cloud-release-tools/spring-cloud-release-tools-spring/target/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>BUILD-SNAPSHOT.jar --releaser.pom.branch=vDalston.SR1 --spring.config.name=releaser -r d-p -i=false</pre><p>
</p><p><b>Running single task 'closeMilestone' (automatic).&nbsp;</b>
</p><pre class="programlisting">$ java -jar ~/repo/spring-cloud-release-tools/spring-cloud-release-tools-spring/target/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>BUILD-SNAPSHOT.jar --releaser.pom.branch=vDalston.SR1 --spring.config.name=releaser --closeMilestone -i=false</pre><p>
</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_project_options" href="#_project_options"></a>1.5&nbsp;Project options</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><code class="literal">releaser.fixed-versions</code> - A String to String mapping of manually set versions. E.g. <code class="literal">"spring-cloud-cli" &#8594; "1.0.0.RELEASE"</code> will set
the <code class="literal">spring-cloud-cli.version</code> to <code class="literal">1.0.0.RELEASE</code> regardless of what was set in <code class="literal">spring-cloud-release</code> project. Example <code class="literal">--releaser.fixed-versions[spring-cloud-cli]=1.0.0.RELEASE</code>.</li><li class="listitem"><code class="literal">releaser.git.fetch-versions-from-git</code> - If <code class="literal">true</code> then should fill the map of versions from Git. If <code class="literal">false</code> then picks fixed versions</li><li class="listitem"><code class="literal">releaser.git.clone-destination-dir</code> - Where should the Spring Cloud Release repo get cloned to. If null defaults to a temporary directory</li><li class="listitem"><code class="literal">releaser.git.spring-cloud-release-git-url</code> - URL to Spring Cloud Release Git repository. Defaults to <code class="literal"><a class="link" href="https://github.com/spring-cloud/spring-cloud-release" target="_top">https://github.com/spring-cloud/spring-cloud-release</a></code></li><li class="listitem"><code class="literal">releaser.git.documentation-url</code> - URL to the documentation Git repository. Defaults to <code class="literal"><a class="link" href="https://github.com/spring-cloud/spring-cloud-static" target="_top">https://github.com/spring-cloud/spring-cloud-static</a></code></li><li class="listitem"><code class="literal">releaser.git.documentation-branch</code> - Branch to check out for the documentation project. Defaults to <code class="literal">gh-pages</code></li><li class="listitem"><code class="literal">releaser.git.oauth-token</code> - GitHub OAuth token to be used to interact with GitHub repo.</li><li class="listitem"><code class="literal">releaser.git.username</code> - Optional Git username. If not passed keys will be used for authentication.</li><li class="listitem"><code class="literal">releaser.git.password</code> - Optional Git password. If not passed keys will be used for authentication.</li><li class="listitem"><code class="literal">releaser.git.number-of-checked-milestones</code> - In order not to iterate endlessly over milestones we introduce a threshold of milestones that
</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_how_to_run_meta_release_automatic_mode" href="#_how_to_run_meta_release_automatic_mode"></a>1.5&nbsp;How to run meta-release (automatic-mode)</h2></div></div></div><p>All you have to do is run the jar with the releaser and pass the
<code class="literal">-x=true</code> option to turn on meta-release and a list of fixed versions
in the `--"releaser.fixed-versions[project-name]=project-version" format</p><pre class="screen">$ java -jar spring-cloud-release-tools-spring/target/spring-cloud-release-tools-spring-1.0.0.BUILD-SNAPSHOT.jar --spring.config.name=releaser -x=true --"releaser.fixed-versions[spring-cloud-sleuth]=2.0.1.BUILD-SNAPSHOT"</pre><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>For the meta release the <code class="literal">startFrom</code> or <code class="literal">taskNames</code> take into consideration
the project names, not task names. E.g. you can start from <code class="literal">spring-cloud-netflix</code> project,
or build only tasks with names <code class="literal">spring-cloud-build,spring-cloud-sleuth</code>.</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_project_options" href="#_project_options"></a>1.6&nbsp;Project options</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><code class="literal">releaser.fixed-versions</code> - A String to String mapping of manually set versions. E.g. <code class="literal">"spring-cloud-cli" &#8594; "1.0.0.RELEASE"</code> will set
the <code class="literal">spring-cloud-cli.version</code> to <code class="literal">1.0.0.RELEASE</code> regardless of what was set in <code class="literal">spring-cloud-release</code> project. Example <code class="literal">--releaser.fixed-versions[spring-cloud-cli]=1.0.0.RELEASE</code>.
Use these properties to provide versions for the meta release.</li><li class="listitem"><code class="literal">releaser.meta-release.enabled</code> - You have to turn it on to enable a meta release. Defaults to <code class="literal">false</code></li><li class="listitem"><code class="literal">releaser.meta-release.release-train-project-name</code> - Name of the project that represents the BOM of the release train. Defaults to <code class="literal">spring-cloud-release</code></li><li class="listitem"><code class="literal">releaser.meta-release.git-org-url</code> - The URL of the Git organization. We&#8217;ll append each project&#8217;s name to it.
Defaults to <code class="literal"><a class="link" href="https://github.com/spring-cloud" target="_top">https://github.com/spring-cloud</a></code></li><li class="listitem"><code class="literal">releaser.git.fetch-versions-from-git</code> - If <code class="literal">true</code> then should fill the map of versions from Git. If <code class="literal">false</code> then picks fixed versions</li><li class="listitem"><code class="literal">releaser.git.clone-destination-dir</code> - Where should the Spring Cloud Release repo get cloned to. If null defaults to a temporary directory</li><li class="listitem"><code class="literal">releaser.git.spring-cloud-release-git-url</code> - URL to Spring Cloud Release Git repository. Defaults to <code class="literal"><a class="link" href="https://github.com/spring-cloud/spring-cloud-release" target="_top">https://github.com/spring-cloud/spring-cloud-release</a></code></li><li class="listitem"><code class="literal">releaser.git.documentation-url</code> - URL to the documentation Git repository. Defaults to <code class="literal"><a class="link" href="https://github.com/spring-cloud/spring-cloud-static" target="_top">https://github.com/spring-cloud/spring-cloud-static</a></code></li><li class="listitem"><code class="literal">releaser.git.documentation-branch</code> - Branch to check out for the documentation project. Defaults to <code class="literal">gh-pages</code></li><li class="listitem"><code class="literal">releaser.git.oauth-token</code> - GitHub OAuth token to be used to interact with GitHub repo.</li><li class="listitem"><code class="literal">releaser.git.username</code> - Optional Git username. If not passed keys will be used for authentication.</li><li class="listitem"><code class="literal">releaser.git.password</code> - Optional Git password. If not passed keys will be used for authentication.</li><li class="listitem"><code class="literal">releaser.git.number-of-checked-milestones</code> - In order not to iterate endlessly over milestones we introduce a threshold of milestones that
we will go through to find the matching milestone. Defaults to <code class="literal">10</code></li><li class="listitem"><code class="literal">releaser.maven.build-command</code> - Command to be executed to build the project. Defaults to <code class="literal">./mvnw clean install -Pdocs</code></li><li class="listitem"><code class="literal">releaser.maven.deploy-command</code> - Command to be executed to deploy a built project". Defaults to <code class="literal">./mvnw deploy -DskipTests -Pfast</code></li><li class="listitem"><code class="literal">releaser.maven.publish-docs-commands</code> - Command to be executed to deploy a built project. If present <code class="literal">{{version}}</code> will be replaced by the proper version.
Defaults to the standard Spring Cloud wget and execution of ghpages.</li><li class="listitem"><code class="literal">releaser.maven.system-properties</code> - Additional system properties that should be passed to any commands. If present <code class="literal">{{systemProps}}</code> will be replaced by the contents of this property.</li><li class="listitem"><code class="literal">releaser.maven.wait-time-in-minutes</code> - Max wait time in minutes for the process to finish. Defaults to <code class="literal">20</code></li><li class="listitem"><code class="literal">releaser.gradle.gradle-props-substitution</code> - a map containing a <code class="literal">key</code> which is a property key inside <code class="literal">gradle.properties</code> and a <code class="literal">value</code> of
a project name. E.g. in <code class="literal">gradle.properties</code> you have <code class="literal">foo=1.0.0.BUILD-SNAPSHOT</code> and you would like <code class="literal">spring-cloud-contract</code> version to
@@ -114,18 +121,19 @@ Example for application arguments: <code class="literal">java -jar target/spring
run a script (e.g. <code class="literal">scripts/foo.sh</code>) then inside <code class="literal">foo.sh</code> if you call a Maven build <code class="literal">./mvnw clean install</code>
then <span class="strong"><strong>remember to pass all arguments of the script there too</strong></span>. E.g. <code class="literal">./mvnw clean install ${@}</code>. That&#8217;s because
the releaser will pass any system properties to the <code class="literal">build</code> / <code class="literal">deploy</code> command, such as system properties
with keys and we need them to be passed inside the command executed by the releaser.</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_examples" href="#_examples"></a>1.6&nbsp;Examples</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_keeping_configuration_in_the_project" href="#_keeping_configuration_in_the_project"></a>1.6.1&nbsp;Keeping configuration in the project</h3></div></div></div><p>If your project has some custom configuration (e.g. Spring Cloud Contract needs a script to be executed
with keys and we need them to be passed inside the command executed by the releaser.</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_examples" href="#_examples"></a>1.7&nbsp;Examples</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_keeping_configuration_in_the_project" href="#_keeping_configuration_in_the_project"></a>1.7.1&nbsp;Keeping configuration in the project</h3></div></div></div><p>If your project has some custom configuration (e.g. Spring Cloud Contract needs a script to be executed
to build the project and properly merge the docs) then you can put a file named e.g. <code class="literal">releaser.yml</code> under <code class="literal">config</code>
folder and run your application like this:</p><pre class="programlisting">$ wget http://repo.spring.io/libs-milestone/org/springframework/cloud/internal/spring-cloud-release-tools-spring/<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar -O ../spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar
$ java -jar target/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar --spring.config.name=releaser</pre><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="images/tip.png"></td><th align="left">Tip</th></tr><tr><td align="left" valign="top"><p>Notice that we&#8217;re downloading the jar to a parent folder, not to <code class="literal">target</code>. That&#8217;s because <code class="literal">target</code> get cleaned
during the build process</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_specifying_a_branch" href="#_specifying_a_branch"></a>1.6.2&nbsp;Specifying A Branch</h3></div></div></div><p>By deafult the releaser will default to using the <code class="literal">master</code> branch of <code class="literal">spring-cloud-release</code>.
If you would like to use another branch you can specify it using the <code class="literal">releaser.pom.branch</code> property.</p><pre class="programlisting">$ java -jar spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar --releaser.pom.branch=Camden.SR6</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_using_environment_variables" href="#_using_environment_variables"></a>1.6.3&nbsp;Using Environment Variables</h3></div></div></div><p>In some cases it might be easier to specify environment variables instead of passing parameters to
during the build process</p></td></tr></table></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>For the meta-releaser to work we assume that the path to the
configuration file is always <code class="literal">config/releaser.yml</code>.</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_specifying_a_branch" href="#_specifying_a_branch"></a>1.7.2&nbsp;Specifying A Branch</h3></div></div></div><p>By deafult the releaser will default to using the <code class="literal">master</code> branch of <code class="literal">spring-cloud-release</code>.
If you would like to use another branch you can specify it using the <code class="literal">releaser.pom.branch</code> property.</p><pre class="programlisting">$ java -jar spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar --releaser.pom.branch=Camden.SR6</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_using_environment_variables" href="#_using_environment_variables"></a>1.7.3&nbsp;Using Environment Variables</h3></div></div></div><p>In some cases it might be easier to specify environment variables instead of passing parameters to
<code class="literal">releaser</code>. For example, you might want to use environment variables if you are going to be
releasing multiple projects, this keeps you from having to specify the same parameters for
each release</p><pre class="programlisting">$ <span xmlns:d="http://docbook.org/ns/docbook" class="hl-keyword">export</span> RELEASER_POM_BRANCH=Dalston.RELEASE
$ <span xmlns:d="http://docbook.org/ns/docbook" class="hl-keyword">export</span> RELEASER_GIT_OAUTH_TOKEN=...
$ wget http://repo.spring.io/libs-milestone/org/springframework/cloud/internal/spring-cloud-release-tools-spring/<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar -O spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar
$ java -jar target/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar --releaser.working-dir=/path/to/project/root</pre></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_faq" href="#_faq"></a>1.7&nbsp;FAQ</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_jschexception_auth_fail" href="#_jschexception_auth_fail"></a>1.7.1&nbsp;JSchException: Auth fail</h3></div></div></div><p>I got such an exception</p><pre class="screen">Caused by: org.eclipse.jgit.errors.TransportException: git@github.com:spring-cloud/spring-cloud-sleuth.git: Auth fail
$ java -jar target/spring-cloud-release-tools-spring-<span class="hl-number">1.0</span>.<span class="hl-number">0.</span>M1.jar --releaser.working-dir=/path/to/project/root</pre></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_faq" href="#_faq"></a>1.8&nbsp;FAQ</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_jschexception_auth_fail" href="#_jschexception_auth_fail"></a>1.8.1&nbsp;JSchException: Auth fail</h3></div></div></div><p>I got such an exception</p><pre class="screen">Caused by: org.eclipse.jgit.errors.TransportException: git@github.com:spring-cloud/spring-cloud-sleuth.git: Auth fail
at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:160) ~[org.eclipse.jgit-4.6.0.201612231935-r.jar!/:4.6.0.201612231935-r]
at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:137) ~[org.eclipse.jgit-4.6.0.201612231935-r.jar!/:4.6.0.201612231935-r]
at org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection.&lt;init&gt;(TransportGitSsh.java:322) ~[org.eclipse.jgit-4.6.0.201612231935-r.jar!/:4.6.0.201612231935-r]

View File

@@ -4,7 +4,7 @@
<book xmlns="http://docbook.org/ns/docbook" xmlns:xl="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
<info>
<title>Spring Cloud Release Tools</title>
<date>2018-06-15</date>
<date>2018-06-25</date>
</info>
<chapter xml:id="_spring_cloud_release_tools">
<title>Spring Cloud Release Tools</title>
@@ -12,6 +12,9 @@
why this tool makes it easy to automate the release / dependency update process of our applications.</simpara>
<section xml:id="_what_does_it_do">
<title>What does it do?</title>
<section xml:id="_single_project">
<title>Single project</title>
<simpara>For a single project</simpara>
<itemizedlist>
<listitem>
<simpara>Clones the Spring Cloud Release project and picks all versions (Boot + Cloud projects)</simpara>
@@ -50,6 +53,13 @@ why this tool makes it easy to automate the release / dependency update process
<listitem>
<simpara>Closes the milestone on Github (e.g. <literal>v1.0.1.RELEASE</literal>) (ONLY FOR NON-SNAPSHOT VERSIONS)</simpara>
</listitem>
</itemizedlist>
<important>
<simpara>Starting with version that does Sagan integration, you MUST pass the OAuth token,
otherwise the application will fail to start</simpara>
</important>
<simpara>After project release</simpara>
<itemizedlist>
<listitem>
<simpara>Generates an email template under <literal>target/email.txt</literal> (ONLY FOR NON-SNAPSHOT VERSIONS)</simpara>
</listitem>
@@ -72,11 +82,37 @@ why this tool makes it easy to automate the release / dependency update process
<simpara>For <literal>GA</literal>/ <literal>SR</literal> release will update the links under <link xl:href="https://github.com/spring-cloud/spring-cloud-static/tree/gh-pages/current">https://github.com/spring-cloud/spring-cloud-static/tree/gh-pages/current</link></simpara>
</listitem>
</itemizedlist>
</section>
<section xml:id="_meta_release">
<title>Meta-release</title>
<itemizedlist>
<listitem>
<simpara>Uses the fixed versions to clone and check out each project (e.g. <literal>spring-cloud-sleuth: 2.1.0.RELEASE</literal>)</simpara>
</listitem>
<listitem>
<simpara>From the version analyzes the branch and checks it out. E.g.</simpara>
<itemizedlist>
<listitem>
<simpara>for <literal>spring-cloud-release&#8217;s `Finchley.RELEASE</literal> version will resolve either <literal>Finchley.x</literal> branch or will fallback to <literal>master</literal> if there&#8217;s no <literal>Finchley.x</literal> branch.</simpara>
</listitem>
<listitem>
<simpara>for <literal>spring-cloud-sleuth&#8217;s `2.1.0.RELEASE</literal> version will resolve <literal>2.1.x</literal> branch</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Performs the release tasks per each project</simpara>
</listitem>
<listitem>
<simpara>Performs the post release tasks at the end of the release</simpara>
</listitem>
</itemizedlist>
<important>
<simpara>Starting with version that does Sagan integration, you MUST pass the OAuth token,
otherwise the application will fail to start</simpara>
<simpara>For the meta-releaser to work we assume that the path to the
custom configuration file for each project is always <literal>config/releaser.yml</literal>.</simpara>
</important>
</section>
</section>
<section xml:id="_what_should_i_do_first">
<title>What should I do first?</title>
<simpara>Members of the Spring Cloud Team typically use this tool as follows. They first
@@ -232,12 +268,35 @@ $ java -jar ~/repo/spring-cloud-release-tools/spring-cloud-release-tools-spring/
</para>
</formalpara>
</section>
<section xml:id="_how_to_run_meta_release_automatic_mode">
<title>How to run meta-release (automatic-mode)</title>
<simpara>All you have to do is run the jar with the releaser and pass the
<literal>-x=true</literal> option to turn on meta-release and a list of fixed versions
in the `--"releaser.fixed-versions[project-name]=project-version" format</simpara>
<screen>$ java -jar spring-cloud-release-tools-spring/target/spring-cloud-release-tools-spring-1.0.0.BUILD-SNAPSHOT.jar --spring.config.name=releaser -x=true --"releaser.fixed-versions[spring-cloud-sleuth]=2.0.1.BUILD-SNAPSHOT"</screen>
<important>
<simpara>For the meta release the <literal>startFrom</literal> or <literal>taskNames</literal> take into consideration
the project names, not task names. E.g. you can start from <literal>spring-cloud-netflix</literal> project,
or build only tasks with names <literal>spring-cloud-build,spring-cloud-sleuth</literal>.</simpara>
</important>
</section>
<section xml:id="_project_options">
<title>Project options</title>
<itemizedlist>
<listitem>
<simpara><literal>releaser.fixed-versions</literal> - A String to String mapping of manually set versions. E.g. <literal>"spring-cloud-cli" &#8594; "1.0.0.RELEASE"</literal> will set
the <literal>spring-cloud-cli.version</literal> to <literal>1.0.0.RELEASE</literal> regardless of what was set in <literal>spring-cloud-release</literal> project. Example <literal>--releaser.fixed-versions[spring-cloud-cli]=1.0.0.RELEASE</literal>.</simpara>
the <literal>spring-cloud-cli.version</literal> to <literal>1.0.0.RELEASE</literal> regardless of what was set in <literal>spring-cloud-release</literal> project. Example <literal>--releaser.fixed-versions[spring-cloud-cli]=1.0.0.RELEASE</literal>.
Use these properties to provide versions for the meta release.</simpara>
</listitem>
<listitem>
<simpara><literal>releaser.meta-release.enabled</literal> - You have to turn it on to enable a meta release. Defaults to <literal>false</literal></simpara>
</listitem>
<listitem>
<simpara><literal>releaser.meta-release.release-train-project-name</literal> - Name of the project that represents the BOM of the release train. Defaults to <literal>spring-cloud-release</literal></simpara>
</listitem>
<listitem>
<simpara><literal>releaser.meta-release.git-org-url</literal> - The URL of the Git organization. We&#8217;ll append each project&#8217;s name to it.
Defaults to <literal><link xl:href="https://github.com/spring-cloud">https://github.com/spring-cloud</link></literal></simpara>
</listitem>
<listitem>
<simpara><literal>releaser.git.fetch-versions-from-git</literal> - If <literal>true</literal> then should fill the map of versions from Git. If <literal>false</literal> then picks fixed versions</simpara>
@@ -326,6 +385,10 @@ $ java -jar target/spring-cloud-release-tools-spring-1.0.0.M1.jar --spring.confi
<simpara>Notice that we&#8217;re downloading the jar to a parent folder, not to <literal>target</literal>. That&#8217;s because <literal>target</literal> get cleaned
during the build process</simpara>
</tip>
<important>
<simpara>For the meta-releaser to work we assume that the path to the
configuration file is always <literal>config/releaser.yml</literal>.</simpara>
</important>
</section>
<section xml:id="_specifying_a_branch">
<title>Specifying A Branch</title>