UNPKG

gluon-cli

Version:

Gluon cli: the gitflow and CI tool

311 lines (198 loc) 9.76 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>The Release process</title> <link rel="stylesheet" type="text/css" href="../../css/main.css"> <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha256-/SIrNqv8h6QGKDuNoLGA4iret+kyesCkHGzVUUV0shc=" crossorigin="anonymous"></script> </head> <body> <section class="docs"> <aside> <div class="logoContainer"> <a href="../../index.html"> <img src="../../images/logo.svg" class="logo" /> Gluon </a> </div> <ul class="main_menu"> <li> <h4>General</h4> <a href="../../users/get_started.html">How to install</a> <a href="../../users/get_started010whatis.html">What is gluon?</a> </li> <li> <h4>Tutorials</h4> <ul> <li> <a href="../../users/tutorials/000init.html">Start working with Gluon!</a> </li> <li> <a href="../../users/tutorials/010feature.html">Working with Features</a> </li> <li> <a href="../../users/tutorials/020release.html" class="selected">The Release process</a> </li> <li> <a href="../../users/tutorials/030hotfix.html">Make a Hotfix</a> </li> <li> <a href="../../users/tutorials/040merger.html">Merging master to develop</a> </li> <li> <a href="../../users/tutorials/050conflicts.html">Resolving conflicts with git</a> </li> <li> <a href="../../users/tutorials/060consolidate.html">Consolidate dependencies of master</a> </li> </ul> </li> <li> <h4>Guides</h4> <ul> <li> <a href="../../users/guides/001versioning.html">Versions between branches</a> </li> <li> <a href="../../users/guides/002readlogoutput.html">Reading log execution of Gluon</a> </li> <li> <a href="../../users/guides/003componentlifecycle.html">Component lifecycle using Gluon</a> </li> </ul> </li> <li> <h4>API</h4> <h5>FLOWS</h5> <ul> </ul> <h5>STEPS</h5> <ul> </ul> </li> </ul> </aside> <article> <h1 id="the-release-process">The Release Process</h1> <p>Code delivery process from develop to master.</p> <h2 id="start-release-start-release-branch">start:release - Start release branch</h2> <p>Checkout develop branch:</p> <pre><code>git checkout develop </code></pre><p>Run:</p> <pre><code>cells start [ --targetBranch release --branchName release/tutorial ] </code></pre><pre><code class="lang-bash">[14:23:42] Execution contexts: [ recipe, develop ] [14:23:42] Starting flow: [ start ], steps: [ start, setVersion, push ] ... </code></pre> <p>If targetBranch parameter is not set <strong>Gluon</strong> will ask:</p> <pre><code class="lang-bash">? What do you want to start? (Use arrow keys) new feature ❯ new release new master merger </code></pre> <p>If branchName parameter is not set, you will be asked for the name you want to give the branch:</p> <pre><code>? Write the name of the new release (release/ is already appended) tutorial (better without spaces) </code></pre><p>The creation of a release branch will change the version of the develop branch. To perform this process <strong>Gluon</strong> will ask you to choose next release type, to be able to establish the appropriate version.</p> <pre><code class="lang-bash">? Choose next release (Use arrow keys) major minor ❯ patch </code></pre> <p><strong>IMPORTANT:</strong> During the development process is possible to change the type of release manually anytime if is necessary by changing the version file.</p> <p>Once the execution is finished check that you are in the branch that you just created:</p> <pre><code class="lang-bash">➜ pisco-git git: (release/tutorial) git branch -l develop * release/tutorial master </code></pre> <h3 id="conclusions-">Conclusions:</h3> <ul> <li><ol> <li>The release branch is used to make small corrections to problems detected in the release phase. In this phase several test cycles are performed, such as acceptance and user tests. (See piscosour-gitflow methodology document)</li> </ol> </li> <li><ol> <li>Work on this branch normally with your favorite tools.</li> </ol> </li> <li><ol> <li>When you start a release branch, the develop branch raises the chosen interval (major/minor/patch). (f.i. for the minor of <strong>x.y.z-beta.n</strong> to <strong>x.(y+1).z-beta.0</strong>)</li> </ol> </li> <li><ol> <li>Only one release can be made in parallel.</li> </ol> </li> <li><ol> <li>Note that the versions in this branch are this type <strong>x.y.z-rc.0</strong>.</li> </ol> </li> <li><ol> <li>Note that a tag of type <strong>pre_x.y.z-rc.0</strong> has been created with the initial state before starting to work.</li> </ol> </li> </ul> <h2 id="finish-release-delivery-code-to-master">finish:release - Delivery code to master</h2> <p>checkout release:</p> <pre><code>git checkout release/tutorial </code></pre><p>Run:</p> <pre><code>cells finish </code></pre><pre><code>[14:24:52] Execution contexts: [ recipe, release ] [14:24:52] Starting flow: [ finish ], steps: [ merge, validate, setVersion, finish, publish ] .... </code></pre><h3 id="conclusions-">Conclusions:</h3> <ul> <li><ol> <li><strong>IMPORTANT: IN CASE OF CONFLICT BY MERGING CODE HAS PREFERENCE CODE COMING FROM RELEASE</strong></li> </ol> </li> <li><ol> <li><strong>IMPORTANT:</strong> Changes made in the release branch, while the process has lasted, must be manually merged into develop. <strong>Gluon</strong> will help you in this process: [see section Master-to-Develop Mix Mixing Process] (#Process-of-merging-from-master-to-develop)</li> </ol> </li> <li><ol> <li>The changes of the <strong>develop</strong> branch and those made in <strong>release</strong> will have been delivered to <strong>master</strong>.</li> </ol> </li> <li><ol> <li>All the tests implemented for the repository will have been executed on the result of the merge of release branch with master. If the tests do not end <strong>OK</strong>, the process will not continue.</li> </ol> </li> <li><ol> <li>The version will have automatically changed in the master branch depending on the release version from <strong>x.y.z-rc.0</strong> to <strong>x.y.z</strong> in master. The change in the release branch is determined by the response to the question that was asked in the previous release. (major/minor/patch).</li> </ol> </li> <li><ol> <li>The release branch has been deleted.</li> </ol> </li> <li><ol> <li>A tag <strong>x.y.z</strong> will be generated with the status at the time of delivery.</li> </ol> </li> <li><ol> <li>The corresponding artifact has been published in the corresponding register with the version <strong>x.y.z</strong></li> </ol> </li> </ul> <h3 id="common-problems-">Common Problems:</h3> <ul> <li><ol> <li>Validate ends with errors. If this happens the process will stop and none of the actions will be carried out.</li> </ol> </li> </ul> <p>Solve the tests so they do not give error.</p> </article> </section> <script type="text/javascript" src="../../js/highlight.pack.js"></script> <script> hljs.initHighlightingOnLoad(); $(function(){ $('.toggle_section').on('click', function(ev) { $(ev.currentTarget).parent('li').toggleClass('open'); }); }); </script> </body> </html>