-
Notifications
You must be signed in to change notification settings - Fork 1
Releases
Releases of new versions of Maap Collector are published according to lifecycles of projects (https://github.com/instedd/maap-collector/projects), usually grouping a couple of features and bug fixes on each iteration. Each release comprises a group of files required for the installation
of Maap Collector in both Windows and MacOs environments, which are generated on each Travis build.
Release logic is contained in release.js
file.
Each release is named following Semantic Versioning technique
(<Major.Minor.Patch>
format).
Commits pushed into master
branch trigger a build and resulting files are pushed into the most recent Draft, which is named after package.json
version
number. This process will repeat indefinitely until either the Draft is published (released) or the version
field is updated. In the latter case, a new Draft for that now-most-recent version is created, and following commits in master will start updating the content of the new Draft.
A release of a particular version is published after being tested, once the objectives for the current iteration are accomplished. From that moment on, the release is frozen. New commits into master
branch won't affect the contents of the release, even if the name of the release matches the current version (pointed out by package.json
).
Instances to be built are listed in environment.js
file. To add a new country instance, so a new Draft for that instance is created on next commit, simply add it to the list.
Currently, the following files are being generated during each build:
- latest-mac.yml
- latest.yml
- maap-collector-[instance]-[release-version]-[instance].dmg
- maap-collector-[instance]-[release-version]-[instance].dmg.blockmap
- maap-collector-[instance]-[release-version]-[instance].msi
- maap-collector-[instance]-setup-[release-version]-[instance].exe
- maap-collector-[instance]-setup-[release-version]-[instance].exe.blockmap
At the moment, MacOS files are being used for testing purposes only, whereas Windows files are being used
in productive instances. Actual application installers are in .dmg
, .msi
and .exe
files.
Currently, whenever a new commit pushed into master
branch, two Drafts named after the aforementioned version is created for each country instance: One containing the installers and files, and the other empty. We are handling this situation by manually deleting the empty ones.
Sometimes happens that even though the build process for a particular country instance finishes successfully on Travis, for some reason its files aren't updated. We are handling this situation by checking the files manually, by installing the app on both Windows and MacOs and verifying that the changes were successfully applied. Though it's pretty annoying, it's the best trade-off we've found until this moment in terms of gain vs cost. TODO: improve Travis builds reliability.