Jenkins CI Editor Build Triggers & Perforce Lock Issue with BuildGraph on Unreal Engine 5.5.4

Hello,

We are using Unreal Engine version 5.5.4 and our Jenkins CI pipeline is structured as follows:

  • Editor Build (we submit the binary ZIP to Perforce for UGS)
  • Android Build
  • Windows Build

For the Editor Build, we are using BuildGraph with the default script:

Engine/Build/Graph/Examples/BuildEditorAndTools.xml We have not modified this script. We use the SubmitToPerforceForUGS target to submit the editor binaries.

Our Jenkins pipeline is configured to trigger the Editor Build on every submit, regardless of whether there are engine-related changes or only game (project) changes.

My Questions:

1. Do we need to trigger the Editor Build if there are no engine-related changes?

We currently trigger it on all submits, but I’m wondering if that is necessary or recommended.

2. We are encountering an issue when multiple submits happen at the same time. Our Editor Build job sometimes fails with this error:

//<projectname>-game/development-binaries/++<projectname>-game+development-<projectname>Editor.zip - already locked by perforce-workspace-name No files to submit. File(s) couldn't be locked. Submit failed -- fix problems above then use 'p4 submit -c changlist_number'. Took 0.21s to run p4.exe, ExitCode=1 Change changlist_number failed to submit.We understand the reason:

If two Editor Build jobs run in parallel, one agent locks the

//&lt;projectname&gt;-game/development-binaries/++&lt;projectname&gt;-game+development-&lt;projectname&gt;Editor.zip, and the other agent tries to submit at the same time, causing the failure.

Can you suggest how to avoid this issue? We are triggering builds using a P4 trigger.

3. When distributing the Editor binaries to the Art team, do they need to run Setup.bat to run the Editor?

We upgraded the Editor from Epic GitHub, but we did not submit the dependency files that Setup.bat downloads to Perforce.

What is the recommended approach in this case?

Please let me know if any additional information would help!

Thanks,

Abhishek

Steps to Reproduce

Hello,

  1. Do we need to trigger the Editor Build if there are no engine-related changes?
    1. Rebuilding the editor with every changelist is not useful and will waste resources on the build farm and the P4 server. Most studios\teams will rebuild the editor on a regular schedule (daily, every X hours…) and\or have way to manually trigger a rebuild when submitting code that adds new data types or change the layout of an existing one. Developers should avoid submitting new or updated UObject code and data that depends on it at the same time. This creates a situation where the new data cannot be read until a new editor is ready. The preferred workflow is to submit the code first and wait for the new editor to be ready (automatic or manual) before submitting the associated data. For data only submissions (Content folder), there is no need to rebuild the editor.
  2. We are encountering an issue when multiple submits happen at the same time.
    1. Rebuilding the editor on a predetermined schedule resolves that problem.
    2. Most studios use build automation software such as Horde, Jenkins or TeamCity to manage their build farm. Those systems are rule based and can monitor other systems. In this specific case, the automation software would have a rule that would prevent the editor compilation job from having multiple concurrent instances.
  3. When distributing the Editor binaries to the Art team, do they need to run Setup.bat to run the Editor?
    1. We recommend submitting the Engine codebase to P4 after running setup.bat so synching the workspace is the only operation required to get up to date

Regards,

Martin