Jump to content
  • Meet the KSP Build Pipeline


    HarvesteR

    After the last upgrade to our build pipes, I realized that this is a side of the project that very few people get to see, and that seemed a shame, since it's taken a considerable amount of work to develop and put together, and I thought it could be an interesting thing to showcase.

    I put together this chart which shows what happens when we generate a new build of the game. Each supported platform is color-coded, and the file formats are represented by different line styles.:

    KJee4qJ.png


    This entire process is automated, driven by two 'Jenkins' continuous integration systems on the two build servers. These allow us to set off builds very easily. We push commits up to the git repository, and the build servers pull the latest state of the game (on any branch) and take it from there.

    The whole process takes about two hours to complete for a full release deployment that is meant to go public. For QA or experimental builds, we skip as many steps as possible, and that time is reduced to about 30 minutes.

    This system has been evolving and being improved continuously whenever we find ourselves having to do repetitive work to get builds out. It's been growing and being upgraded for almost two years now.

    The more keen-eyed readers will probably have noticed that the pipeline is incomplete. There are a few channels that don't cover every platform. For instance, the patcher doesn't yet support win64, and there is no installer for Linux. The pipeline is an evolving thing, and we continue to add things to it whenever we get a chance, or necessity dictates.

    The latest addition was related to the 'big download server'. Previously, the transferring of build files from the main server up to the download server was done manually. This process was automated now, and both 0.24.1 and 0.24.2 releases have been done without us having to do the FTP uploading ourselves.

    Anyhow, this is our build pipeline. Hopefully you'll find it interesting. It's quite a step up from the early days, back in versions 0.8 or thereabouts, when all of this was done manually. :)

    Cheers


    User Feedback

    Recommended Comments

    There are no comments to display.


×
×
  • Create New...