Code Monkey home page Code Monkey logo

ci-matters's Introduction

ci-matters

Integration (comparison) of different continuous integration services on Android project.

CI's integration

TODO

  • Nevercode.io
  • Gitlab CI
  • Drone.io

Comparison

Comparison table

This table should help people make a decision which CI to choose for the project.

CI ๐Ÿ‘ฏ,๐Ÿ‘ท,๐Ÿ”Ž๐Ÿ›,๐Ÿšฆ,๐Ÿ“ฌ ๐Ÿ“ฑ๐Ÿ‘€ ๐Ÿš€ ๐Ÿ“„ ๐Ÿ“ˆ ๐Ÿ‘ค๐Ÿ™Œ/โ˜๏ธ ๐Ÿ“ป/๐Ÿ’ป ๐Ÿ’ต
Jenkins โญ โญ โญ โญ โญ ๐Ÿ‘ค๐Ÿ™Œ ๐Ÿ“ป/๐Ÿ’ป ๐Ÿ†“
TeamCity โญ โญ โญ โญ โญ ๐Ÿ‘ค๐Ÿ™Œ/โ˜๏ธ ๐Ÿ’ป ๐Ÿ’ฐ๐Ÿ’ฐ๐Ÿ’ฐ
Travis CI โญ โญ โญ โญ โŒ โ˜๏ธ ๐Ÿ’ป ๐Ÿ’ฐ๐Ÿ’ฐ
Bitrise โญ โญ โญ โญ โŒ โ˜๏ธ ๐Ÿ’ป ๐Ÿ’ฐ๐Ÿ’ฐ
Shippable โญ โญ โญ โญ โŒ โ˜๏ธ ๐Ÿ“ป ๐Ÿ’ฐ
Circle CI โญ โญ โญ โญ โŒ โ˜๏ธ ๐Ÿ’ป ๐Ÿ’ฐ๐Ÿ’ฐ
Buddybuild โญ โญ โŒ โŒ โŒ โ˜๏ธ ๐Ÿ’ป ๐Ÿ’ฐ๐Ÿ’ฐ
GitHub Actions โญ โญ โญ โญ โŒ โ˜๏ธ ๐Ÿ’ป ๐Ÿ†“
Gitlab CI . . . . . . . ๐Ÿ’ฐ
Nevecode.io . . . . . . . ๐Ÿ’ฐ๐Ÿ’ฐ
Drone.io . . . . . . . ๐Ÿ’ฐ
. . . . . . . .
๐Ÿ‘ฏ clone
๐Ÿ‘ท build
๐Ÿ”Ž๐Ÿ› test
๐Ÿšฆ analyse
๐Ÿ“ฌ notify
๐Ÿ“ฑ๐Ÿ‘€ UI tests ๐Ÿš€ deploy ๐Ÿ“„ configuration file ๐Ÿ“ˆ visual reports ๐Ÿ‘ค๐Ÿ™Œ/โ˜๏ธ self-hosted/cloud ๐Ÿ“ป/๐Ÿ’ป CI user interface (old/new) ๐Ÿ’ต price

Pricing

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.

Free plans

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.

Paid plans

CI's have different approaches and different paid plans. Check every CI pricing information for more details and choose the best option for you.

โš ๏ธ This information can get outdated very quickly as services evolve. โš ๏ธ

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)
  • Shippable - starts with 25$/month. (2 concurrent builds, โˆž projects, โˆž 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)
  • Buddybuild - starts with 79$/month. (1 concurrent build, โˆž projects, โˆž build time)

Presentation

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.

CI comparison presentation

In few words:


Checkstyle

Project uses custom Checkstyle rules.


Fabric/Crashlytics project configuration

In order to upload APK to Crashlytics project should have following configuration: ${projectDir}/fabric.properties file with apiSecret and io.fabric.ApiKey in AndroidManifest.xml(1, 2) file. Both keys should not be uploaded to the repository for security reasons!

Pass both parameters to your build from command line:

./gradlew -PfabricApiKey="YOUR_API_KEY" -PfabricApiSecret="YOUR_API_SECRET" crashlyticsUploadDistributionDebug

or export these keys as environment variables on a build machine and they will be automatically read from there during the build (no need to pass keys as parameters in this case).


Coveralls

Coverage Status

Coveralls provides test coverage information. COVERALLS_REPO_TOKEN environment variable should be exported on the build machine.

ci-matters's People

Contributors

vgaidarji avatar egor-n avatar wyxloading avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.