CI/CD Pipeline

What type of CI/CD pipelines have you guys developed?

I’ve setup Jenkins with a multi-branch build. This means that when we push on any branch a Linting process occurs that is reported about within our discord.

If a push is made within the “test” branch after Linting the games in our repo are built and bundled (thanks Bob) and pushed to our test devices.

If a push is made within our “prod” branch the repo is pushed instead to our production devices.

We do not yet have a set of automated tests running for each game, but that’s something I’m aspiring to in the future.

What do you guys use to get your changes to testing and production?

1 Like

Sounds like you have a pretty nice setup!

For those working with GitHub Actions there’s an action by @dapetcu21 to download Bob:

2 Likes

We use GitLab for our private projects, and therefore GitLab Pipelines for CI. It’s free if you install GitLab Runner on your computer. In our case, it’s our office server with old-but-still-strong 18c/36t Xeon. Since it’s a non-shared non-virtualized PC (if we compare it to any cloud CI) it produces builds quite fast.

As we make web-only games at this moment, the CI script is simple and it:

  • downloads bob.jar
  • applies some settings depending on CI job’s “target” platform
  • minifies JS/CSS
  • makes .ZIP bundle
  • uploads files to the external CDN to showcase a game to a publisher

etc.

In the end, the results of CI are uploaded to the GitLab servers as “artefacts” and ready to be downloaded or previewed. Also, GitLab has some CI/CD dashboards in Premium subscriptions, but we made a simplified version for our small team that looks like that:

6 Likes