Slides that I presented at Voxxed Days 2016 in Belgrade about Continuous Integration for Mobile Applications.
I demonstrated a few online service providers and showed how you can set up a build server in just a few minutes for your mobile application and ultimately deploy it with a few clicks to the App store.
Hi, Alex, Zühlke, Responsible
Today talking about CI for mobile = CI for apps with special tricks
Main Goals of this talk:
Raise awareness, how easy it is to automate your build (including live-demonstrations)
Advocate the use of cloud services over on-premise solutions
Awakening desire to use this in your next project (Ultimately, you walk out of this talk and start using CIs for all your mobile projects)
Back in Camp 2014, everyone set up a Jenkins (himself), yet no one really did it in a project.
Tedious, actually quite boring, ... because it follows certain recipes that you have to do over and over again.
--> OPs had the same problem.
Started creating bash scripts to automate things
Vergleich mit Autofahren Safety in Development
Continuous Integration is the practise of merging all developer working copies into a shared mainline several times a day.
Pro:
Integration bugs are detected early
Constant availability of “current” build for testing and release
Avoid dependency on individuals for building the app
If reverting is required, only small number of changes are lost
Avoid last-minute chaos before release
Contra:
Getting up and running is not trivial
Eventually costs money
Someone has to take care of it
A build is a procedure that takes an empty directory (and a known compilation environment) and builds the project from scratch, producing whatever you hope to produce as a final deliverable.
Hunt and Thomas - The pragmatic programmer
Ask audience, if this has ever happened to someone
def code = System.getenv("BITRISE_BUILD_NUMBER") as Integer ?: 0
android {
defaultConfig {
versionCode code
versionName "1.4." + code
...
Ask audience, if this has ever happened to someone
def code = System.getenv("BITRISE_BUILD_NUMBER") as Integer ?: 0
android {
defaultConfig {
versionCode code
versionName "1.4." + code
...
Once a person finds a bug, it should be the last time a person finds that bug. Automate a test for it
Be aware that you will do a lot of updating and upgrading
-> Basically whenever I come back to my PC after a week, there are new updates available for Android, Xamarin, Mac, Windows, Build-Tools, Build-Agents, ...
Be aware that you will do some kind of scripting (bash, PS, python, whatever)