Integration (comparison) of different continuous integration services on Android project.
- Codemagic.io
- Gitlab CI
- Drone.io
Codecov.io
provides test coverage information. CODECOV_TOKEN
environment variable should be exported on the build machine.
This table should help people make a decision which CI to choose for the project.
CI | 👯,👷,🔎🐛,🚦,📬 | 📱👀 | 🚀 | 📄 | 📈 | 👤🙌/☁️ | 📻/💻 | 💵 |
---|---|---|---|---|---|---|---|---|
Jenkins | ⭐ | ⭐ | ⭐ | ⭐ | ⭐ | 👤🙌 | 📻/💻 | 🆓 |
TeamCity | ⭐ | ⭐ | ⭐ | ⭐ | ⭐ | 👤🙌/☁️ | 💻 | 💰💰💰 |
Bitrise | ⭐ | ⭐ | ⭐ | ⭐ | ❌ | ☁️ | 💻 | 💰💰 |
Circle CI | ⭐ | ⭐ | ⭐ | ⭐ | ❌ | ☁️ | 💻 | 💰💰 |
GitHub Actions | ⭐ | ⭐ | ⭐ | ⭐ | ❌ | ☁️ | 💻 | 🆓 |
Gitlab CI | . | . | . | . | . | . | . | 💰 |
Nevecode.io | . | . | . | . | . | . | . | 💰💰 |
Codemagic.io | . | . | . | . | . | . | . | 💰 |
. | . | . | . | . | . | . | . |
---|---|---|---|---|---|---|---|
👯 clone 👷 build 🔎🐛 test 🚦 analyse 📬 notify |
📱👀 UI tests | 🚀 deploy | 📄 configuration file | 📈 visual reports | 👤🙌/☁️ self-hosted/cloud | 📻/💻 CI user interface (old/new) | 💵 price |
All listed CI's provide free plan with some restrictions like "open-source projects only" or "only 1 build node", but it's enough to configure the build process and check if CI suits or not.
Choosing a free plan for a project is more suitable for a freelance project. Usually, some services provide limits on such plans for understandable reasons.
CI's have different approaches and different paid plans. Check every CI pricing information for more details and choose the best option for you.
What might matter is the starting price for paid plan:
- Jenkins - starts with X$. (paid version (Cloudbees), no public information)
- Travis CI - starts with 69$/month. (1 concurrent build, ∞ projects, ∞ build time)
- Bitrise - starts with 50$/month. (1 concurrent build, ∞ projects, 45 min. max build time)
- TeamCity - starts with 299$. (4 concurrent builds, 30 project configurations, ∞ build time)
- Gitlab CI - starts with 15$/month. (2 concurrent builds, ∞ projects, ∞ build time)
- Circle CI - starts with 39$/month. (2 concurrent builds, ∞ projects, 500 minutes build time per month)
- Nevercode.io - starts with 5$/month. (1 concurrent build, ∞ projects, 90 min. max build time)
- Drone.io - starts with 25$/month. (1 concurrent build, 5 private projects, ∞ build time)
I gave a talk back in 2016 and this repository was a technical part for it. I am describing there configured CI's and providing my personal opinion about which CI to choose depending on your needs (in 🇷🇺 language ).
It doesn't contain information about ALL existing CI services, but should be a good start.
In few words:
- Jenkins/TeamCity for complex workflow
- Circle CI for open-source projects
- Bitrise.io for any workflow
In order to distribute Android builds to Firebase, Google Service Account (link) credentials should be created.
Service Account then needs to be saved in secure place and exported in FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_JSON={service-account.json}
environment variable on CI.
Use secret variables on CI/repo level for this.
Distribute the build using following command:
./gradlew appDistributionUpload{Debug|Release}
Following CIs are no longer integrated (either because they have been discontinued or due to pricing policy change such as Travis).