Thursday, February 4, 2016

continuous integration

There is something to be said for compiling my own code.

-xkcd

There is something about the control of saving a file, building and testing it locally, and then committing to the version control when it's complete. And when projects are monolithic or the team or assignment is small this feels like a good way to do things. But until you've experienced CI/CD firsthand you'll never appreciate it.

Whenever I join a new project the team lead always hands me a list of dependencies and instructs me to pollute my machine with years of project customization which usually ends in a complete OS reinstall. From time to time I've been handed a VM instance which makes things better, however, there are no less than 3 virtual environment for OSX and while they should be able to coexist it's a risky proposition and the VM instance is usually opinionated. (containers can be a variation on the VM theme).

The biggest challenge is the subtle changes that take place in the environment over time that are unintentionally not captured in the environment.

Continuous integration is but the theme. The implementation depends on the tools and workflow your team has agreed upon. For example forking vs mainline; jenkins, drone, and so on. Push vs pull. Build dependencies.

No comments:

Post a Comment

dead pixels

I have never had a dead pixel so when I read: Small numbers (1-3) of stuck or dead pixels are a characteristic of LCD screens. These are n...