Latest posts

Automating Feature Branch Builds on iOS and Android

This is a talk given at Codemobile 2017 conference in Chester, UK. It was a 5 minute lightning talk detailing how to automate the building of apps for each and every feature branch created as part of a git-flow workflow.

How To Make Better Coffee Without Breaking the Bank

With about £60 of equipment and a bit of knowhow you can produce far better coffee at home than your cup of instant.

Testing Randomness in Python

I needed to be able to unit test some python code that had a random element to it. Here's how I made it deterministic.

Finding Provisioning Profiles by Name Rather than UUID

Despite my previous thoughts, you can actually use Xcode 8’s find-by-name functionality for manual signing on a CI setup.

Duplicate Keychain Entries in macOS Sierra

I upgraded a build server to macOS Sierra and the keychain unlocking stopped working, here is how I fixed it.

Lockable Resources Jenkins 2.0 pipeline builds

If you want to increase concurrency in your Jenkins pipeline builds, but need to ensure that certain resources are not used concurrently, then you can use lockable resources

Automating Xcode 8’s New Automatic Signing

Picture of Matt speaking at SWMobile meetup

This was a talk I gave at the SWMobile Meetup in Bristol in October 2016. The talk was a lightning talk on automating the new Xcode 8 automated signing system when using it in a CI setup. In our case we use it with Jenkins and Fastlane to automate all ...

Changes to Keychains in macOS Sierra

I upgraded a build server to macOS Sierra and the keychain unlocking stopped working, here is how I fixed it.

Wiping the workspace in Jenkins 2.0 pipeline builds

Instead of the 'wipe workspace' checkbox that used to be in Jenkins, you can now use deleteDir() to clear the workspace before building.

WOTRA Trademark Scam letter

I filed for a trademark for my company name, shortly after it was accepted I received this scam letter in the post, quite a legitimate phishing attempt.