Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

How To Automate Large Numbers Of Delphi Project Builds

How To Automate Large Numbers Of Delphi Project Builds
pexels thisisengineering 3913025 4268999

What is build automation?

Despite the ever-increasing rise of mobile devices, desktop applications are still the backbone of enterprise environments. Typically, these enterprise solutions are made up from multiple discrete modules which are harnessed together to create an application suite. But even applications which are themselves monolithic there may exist multiple versions at any one time either to target specific use cases and operating systems or to provide for trialing versions of new functionality. It’s often quite complicated to keep on top of situations like this. It can really become overwhelming once you start to factor in things like cross-platform multi-device targets and functionality which includes localization into different languages such as a user interface which supports English, French, German, Spanish and so on

Automating the builds of applications can be a huge improvement for developers who need to make various build scenarios and make repeated actions automatic. Automation can also help prevent mistakes which can creep in during repetitive and tedious tasks as our minds start to wonder or we lose focus.

When we think about building web or mobile applications, we can think about techniques such as continuous integration and development pipelines or CI/CD as it’s more commonly referred to. Despite the benefits, developers are still often slow to utilize CI/CD for building and automating the builds and tests on desktop applications. Here are a few suggestions on things to consider incorporating into your development and release processes that might help with the use of IDE Software.

How can I automate Delphi project builds?

There are dozens of different solutions available to automate the process of building Delphi projects, but in this spotlight, we’re going to talk about MiTeC Project Maker and with a bonus solution at the end.

What is MiTeC Project Maker?

MiTeC Project Maker is a tool for automated batch Delphi projects building. With the Project Maker, you can set compiler configurations, define actions processed before and after building, patch version information of built binary, sign that binary with a specified code-signing certificate, apply for 3rd-party software protection, and many more.

How does Project Maker work?

Project Maker offers a clear powerful interface for project building task definition. Each project can contain an unlimited number of tasks. A ‘task’ represents a Delphi project as defined in a dpr or dproj file. Moreover, Project Maker features Profiles, where you can specify common properties for a project. The project can have an infinite number of profiles. By utilizing profiles, you can simply switch between a variety of build configurations. 

How can we use GitHub Actions to supercharge our GitHub workflow?

With GitHub Actions, you can automate, customize, and execute your software development workflows right in your repository. 

GitHub Actions are event-driven, meaning that you can run a series of commands after the specified event occurred. For instance, you can set a trigger to pull request event, and when there is a new change GitHub Actions starts code testing.

Without any CI/CD integration, you can have everything with GitHub Actions. It gives end-to-end CI and CD capabilities. Additionally, it is in your GitHub repository.

How do I use GitHub Actions on Delphi projects?

One of the Delphi MVPs, Darian Miller, has written a number of useful articles and tutorials on Delphi. On his RADAuthenticator blog series, he shared his experience on configuring GitHub Actions with the Delphi project.

Here you can check out the full article: RADAuthenticator Part 4 – Build Automation with Delphi and GitHub by Installing a Self-hosted Runner


Why not download the latest version of Delphi 11 Alexandria and try out some of these techniques for yourself?

Exit mobile version