My team is using Jenkins to produce build artifacts, including for UGS (which are submitted to Perforce). We have a wide variety of custom jobs with many options designed to help our team iterate faster, so we are not ready to move all of our CI to Horde at the moment. However, we want to take advantage of the UGS Metadata Server with our existing UGS deployment. I see that UGSMS has been absorbed by Horde. Can we bring up Horde simply to provide the Metadata Server functionality and continue using Jenkins to produce and submit our editor binaries?
Hey there,
This is not something we have really tested internally, since we deploy the entire Horde stack. Just looking through the UgsController code, it looks like the /metadata api endpoints don’t strictly depend on other data in Horde (Build, etc). Looking now at EventMonitor.cs (UGS) it appears to only be hitting these endpoints., but there is some version params that you may need to feign in order to exclusively use that.
So in short, it *should* be possible but not a path that we have expressly verified. It may require a bit of extra setup on horde to populate some of the “project” data.
if (_apiVersion == 0) { LatestData initialIds = await RestApi.GetAsync<LatestData>($"{_apiUrl}/api/latest?project={_project}", cancellationToken); _apiVersion = (initialIds.Version == 0) ? 1 : initialIds.Version; _latestIds.LastBuildId = initialIds.LastBuildId; _latestIds.LastCommentId = initialIds.LastCommentId; _latestIds.LastEventId = initialIds.LastEventId; }
You’ll effectively want to make sure you’re coercing apiVersion 2 (which it appears the modern controller behaviour for api/latest just forces).
Kind regards,
Julian
Thanks for the look, this sounds like it might get exciting. Would it likely work better to deploy the legacy Metadata Server?
Hey there,
Possibly - I do think it’s worth a shot trying to setup a quick test server for Horde and giving it a whirl. The APis are pretty simple and at the very least so failing fast should be possible if it were to not work. I’d also recommend that path if you’re already setting up a Horde server for something that very much works in isolation, like Unreal Build Accelerator.
Kind regards,
Julian