ugs-status-publisher integrates TeamCity with the RUGS Unreal Game Sync (UGS) metadata server, allowing you to publish badges associated with changelists.
ugs-status-publisher is tested with RUGS, but should work with the default UGS metadata server (except the connection test which relies on a RUGS-specific endpoint). You can find details on configuring UGS on the official Unreal Engine website.
First, install this plugin on your Jenkins server:
- Download the
.zip
file from the latest release of this plugin - On your Jenkins instance, go to
Administration
- Navigate to
Plugins
under the Server Administration header - Click
+ Upload plugin zip
- Select
Choose File
and point it to theugsStatusPublisher.zip
you downloaded - Click
Upload plugin zip
and then choose to enable the plugin
- Edit a specific build configuration or a template
- Go to
Build Features
- Choose the
Commit status publisher
feature - Pick the
Unreal Game Sync
Publisher - Set
Server URL
to the URL of your metadata server (without the/api
suffix) - (Optional, if you're using RUGS with authentication) Configure the username and password according to the
ci_auth
credential in your RUGS installation'sconfig.json
(https://github.com/jorgenpt/rugs/blob/main/config.json.dist) - Fill in
Project
with the Perforce path to the folder that contains your.uproject
file (e.g. if you've got//project/main/MyProject/MyProject.uproject
, you should enter//project/main/MyProject
) - Set the
Badge Name
that you want to appear inside UGS
Add the following snippet to your BuildType
:
features {
commitStatusPublisher {
param("publisherId", "ugs")
param("ugsServerUrl", "https://my-ugs-server") // The base URL of your metadata server, without the `/api` suffix
param("ugsAuthUser", "robot_bob") // This should be the username from `ci_auth` in config.json, if you're using RUGS
param("secure:ugsAuthPassword", "credentialsJSON:484fda88-e298-4058-9791-bb2f9b69514c") // Configure the credential as per usual under Tokens in the Versioned Settings on your project, if you're using RUGS
param("ugsProject", "//project/main/MyProject")
param("ugsBadgeName", "Editor")
}
}
Licensed under MIT, see LICENSE