2

I'm looking for some ready made solution for automated building of software.

In the past, we had a fully manual system where we had a dedicated machine for each supported platform ( Windows, MacOS and Linux ). When we needed to make an official build of our software, someone ran scripts on those machines which made to builds and aggerates the different build.

We partially switched to an more automated solution, mainly to be able to have nightly builds.

This currently works with all custom developed software ( Simple server on the build computers, etc. ).

However it has quickly become apparent that this will not scale and thus I'm looking for a better / ready made solution.

Requirements

Our system consists of 3 main parts,

  • The individual, platform dependent build computers
  • A central controller server
  • A user interface, to control and view made builds

Thus the requirements are also split in three (+1) parts

Build Computers

  • Being able to remotely start a build given some general and/or platform specific parameters
  • Handle multiple repositories of source code ( Being able to select between them )
  • Run some post processing after the build ( Run tests, Bundling, etc. )
  • Deliver the build and additional data to a central location

Controller

  • Connect the user interface to the build computers
  • Start build given specific triggers ( Manual, Set interval, etc )
  • Store the build results
  • Generate Reports on the build ( Summarize tests, etc. )

User interface

  • Start new builds
  • View old builds
  • Delete Builds ( Manually selected, or by age )

Extra

I'd also like that build on the different platforms can be grouped or tagged together. Such that, for example, we can have 3 builds grouped together as release builds for a specific version.

Also expandability, such as, support for continuous integration, is a bonus but not a hard requirement.

Wrap Up

I'm fine with this system consisting of multiple pieces of software ( some even custom developed ). But I would like to use existing solution as much as possible.

Edit

Some extra details.

  • Our VCS is mercurial
1
  • 1
    Have you considered to attach a CI/CD to your source control system? Common source control systems (e.g. Gitlab + Gitlab runner) allow you to automatically distribute and execute compile jobs to "Build Computers". So you only have to configure it once and afterwards you simply have to commit something to start the build process.
    – Robert
    Commented Jun 28, 2023 at 17:49

1 Answer 1

0

I would recommend [Jenkins[(https://www.jenkins.io/).

Jenkins
Build great things at any scale

The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.

What is Jenkins?
Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.

Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed.

It has 11 platforms listed on the site, I have only used the Windows version.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.