Continuous Integration Servers are often underspecified when it comes to hardware. In the early days of Automated Builds, the build server was quite often that old pc in the corner of the office, or an old server in the data center that no one else wanted. Developers weren't doing many builds per day, so it worked, it was probably slow but that didn't seem to matter much.
Fast forward 20 years, and the CI server is now a critical service. The volume and frequency of builds has increased dramatically, and a slow CI server can be a real problem in an environment where we want fast feedback on that code we just committed (even though it "worked on my machine"). Continuous Deployment only adds to the workload of the CI server.
In this post I'm going to cover off some ideas to hopefully improve the performance of your CI server.
In this post I'm going to look at Windows Manifest Files, what they do, why we need them and how to use them in Delphi and FinalBuilder. We often get asked questions about uac prompts, high dpi settings, windows themes etc when compiling Delphi & C++Builder projects in FinalBuilder. In this post we'll dissect windows manifest files, and look at how the project settings in Rad Studio interact with the manifest file, and why you should use a custom manifest file.
Over the last year or so, we have seen more and more "bug reports" about compiling Delphi projects with FinalBuilder, in particular, reporting issues with version info when using Delphi 10.1 (Berlin) and Delphi 10.2 (Tokyo).
The Delphi/Object Pascal language really hasn't changed all that much in the last 20 years. This post describes some ideas to bring it into the current century.
Today we released updates to FinalBuilder and Continua CI which add Visual Studio 2017 RC support.
The updates to Continua CI and FinalBuilder released today provide somewhat better integration between the two products.
The use of SHA1 is digital certificates (codesigning, SSL etc) is being phased out in 2016, it's time to update your code signing certificate.
A while back I published the VSoft.CommandLineParser library on github, which makes it simple to handle command line options in delphi applications. I have updated it to support commands, where each command has it's own set of options.
Pretty much every native windows application these days includes an xml manifest file. This post shows how to modifiy those files in FinalBuilder
Generate code coverage reports for your Delphi projects using Continua CI.