Update (6/11/2015) – Due to the recent news about malware on installers downloaded from SourceForge, I have decided to stay completely away from it. This is the reason for the move to GitHub releases for archiving the releases.
As written on the last entry in this blog, I finally got to write something on points 1) and 2) there – the CI (continuous integration) builds that are running in parallel on AppVeyor, Travis CI and Wercker and the multi-platform installers they create and publish to the website. I wrote this up as documentation on the main GitHub repository but decided to cross-post here on the blog too.
Automated Build Process
Every commit to the
master branch on the source code repository kicks off CI builds (that builds and runs all the unit tests) in three different CI services:
Any commit that has the string
[deploy] in the commit message will also build the installers for all three supported platforms, using BitRock InstallBuilder.
The installers will be committed separately from the CI builds to a new branch named
deploy-v<VERSION> (as an example, for the version
v126.96.36.199, the new branch will be
deploy-v188.8.131.52) on the
A custom webhook on the
flickr-downloadr/flickr-downloadr.github.io repo that runs on Heroku ensures that installers for all three platforms have been built successfully and then makes a commit with the name of the new branch, updated into the
branch file on the
flickr-downloadr/releases repository (
deploy-v184.108.40.206, in the example above) and sends an email a deployment will be ready to be pushed to the website soon [see here].
In the event that any of the CI builds fail to create the installer, after at least one installer gets successfully built and committed, the custom webhook waits for 30 minutes from the first installer getting committed and sends an email notifying of a build failure [see here].
Yet another webhook on the
flickr-downloadr/releases repo kicks off another build on Wercker to merge the new branch with all three installers (
deploy-v220.127.116.11 branch) into the
source branch on
flickr-downloadr/flickr-downloadr.github.io to make it ready for push into the
master branch that runs the main website. This CI job does a few other things like archiving this version to
SourceForgeGitHub releases etc., as can be seen here.
The final push to the website is manual and can be done by running
grunt deploy on the latest, merged version of the
source branch and this will make the latest version installers current on the website.