Hi everyone! My name is Moataz and I’m working as a Developer Advocate at Bitrise. During October and November, I had the pleasure to speak and attend 5 events (droidcon Berlin, London, Italy, WeAreDevelopers, and Decathlon Mobile Meetup) in-person and virtually. It was a great chance to meet awesome people and speak with them about different topics such as DevOps, Mobile CI/CD, DevSecOps, test automation, and more.
After my talks, I received questions related to different topics so I decided to collect all the answers in this article. Let’s get started!
Question 1: What’s Bitrise?
Bitrise is a Continuous Integration and Delivery (CI/CD) Platform as a Service (PaaS). It’s a collection of tools and services to help you with the development and automation of your mobile apps to release quickly and frequently.
Question 2: How does Bitrise work as a CI/CD platform?
Using Workflows and Steps to build your CI pipelines, the Workflow Editor is a convenient and powerful tool, designed to ensure the smoothest possible Continuous Integration processes for developers everywhere.
The Workflow Editor is where most of the Bitrise magic happens. You can configure every aspect of your Bitrise build here: all the tools, services, and integrations you want to use.
Bitrise Steps are the heart of our CI/CD service — they are the building blocks of our Workflow Editor. Steps are open-source integrations that let you do just about anything on Bitrise: build, test, and deploy your apps, notify your teammates, open Jira tickets, and so much more.
Question 3: Can I initialize an Android Emulator for my Android UI tests on Bitrise?
Yes, you can initialize an Android Emulator on Bitrise machines or you can use cloud testing services such as Genymotion, SauceLabs, BrowserStack, AWS Device Farm, and Firebase Test Lab.
For devices on the Bitrise machines, you can do it with two Bitrise Steps:
- Add the AVD Manager Step to initialize the Emulator and you can configure the Device Profile, the API Level, and the OS Tag.
- Add the Wait for Android Emulator Step to check if the Android Emulator is booted or wait for it to finish booting.
For more details, you can check the articles about Android UI testing with AWS Device Farm and Bitrise and Getting started with Appium & Bitrise for Android apps.
Question 4: Can I run my Bitrise Builds on my on-premise machines (is there any runner for that)?
No, Bitrise is only in the cloud. It’s PaaS (Platform as a Service) and there is no option to use it on on-premise machines.
Question 5: What are the best practices for ensuring the security of mobile apps?
With DevSecOps, security is everyone’s responsibility, not just of the security team. It’s about applying the security checks at early stages in the development phase to help detect the security issues early and continuously.
Security processes should:
- Be completely automated to keep pace with dynamic and rapid software development practices.
- Comprehensive in scope.
- Provide accurate and insightful information, not just partial data.
Question 6: Can I run Bitrise builds from the CLI?
Yes, you can use Bitrise CLI, Bitrise CLI is a Command Line Interface for running your Workflow from Bitrise on your local machine or even automating your local development processes (or almost anything) with a single terminal command.
Question 7: Does Bitrise support open-source, freelance, or individual projects?
Sure. Bitrise has different pricing models for solo developers, teams, and enterprises. We also support NGOs, charities, schools, and other nonprofit organizations by offering them free concurrencies for their mobile app development.
Question 8: Can I manage the mono-repos with Bitrise?
Yes, you can! First, register this repo multiple times as separate Bitrise projects/apps and open the Settings tab of each of your applications on Bitrise and toggle the Enable Selective builds option.
When it’s enabled, you have to set the change paths. This means that builds will be only triggered when there is a change on any of the paths defined in your project. You can specify the paths with a glob-like pattern:
Then you can create separate Workflows for each of the projects and treat them as usual, as regular apps.
Question 9: Can I run multiple builds at the same time with Bitrise?
Yes, one of the important features of Bitrise is that you can split your Workflows into small Workflows and run them in parallel to reduce the build time. If your app is growing or the team is scaling, you can check our articles for Android and iOS and how you can speed up your builds with Bitrise.
Question 10: How can I run the Espresso UI tests for Android on Bitrise?
First, you need to add one Bitrise Step in your CI workflow to build the app for testing and configure your module, app, and variant based on your target. This will give you the output of two apps (apk and test apk).
Then you can add a Step for taking the app and test app to run them on the cloud device with Firebase Test Lab.
If you have your own Firebase and Google Cloud project, you can use another Bitrise Step to speed up your tests by running them in parallel using Flank, it's a wrapper for Firebase Test Lab.
Question 11: Can I create a Bitrise Step?
Sure! All of our Bitrise Steps are open-source and you can create your own Step. If you think that there’s a missing Step and you want to share it with our community to use, read this hands-on guide about how you can start build and submit your own Step.
Question 12: If I run the Bitrise builds locally from the CLI, will my balance or credit be affected?
Yes, because you are connecting to the Bitrise platform to run your Workflows, so it’s connected to your account and it will be deducted from your credits.
Question 13: Does adding security processes into our DevOps cycle affect the speed or the performance of the builds or releases?
It depends on how you implemented or added the security layer or checks into your DevOps cycle. You can measure the development and the delivery performance to know whether this affects your speed or not. In general, DevOps is a journey, not a destination so try to always improve your processes.
Question 14: As a startup, can we use Bitrise?
Yes! With Bitrise’s pricing model, you can set up your own budget and select the suitable model for your team based on your needs. For example, the Teams plan starts at $31.50 per month. This is suitable for small to mid-sized organizations and you can also access our new, faster build environment, the Gen2 platform.
Question 15: What is the meaning of exposing an environment variable in Bitrise?
By default, pull requests do not have access to the values of Secrets. This means that if a pull request opened from a fork of a repository triggers a build, that build can't use the app's Secrets.
If you need to grant pull request builds access to a particular Secret, you can expose that Secret to pull requests. However, even when exposed, its value won't be visible in the logs: it will be displayed as [REDACTED].
Question 16: What’s the difference between saving the Bitrise YAML file on the website or in the project repository? And what’s the best way to do it?
By default, Bitrise saves the bitrise.yaml file on the website. The easiest way is to edit or update it directly but if you have a large, global team, there’s a chance that someone can accidentally remove or update the yaml file.
To avoid this, save the bitrise.yaml file in the project repository. If someone needs to update the yaml file they will open a new pull request. which will require a review process.
In the project repository, you have full control over the versioning of your configuration file, but every time you make a change to your Workflow or your trigger map, you must commit the changes to the file in the repository.
Question 17: Does Bitrise support Ionic and Xamarin?
Bitrise supports most of the mobile app platforms:
- React Native
One exception is Xamarin, which we will stop supporting on our platform after the end of January, 2022.
Question 18: Can I migrate my CI pipelines from Jenkins to Bitrise? What Steps do I need to do that?
Yes, you can! We already have a migration guide to safely migrate your pipelines from Jenkins to Bitrise, including how to manage Environment Variables, Secrets, and the other configurations. We also have hands-on, step-by-step guides for migrating your Android, iOS, Flutter, and React Native apps.
Question 19: What are the differences between Bitrise and other platforms such as GitHub Actions?
With Bitrise you can easily build your CI/CD pipeline with the virtual Workflow Editor. You can find the bitrise.yaml file as well, generated with all the Steps and configurations you added. In GitHub Actions, you need to build the YAML file by yourself. Since Bitrise was built for mobile, it has all the required Steps for your mobile apps.
Bitrise always has the latest macOS tech stack to help you accelerate your development and delivery processes. If you are using Jenkins, for example, you need to have a knowledge of Groovy to be able to build the CI pipelines.
Question 20: Can I build and run Flutter or React Native apps in the same pipeline or Workflow?
Sure! This is one of the benefits of using Bitrise: you can have a single Workflow with all the required Steps for building, testing, and deploying Flutter, React Native, Ionic, and Cordova mobile apps easily.
Question 21: Can we use our own Docker Images or Compose with Bitrise?
Yes, you can use your own Docker images. On Bitrise, every single build runs on its own, separate virtual machine that is destroyed at the end of the build. On our Android stacks, we use Docker for this purpose. Our stacks have pre-installed Docker images, but you can use your own custom image, and run custom Docker commands in your Workflow.
Question 22: Can I have the latest macOS versions on Bitrise?
By default, we always have the latest version of the macOS with an average of 3.4 days between release and availability. On average, Xcode updates are 3 days faster on Bitrise than on the second fastest competitor’s platform.
Question 23: Does Bitrise support M1 for macOS machines?
No, currently, we are not supporting M1. You can check our machines’ specs on the pricing models page.
I hope you found this article useful and that I answered all your questions! If there is anything else you’d like to ask, you can reach out to us on Twitter or via email. If you’d like to try Bitrise, you can sign up here for free.
If you are interested in joining my team and working together to grow the Bitrise community together, check our current openings. Good luck!
Stay safe and happy building!