Thursday, May 21, 2015

continuous integration

I've been in devops for almost 30 years. This clearly predates the origin of the word. Back in those days we did not care about what we called ourselves it was just about the work. In the last few years that has changed as freshman programmers have entered the field and wish to distinguish themselves in order to catch the wave that others have already rode.

I have used or familiar with a number of CI systems. Drone, Travis, Jenkins/Hudson, TeamCity, Go(aka continuum), IBM had a huge build system for it's OS/2 build. One could make a distant argument that some IDEs and Makefiles are also CI systems, however, it would be wrong.

So while I have been working on my IDE project I decided that I would start with tmux (still not there) and a change triggered makefile. This is not exactly a CI system but it is the foundation. The "autobuilder" takes some lessons from the CI systems...
  • when the user saves a file then start the build
  • ignore some files
  • do not get confused by meta artifacts
  • custom build tasks
  • stop on the first failure
  • capture the output
  • stream the logs
This will eventually get some new features.
  • implement git receive (integrate with github and bitbucket)
  • trigger docker builds similar to Apcera Gnatsd (link)
  • integrate with my remote IDE so that it can build local and trigger git builds
  • auto builder dashboard
Pull Requests are welcome.

UPDATE: and I forgot the other point I was trying to make. Depending on the size of the project(s) you are working on your $$$ will go a long way. The think that bugs me is that companies like drone.io and travis.com charge a lot of money.  Travis charges $129/mo and Drone $20/mo. But you can build your own micro build machine for $20/mo on a VPS anywhere and if you implement a dynamic build system you can shave that price even lower.

UPDATE: I was boyscouting my inbox a few minutes ago and I stumbled over emails from Cloud9, Nitrous, and Codeenvy. While these projects are awesome I think we can all implement our own. With some basic skills in server side programming implementing a websocket app, static server, something that looks like the rmate server, and a CI makefile thing... it's all very doable.

No comments:

Post a Comment

Fire OS and Android

The relationship between Amazon's FireOS and Google's Android OS is probably very complicated. And while there is probably some very...