For me it doesn't have to be automatic like these CI services.
For me it doesn't have to be automatic like these CI services.
As soon as you need e.g. macOS + Windows + Linux + iOS + Android (really, any three of those) it's hell. You're either going to be conforming your build to the requirements of some "cloud" solution (if you can) while paying painful money for it and maybe (likely) not even getting very good performance in exchange, or maintaining several build machines (locally or as rented servers/VMs or whatever). Or screwing around with Parallels or something, and "enjoying" bad build times for most platforms.
It's a very easy problem to solve for container-heavy web stuff. It becomes no fun in a hurry once you're very far outside that.
The latter is super easy. Read the readme and run the tests.
The former can be done with any of the popular open source CI platforms. Jenkins, Drone.io, Concourse, or GitLab runners to name a few.
This is probably the biggest benefit for me, it means that the build/testing/infra is reproducible on at least one other machine.
It does stuff you’d normally do with Travis or GitHub actions. Store them as code in your project repo, run jobs automatically and repeatable and do stuff based on the results.
I don't like to speak in negatives so I won't elaborate, but basically I've had a very hard time using it and it made work miserable. Besides the shiny UI, there was literally nothing to make a devops team's work easier. Simply accessing a failed job log output was hard.
I prefer gitlab-ci because I already use gitlab and the integration is nice. For a pure CI system I would use drone.io if I was not already using gitlab.
See build.gocd.org for an example of what pipelines can look like