<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Robo on Mike Bell - Blog &amp; Stuff</title><link>https://mikebell.io/tags/robo/</link><description>Recent content in Robo on Mike Bell - Blog &amp; Stuff</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>hello@mikebell.io (Mike Bell)</managingEditor><webMaster>hello@mikebell.io (Mike Bell)</webMaster><copyright>© 2026 Mike Bell</copyright><lastBuildDate>Wed, 06 Jan 2016 00:00:00 +0000</lastBuildDate><atom:link href="https://mikebell.io/tags/robo/index.xml" rel="self" type="application/rss+xml"/><item><title>Release and Rollback with Robo</title><link>https://mikebell.io/posts/release-and-rollback-with-robo/</link><pubDate>Wed, 06 Jan 2016 00:00:00 +0000</pubDate><author>hello@mikebell.io (Mike Bell)</author><guid>https://mikebell.io/posts/release-and-rollback-with-robo/</guid><description>
&lt;p>I&amp;rsquo;ve been looking for a release management tool for a while now. There are quite a lot of tools to do this but I just couldn&amp;rsquo;t get my head into writing XML for most of them.&lt;/p>
&lt;p>I decided to take a look at &lt;a
href="http://robo.li/"
target="_blank"
>Robo&lt;/a> and see what I could do. Since it&amp;rsquo;s all written in php and can be included in any project with composer it&amp;rsquo;s dead easy to get to grips with.&lt;/p>
&lt;p>My &lt;a
href="https://gist.github.com/mikebell/de71ea97bee4332797e9"
target="_blank"
>RoboFile.php&lt;/a> consists of the following commands:&lt;/p>
&lt;ul>
&lt;li>&lt;code>setup&lt;/code> - Creates basic directories for use. Use $site to setup path variable.&lt;/li>
&lt;li>&lt;code>composer:build&lt;/code> - Run composer install in your project&lt;/li>
&lt;li>&lt;code>release&lt;/code> - Release a new version of your entire codebase to $site/releases. This also calls &lt;code>composer:build&lt;/code>&lt;/li>
&lt;li>&lt;code>rollback ($version)&lt;/code> - Rollback to the last release or if you pass the unix timestamp of the last release it&amp;rsquo;ll revert to that.&lt;/li>
&lt;/ul>
&lt;p>This leaves you with the following:&lt;/p>
&lt;pre tabindex="0">&lt;code>$site
/releases
/123456789
/123456790
/current -&amp;gt; 123456789
&lt;/code>&lt;/pre>&lt;p>So you can easily point your web server config to &lt;code>$site/releases/current&lt;/code>&lt;/p>
&lt;p>I&amp;rsquo;m not quite happy with using a unix time stamp so will probably replace that with a variable you can pass in as part of the &lt;code>release&lt;/code> task.&lt;/p>
&lt;p>I think this is a fairly nice way of handling release management, it&amp;rsquo;s nice to have something that is easy to jump into.&lt;/p>
&lt;p>Thanks for reading via RSS!&lt;/p>
&lt;p>Send me a message on &lt;a href="https://remotelab.uk/mikebell">Mastodon&lt;/a> or &lt;a href="mailto:hello@mikebell.io">email me&lt;/a>&lt;/p></description></item></channel></rss>