In order to develop a stable and amazing app to use, the Android team goes through a rigorous build and release cycle.
This process, typically results in a new version of the app released every two weeks. However, there are a lot of little things that occur during the two week cycle. The most prominent, is the use of our Wattpad Beta program.
Oops! This image does not follow our content guidelines. To continue publishing, please remove it or upload a different image.
In case you are wondering what the Wattpad Beta app is, you can download it here.
The beta app is a version of Wattpad which is considered unstable, where we can test out and fix bugs before we roll it to production.
Typically we make a beta app release every single day. This ensures that the most latest code is being tested out by our beta users.
This process, is however very time consuming. Making a build alone, typically takes a developer machine several minutes and a lot of manual labour. In addition, the developer is required to do random bookkeeping which is tiresome and prone to mistakes.
For example, every single day a member of the Android team will have to do the following:
1. Update the version name and version code
2. Clean and build the apk
3. Commit the mappings files
4. Push the mappings and version name/version code changes
5. Tag the build
6 Push the tags
7. Upload the apk to Google Play
8. Upload the apk to Slack
This is why we created Alfred Pennyworth - the Android teams build and release engineer.
Oops! This image does not follow our content guidelines. To continue publishing, please remove it or upload a different image.
Alfred is a bot that can be integrated via Slack.
Below is a screenshot of Alfred making a build:
Oops! This image does not follow our content guidelines. To continue publishing, please remove it or upload a different image.
As you can see, Alfred can be commanded via Slack to make a specific build type, which branch and what version name/ version codes to use.
With one line of text, Alfred will kick off a build and do all the steps above without the need for a team member to do anything.
For those who are curious, Alfred is a fork of Hubot, running on Mac mini machine with a full Android development environment.
Oops! This image does not follow our content guidelines. To continue publishing, please remove it or upload a different image.
Ever since we hired Alfred, he has been a very important member of the team. He has helped us increase developer efficiency and reduced bookkeeping mistakes that used to happen during our build and releases.