Selecting Agent Types
Universal Foundry provides several types of agents optimized for different jobs. The desired agent type for a job is specified inside of your BuildGraph scripts. While Horde will attempt to select an agent if none or an unknown type is specified, you’ll want to pick the best type for the job.
Selecting Agent Types
Section titled “Selecting Agent Types”- Copy the contents of the Universal Foundry BuildGraphs repo to
./UniversalFoundry/.The UniversalFoundry folder should be a sibling of Engine. - Add and commit this folder to Perforce.
- In your BuildGraph, directly inside of the BuildGraph tag, import the script with an Include tag. It will look something like
<Include Script="./UniversalFoundryAgentTypes.xml" />. - In your build graph script, update your Agent tag to select one of the provided agent types. These types of agents are included by default: PackageAgentType, CookAgentType, TestAgentType and CompileAgentType. The tag will look something like:
<Agent Name="Default Cook Agent" Type="$(CookAgentType)">.
Other Agent Options
Section titled “Other Agent Options”Incremental Workspaces
Section titled “Incremental Workspaces”Agents can work from a previously provisioned workspace - this will dramatically speed up builds at the expense of potential inconsistencies. We recommend using incremental workspaces for most jobs and using non-incremental workspaces for nightly builds.
To select the workspace type, UseIncrementalAgents is provided as an Option that defaults to false. Changing this value will update the [Cook/Package/Test/Compile]AgentType Property that you previously passed into the Agent tag.
In Horde’s “New Job” dialog, you will see a checkbox “Use Incremental Agents” that toggles this value. The Universal Foundry team will configure the appropriate jobs to pass -set:UseIncrementalAgents=true by default.
Host Types
Section titled “Host Types”Three types of hosts are available: Win64, Linux, and Mac. Your jobs will be configured by the Universal Foundry team to use the correct host for the job, but you can always select that type of agent manually specifying the AgentPlatform from the command line. For example, -set:AgentPlatform=Linux.
Overriding Agents
Section titled “Overriding Agents”Finally, you can manually specify the exact agent to use by setting AgentOverride Option. The valid values are a combination of various properties that can be seen in AgentTypes.xml.