profiling:invalid arc tag ( iOS unit tests )
We’re running unit tests in the CI flow for our iOS products. One day the CI builds started failing with hundreds of lines of the following: profiling:invalid arc tag (0x0000000c) profiling:invalid arc tag (0x43555b2d) profiling:invalid arc tag (0x0000000c) profiling:invalid arc tag (0x43555b2d) profiling:invalid arc tag (0x0000000c) profiling:invalid arc tag (0x614d534e) profiling:invalid arc tag (0x5f787863) profiling:invalid arc tag (0x00000000) profiling:invalid arc tag (0x00000000) ** TEST FAILED ** But there were no actual failures in any of the tests.Turns out the thing to do is to clean out the derived data folder ( default: ~/Library/Developer/Xcode/DerivedData ) Problem solved 🙂 //
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. //
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…