Jenkins Plugin
min

Jenkins Plugin

Jenkins CI/CD Pipeline for Game Builds

What this page covers:

This guide explains how to use Jenkins to build, distribute, and deploy game builds using a CI/CD pipeline.

It covers:

  • Automating game builds from Jenkins
  • Distributing builds to teams and QA
  • Publishing builds to platforms like Steam
Jenkins is commonly used in game DevOps pipelines, but requires additional tooling to handle build distribution and deployment.

System Requirements

Any agent running a job from the Solsta plugin for Jenkins will need the following: 

  • .NET 8.0
  • Linux: GLIBC ≥ 2.35

Plugin Installation and Update

  1. Go to Manage Jenkins → Plugins → Advanced Settings→ Deploy Plugin
  2. Click on Choose file to upload the Solsta plugin .hpi file, then click Deploy
  3. Restart Jenkins (required).
  4. Verify installation: Go to Manage Jenkins Plugins → Installed Plugins (search “Solsta”).
Solsta Jenkins Plugin - Installed

When updating the plugin:

  1. Uninstall the old plugin - Jenkins recommends a restart after this step
  2. Upload the latest .hpi
  3. Restart Jenkins

Existing build step configurations stay intact when updating to a newer plugin version.

Authentication

Each Solsta build step requires a Client ID and Client Secret. Contact your company’s Solsta admin or Solsta support if needed.

Available Build Steps

Solsta CRUD (ssn_create)

Create, read, update, or delete Solsta objects:

  • Product, Environment, Repository, or Release
  • Modes: No Changes / Create / Edit / Delete
Deleting objects removes them from the Solsta database only; use Cleanup to remove files from storage.

Solsta Deploy (ssn_deploy)

Deploy files to a target Product → Environment → Repository.

Core Fields

  • Product / Environment / Repository: specify where this deployment is going to
  • Create checkbox: automatically creates the objects if they do not exist
  • Working Directory: path to source files (files being deployed)
  • Release Version: friendly version that will appear in Solsta UI. Supports variables such as ${BUILD_ID}
  • Release Notes URL (optional): Link to a release notes URL that will appear in Solsta UI

Advanced

  • Sync attributes & timestamps
  • Verbose logging
  • Hidden, Executable, Include, Exclude file lists (supports * and !)

Note: Click on any of the tool tips for each field for additional information.

Solsta Promote (ssn_promote)

Promote the latest or a selected release from a source to a target environment/repository. Automatically copies files if bucket locations differ.

Examples: 

  • Promote latest release from dev to qa
  • Promote a previous release in playtest environment (after a bad build)
  • Promote specified release v1.1 from qa to playtest environment

Solsta Configure Launch Files (ssn_launchfiles)

Manage launch entries for an environment (as seen in Solsta Desktop). Each entry includes:

  • Entry Name: Button Name as displayed on Solsta Desktop UI
  • File Path (supports macros such as {installDirectory})
  • Arguments

Note: Jenkins doesn’t auto-sync with UI changes from Solsta Desktop; always use complete set of entries for environment.

Solsta Cleanup (ssn_cleanup)

Removes unused release data from storage buckets.

  • Requires at least one release in the Product
  • Skips files less than 24 hours old
  • Trial Run option lists files without deleting them

Tips

  • Run Cleanup periodically to manage storage
  • Avoid deleting multiple objects in one pipeline
  • Always test new pipelines with Verbose Logging first

Pipeline Use

Use Jenkins’ Snippet Generator to create Groovy snippets for Solsta steps (ssn_*).

Jenkins Snippet Generator - Solsta Deploy

Example – Deploy

ssn_deploy(
  consClientId: 'id',
  consSecret: 'secret',
  consProduct: 'MyProduct',
  consEnv: 'dev',
  consRepo: 'client',
  version: env.BUILD_ID,
  workingDir: env.WORKSPACE
)

How Jenkins fits into a game DevOps pipeline

Jenkins handles build automation, but does not natively solve:

  • Build distribution to teams
  • Access control for external partners
  • Publishing builds across multiple platforms
In modern game DevOps pipelines, Jenkins is used for build creation, while systems like Solsta handle build distribution and deployment.

Field Reference

Product, Environment, Repository
Identify or create Solsta objects used in the build steps.

Update Path Count
Specifies the number of delta update paths to create automatically. Leave 0 unless configured with Solsta support.

Location
Defines the storage bucket or origin for the environment. Visible only if multiple deployment buckets exist.

Release Version
Friendly release identifier such as “1.0.12.” Supports Jenkins variables like ${BUILD_ID} or ${BUILD_TAG}.

Release Notes URL
Optional link to documentation or changelog for the deployed release.

Working Directory
Folder path within the Jenkins workspace that contains the files to deploy.

Sync Attributes / Sync Timestamps
Preserve file permissions and modification times during deployment.

Hidden Files / Executable Files
Specify file patterns to mark as hidden or executable. Wildcards (*) and pattern lists are supported.

Included Files / Excluded Files
Define what to include or skip in deployment. Use * for wildcards and ! for negation. Exclusions override inclusions.

Optional Repository
Marks a repository as optional within an environment.

Trial Run (Cleanup)
Lists files that would be deleted during Cleanup without actually deleting them.

Verbose Logging
Outputs detailed log messages for troubleshooting. Turn off for normal builds.

Build Pipeline

A Jenkins game build pipeline is a CI/CD workflow that compiles game code and assets, packages builds, and distributes them to internal teams, QA, and external platforms like Steam.

FAQ

Can Jenkins upload builds to Steam?

Yes, but typically through custom scripts. Many teams use additional tools to automate and stabilize this process.

Is Jenkins enough for game DevOps?

Jenkins handles CI well, but most studios require additional systems for build distribution, access control, and multi-platform deployment.