Code documentation of continuous integration and testing

Overview

We are using GitHub actions to implement continuous integration and build testing. Our project has automated workflow to bump app version then commit, tag and push changes and then same workflow will trigger build on each platform, resulting build will be uploaded to draft release and then it will be published as new release. Another workflow can be used to build app against any commit, it will build app for specified platforms and resulting app will be uploaded as artifacts to test.

<aside> 💡 These workflow can be triggered from GitHub action tab by just pressing a single click by any contributor of the project ( can be restricted if required ).

</aside>

Continuous Integration

CI workflow automate complete process of releasing a new version of our app. It start with setting GitHub account reference in virtual runner, then checking out master branch. Then it bump the app version specified in argument (default is patch ). Once version is bumped correctly, changes are committed, tagged and pushed to repository. Then it create a release draft and trigger app build on MacOS, Linux and Windows. If build are successful then packaged app is uploaded to release draft. Once all three builds are uploaded the workflow publish a new release.

All of this can be triggered by any contributor of app using "Run workflow" button.

Code is documented here:

CI workflow

Test builds

Testing workflow automates build process on all three platform(or specified only) and upload resulting build as artifact, which can be downloaded and tested anywhere. Once builds are uploaded, then workflow will delete x number of old artifacts(specified in workflow). Workflow require commit hash / git reference of commit against which, you want to build app. Any contributor of project can trigger this workflow for a particular commit with just single click in GitHub action tab.