VSoft Technologies BlogsVSoft Technologies Blogs - posts about our products and software development.https://www.finalbuilder.com/resources/blogsDaily Builds with Continua CIhttps://www.finalbuilder.com/resources/blogs/postid/838/daily-builds-with-continua-ciContinua CI,Delphi,Deployment,TriggersSun, 24 May 2020 09:22:55 GMT<p>Generally, at VSoft, we like to build. So we build every commit and this allows us to look back at our build history and see which changes caused the build to fail. We use manual stage promotion to prevent every build being released until we decide that it is ready to go.</p> <p><img alt="Build promotion" src="/blogimages/daves/dailytriggers/BuildPromotion.png" /></p> <p>Many teams like to trigger a build at the end of each day, or during the night, compiling the work for the day in one single package.</p> <p>The obvious choice for this scenario is the Daily Trigger. This can be set to run a build at a specific time every day, or just weekdays - even just weekends for those with alternative lifestyles.</p> <p><img alt="Build promotion" src="/blogimages/daves/dailytriggers/DailyTrigger.png" /></p> <p>But what if the team is just having a design day, is off on a team building excursion or, perish the thought, a day of meetings! No commits are made, but the daily build still runs even though there are no changes. One possible solution is to use a Discard condition.</p> <p><img alt="Discard condition" src="/blogimages/daves/dailytriggers/DiscardCondition.png" /></p> <p>This will prevent the build running if there are no changes since the last build.</p> <p><img alt="Build being discarded" src="/blogimages/daves/dailytriggers/DiscardCondition.gif" /></p> <p>Another option has been added to Continua CI recently. The Quiet Period setting on Repository Triggers now allows you to enter an End Time rather than an Interval.</p> <p><img alt="Quiet period end time on repository trigger" src="/blogimages/daves/dailytriggers/EndTimeRepositoryTrigger.png" /></p> <p>Any builds triggered from a repository change are then queued right through the day until the specified end time. Any additional changes added to the configuration repositories during the day are added to the queued build, and when the end time comes up, the build executes on the latest changeset.</p> <p><img alt="Build waiting on quiet period end time" src="/blogimages/daves/dailytriggers/QuietPeriodTrigger.png" /></p> <p>If you're going home earlier than the end time and want stuff deployed already, you can swiftly end the quiet period at the click of a button. Using a repository trigger in this way means that you can ignore changes to some files, changesets with a specific comment, or commits from certain users.</p> <p><img alt="Trigger with user exclusion" src="/blogimages/daves/dailytriggers/TriggerUserExclusion.png" /></p> <p> - like that hands-on manager who thinks of his commit count as a key performance indicator.</p> <p><a href="https://www.commitstrip.com/en/2016/05/09/when-the-pm-fixes-a-bug/" target="_blank"><img alt="'When the PM fixes a bug' cartoon by commitstrip.com" src="/blogimages/daves/dailytriggers/Strip-Quand-les-PM-se-mettent-au-code-650-finalenglish-1.jpg" /></a> </p> 838