Skip to content

Latest commit

 

History

History
19 lines (11 loc) · 2.85 KB

continuous-integration.md

File metadata and controls

19 lines (11 loc) · 2.85 KB

Automated Build Process

Every commit to the main branch 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 versionv1.0.2.1, the new branch will be deploy-v1.0.2.1) on the flickr-downloadr/flickr-downloadr.github.io repository.

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-v1.0.2.1, 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 CircleCI to merge the new branch with all three installers (deploy-v1.0.2.1 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 SourceForge 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.