PMD formatter for TSLint
One of the development teams we work with is developing in TypeScript and using tslint for code analysis. We’ve established a CD process for them which involves compiling typsecript to javascript, minifying the resulting code and deploying it to a staging server. Naturally they wanted to run tslint as a part of this flow in order to get notified on any new warnings a commit might have introduced. When running static code analysis in CD flow one wants some statistics on analysis results and a nice graphic representation of the results. All these are already implemented in the Jenkins PMD plug-in. (We’ve already used the PMD plugin successfully for representing the OCLint analysis results we run for an iOS project we support.) So the only thing we needed was formatting the tslint output according to PMD format, which is in fact a very simple xml markup. Writing a formatter was…
GO is now open source!
http://www.go.cd/2014/02/25/go-moving-to-open-source.html ThoughtWorks have been industry acknowledged experts in everything related to the practices of Continuous Integration and Delivery throughout the last decade. They were the creators of CruiseControl which was a de-facto standard tool for CI before all the new tools arrived. Neverthless their own commercial Conitnous Delivery platform named ‘Go’ has never come close to the popularity of even Bamboo or TeamCity ( not to mention Jenkins ). Two days ago they announced they are making Go open-source, obviously as an attempt to increase market share. I gave GO a test-drive a couple of years ago and it seemed like a good tool back then. Now it’s open-source I’ll definitely want to look at it again. I promise to update on my impressons.
MySQL server fails to start after IP change (Ubuntu machine)
Happened today after we relocated a staging environment machine to DMZ. >sudo service mysql start start: Job failed to start. Solution: Mysql has a bind address recorded in it’s configuration file: /etc/mysql/my.cnf bind-address = <your.machine.ip> Change the value to your new ip and start mysql. Should work like charm.
Use gitlist as git repository browser in Jenkins
Jenkins git-scm plugin provides support for various git repo browser applications, but the wonderful gitlist isn’t one of them… Still I found you can fool Jenkins into using gitlist as your repository browser. (We’ve been using gitlist on one of the ALM environments I manage and gitLab on another one. At some stage I noticed that gitLab‘s commit url is build exactly the same as a commit url in gitlist : <gitlist_url>/<repo-name>.git/commit/<commit_hash> vs. <gitlab_url>/<repo_name(without .git extension)>/commit/<commit_hash>. Actually what jenkins git plugin does when constructing the repository browser link for gitlab is add the ‘commit/<commit_hash>’ on top of gitlab project url. And it works perfectly fine for gitlist too!) To use gitlist as your git repo browser in Jenkins: in git plugin define the following: Repository browser : gitlab URL: <your gitlist url (repo name with .git)> (eg: http://gitserver/gitlist/myRepo.git) Version: 5.4 Now for every commit in the changes list on build…
What’s with the DevOps hype?
Someone asked at one of the forums if the DevOps hype is justified – after all “it’s something we’ve been doing for the last 20 years”… It’s a good question and here’s what I have to say: DevOps isn’t new, but the hype around it is all about the ever-growing amount and speed of change in the development process. We’ve seen large shifts in development methodologies and release strategies over the last 5-10 years – towards shorter cycles, continuous delivery, automated testing, etc. New tools and practices have been established to deal with these new requirements and organizations now clearly see the competitive advantage they provide. So yes, the discipline itself isn’t new, but it’s role in the software manufacturing process is becoming more visible and acknowledged than ever. That’s what the hype is about. //
Automating Eclipse-based BlackBerry project with Ant
This blog is taking a new turn as I’m taking on a new job currently dealing with build automation for mobile development and Macintosh development. The first project I had to deal with was automating the build for a BlackBerry application originally developed in Eclipse with Blackberry plugin. I chose to automate the build with Ant with the help of the wonderful bb-ant-tools package. There are a number of tutorials giving a nice overview of how this is done, so I won’t describe the basics – you can visit the following links for that: http://www.slashdev.ca/2007/05/30/blackberry-development-with-ant-eclipse http://supportforums.blackberry.com/t5/Java-Development/How-to-use-bb-ant-tools-with-Eclipse-without-the-Eclipse-plugin/m-p/123689 By the way, I built the whole thing on a windows 2007 VM and I did install Eclipse Galileo with BlackBerry plugin and BlackBerry Java SDK version 4.6.0.23. I needed this to check how the project is built with Eclipse and to make sure that the changes I insert don’t mess up the Eclipse…
Automation is for the Lazies!
In my overview of build automation benefits I already stated that it leads to “Less job burnout due to routine tasks”. That’s another way to say – automation is good for us lazy folks! 🙂 Well, I don’t know about you, but I’m lazy. Especially when it comes to long repetitive tasks with a lot of small steps that are easy to forget. Like closing a release baseline or cleaning my apartment. Alas, we can’t automate the apartment cleaning (as yet), but we can, and should be lazy about SDLC tasks. So how do you go about this? Well, first of all – get out these annoying checklists with all the steps needed to close that baseline, prepare that installation kit, merge that branch into the main stream, etc. Don’t have the checklists? It’s all in your head?! Well, you’ll have to write it down now – this will be…