In one of my articles, I had described the process of setting up CI for Xamarin with Bitrise. Now, after almost a year, I’d like to present you a series of articles: Azure DevOps for Xamarin.
I would like it to be tutorial-like, so you will get both articles and repository with a sample.
I’d like to write a series because I can’t write short articles and covering all subjects will result in veryyyy looooong article. For sure, I would not like to have it.
What’s more, I’d like to have the articles nicely structured. Everything in its place, so both I and my blog’s SEO can be happy.
What’s the plan?
During the next weeks, I will try to cover the following subjects
- Setting the scene
- Setting up Azure DevOps
- Cake for Xamarin.iOS
- Cake for Xamarin.Android
- Cake for Xamarin.Forms
- Cake for Xamarin NuGet packages
I wouldn’t elaborate more on those topics. I hope they are quite clear. I can’t promise how often I will post new articles (it depends on my workload), so sorry for that. Whan I can offer though is that I can send you an email that a new article is published. Please subscribe to my newsletter, so you can receive an email when a new article is published. Don’t be afraid! I don’t sell anything and I will not spam you. I will only write to you when there is a new article.
Why setting up CI/CD?
I will start with the first topic: “Setting up a scene”. To begin with, let’s think about the reasons why you should spend time on CI/CD.
1.Having CI/CD makes the feedback loop smaller
Not having continues integration means that you need to run a set of actions before each build. This is time-consuming. Assuming you need to build both an Android and iOS app manually (Booooy! That’s a lot of money). Before you build it, you might need to run the tests. Tests are fine? Good, let’s build your Core project, iOS and Android. How long will you say it takes? 10minutes? 15min? Ask your boss how much does he charge the clients for 1h of your work and count how much money it is. And we are still not there. You need to create .ipa and .apk file and deploy it somewhere. That’s a long journey and we only have to give stakeholders a version for review. As you can see it takes a lot of time. With CI/CD set up you can run the whole process above automatically. A new feature on develop? No problem, CD will take care that it didn’t break anything and release a version if it is fine.
2. Having CI/CD makes the process repeatable,
We are only human. We do mistakes. From time to time, we are deleting files (like certificates), losing passwords, not bumping a version. This is fine. But if we made a mistake we need to repeat the process. Sure you can have a checklist for each build you run manually but why should you care when CI can take care of it?
3. Building the app, running tests and deploying the package manually is so booooring
Let me not elaborate on this one. I do hope that now you can see that doing everything on your own is boring.
In the next article, I will show you how to set up everything in Azure DevOps. We will start with a repository with a more or less blank app. The app will be done in Xamarin.Forms.
Are Xamarin.Native developer? I need to tell you that you can reuse the steps I will write about for your native app. They are the same.
To the future!
I hope I got your interested and we will e-meet in the next article.
Having CI/CD in your project is a real time-saver. When you still do not want to set it up then do it for the sake your client. You can save him some serious money.
Gifs taken from giphy