Friday, September 21, 2012

Jenkins/Hudson Integration

The most dominate CI system is Jenkins (was Hudson).

Jenkins has a nice integration with xunit XML output for tests. I wrote a little utility that converts go test -v output to xunit compatible XML called go2xunit. (install with the usual go get bitbucket.org/tebeka/go2xunit).

The view on Jenkins (tests are failing intentionally) is like the below.


When you click on the tests you get



There's a demo directory with an example bash script. The project configuration looks something like the below. Note the "Execute Shell" command and "Publish JUnit tests report" sections.


Happy Testing.

Thursday, September 6, 2012

seamless - now with multiple backends

Updated seamless to support multiple backends (thank you Fabrizio for helping out).

The new API is:
  • /set?backends=host:port,host:port
  • /add?backend=host:port
  • /remove?backend=host:port
  • /get
The front end will round-robin between the backends.

You can install either via go get bitbucket.org/tebeka/seamless or by downloading the binaries.

Friday, August 10, 2012

seamless - always up services in 85 lines of Go

At work we're debating on how to upgrade servers that need to be up all the time. This prompted me to write seamless.

It's a 1 to 1 TCP proxy which lets you switch the backend via an HTTP interface (on a different port than the one being proxied).

Typical workflow will be:
  • Start backend on internal port
  • Start seamless and proxy exposed port to backend
  • When upgrading start new backend on different external port
  • Tell seamless to switch backends
You can install seamless by running:
    go install bitbucket.org/tebeka/seamless

or if you don't have the go runtime, you can download the binaries.
All the code (inspired by Roger Peppe) is just 72 85 lines.

Tuesday, July 3, 2012

timeat

A small command line utility to display the current time at a given location. It's a mash between Google Maps API (JSON) and Geonames (XML).

Saturday, April 28, 2012

Image Repository

Here's a small we app the allows users to upload photos (somewhat like imgur).

Code


Template

Thursday, April 19, 2012

Open file/urls with default program

Here's the code for a cross platform way to open file/uri with default application.

You can also install the package with
    go install bitbucket.org/tebeka/desktop


Monday, April 16, 2012

Web/Desktop Application

Currently there's no easy/cross platform way to write desktop applications in go.
However I found out the for simple UI (which in my case covers most of them). I can get away with writing the application as a web server and point the user browser to it.

Here is a small example for a guest book:

/* MIKI: Analytics */