6 ms·
Are there any half-decent ways to run CI locally? Anyone have any suggestions? For me it doesn't have to be automatic like these CI services.
by CarVac 5y ago
Are there any half-decent ways to run CI locally? Anyone have any suggestions?
For me it doesn't have to be automatic like these CI services.
- toomuchtodo 5y agoGitlab CE? Should be a Docker pull away.
- haram_masala 5y agoAgreed with this, because it gives you a relatively direct upgrade path in case you want to start using GitLab Enterprise.
- CornCobs 5y agoSorry if I'm ignorant, but isn't running CI locally basically just running tests/build normally?
- duped 5y agoIt's the opposite of running tests locally. You don't want to test in your development environment. That's how you get into "runs on my machine" syndrome.
- qorrect 5y agoWouldn't running tests in docker on a fresh image creation solve this ?
- disgruntledphd2 5y agoSortof. However, if you have a local file which hasn't been committed to VC, then you'll only notice this when you push to CI. This is probably the biggest benefit for me, it means that the build/testing/infra is reproducible on at least one other machine.
- duped 5y agoIf you're on Linux, sure.
- ViViDboarder 5y agoThey literally said they want to do this locally though.
- klyrs 5y agoWell, you'd need to manage multiple OS/architecture configurations, and keep them separate from your dev environment. I'm sure it's all possible with qemu etc, but having (a) somebody else do that and (b) actual hardware instead of a VM-on-emulator cludge, is a game-changer
- loloquwowndueo 5y agoConcourse CI. Easy to install locally and you can define pipelines to do ... stuff. 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.
- smashed 5y agoUgh. Concourse is interesting for sure, but really hard to get a hang for. I would be careful who I recommend it to. 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.
- fsck0ff 5y agoI spent a few hours this week creating a FreeBSD port for Drone, only to find out that the OSS version of Drone doesn't support external workers and since FreeBSD doesn't do Docker, Drone is pretty much useless on FreeBSD. It would be great if it was mentioned in their documentation so I didn't waste my time with Drone, but it's not. Concourse on the other hand seems to work on FreeBSD and doesn't have artificial limits to try and sell something.
- handrous 5y agoTons of ways that are all quick and easy to set up... if you build on one platform, or use VMs of one OS only, or use Docker containers. 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.
- solarengineer 5y agowww.gocd.org See build.gocd.org for an example of what pipelines can look like
- ViViDboarder 5y agoYou mean host your own CI? Or just run your tests on your machine that you’re developing. 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.