I've been working with CircleCI, TravisCI and Azure DevOps for quite some time now.
While it's great to have a managed server that integrates beautifully with all of the external services you can think of (VCS, CD pipeline, app stores etc.), one of my greatest pains is testing for CI. When setting up such systems, I spend the majority of my days tweaking and configuring YAML files, Bash scripts and other parts of the CI process to work faster and smarter. However, this process is slow: it takes 1-5 minutes to even get the first error message that something is wrong, not to mention sometimes 1+ hours for final builds.
You can only do so much locally - mock environment variables, use exactly the right container and add credentials for the relevant services. But it's not quite there, just yet. I envision a full-service solution for this, one that takes care of setting up the environment exactly the same as in Azure or Travis, including getting data from Git based on the specific push and the like.
I would be able to pay good money for that - this will save me hours every week of waiting for the CI agents to spin and finish small ls
, pwd
and echo
statements just to figure out where the heck I am.
Is there something like that out there?
Edit: This is a good example of a "duck-tape" solution that could be of great use, but is not full-fledged. I'm looking for something like this, but more robust.
Edit 2: This is a bad example of a solution that requires me to do the most crucial part - dependencies - manually.
Edit 3: This has a lot of interesting options, specifically using Chef and travis-cookbooks or vagrant. This is the most promising direction so far, albeit it's for Travis alone, seemingly. Maybe set up vagrant boxes for each type of agent you have?