We’ve chosen Gradle as our build system for our iterative BI environment. It’s a powerful tool, but there’s a bunch of awesomeness in there.
Gradle uses Groovy as its scripting language. Groovy is just plain great. You get the power of the Java platform in a scripting language and can do things like this:
def client = new XMLRPCServerProxy("http://localhost:8090/rpc/xmlrpc").confluence2
def session = client.login(user, pass)
client.getPages(session, "MyWiki").each { page ->
println "${page.title} was authored by ${page.author}"
}
client.logout(session)
5 lines of code to access the XML-RPC interface of Confluence and print out all the pages and their authors. Easy like it should be. And, we can do stuff like this in our builds. All of the sudden, checking the version of a database before applying a change script is no big deal. Checking if a wiki page has been modified before updating it is a cinch.
Our build system does:
- DDL generation from the PowerDesigner model (yep, we scripted this in Groovy using the included scriptom COM bridge). No more wondering if the architect updated DDL when she renamed that table.
- Completely automated database builds, reading the DDL from above.
- Syncronization of the metadata wiki based on metadata exported from the PowerDesigner model.
- Deployment of SSIS packages to the new 2012 package catalog.
We’re excited about the possibilities this opens up in terms of accelerating the pace of development on our teams and allowing for more parallel development than ever. It’s a game-changer down in the trenches!