Files
UnrealEngine/Engine/Source/Programs/Horde/Docs/Config/Schema/Streams.md
2025-05-18 13:04:45 +08:00

23 KiB

Horde > Configuration > *.stream.json

*.stream.json

Config for a stream

Name Description
id string
Identifier for the stream
path string
Direct include path for the stream config. For backwards compatibility with old config files when including from a ProjectConfig object.
include ConfigInclude[]
Includes for other configuration files
macros ConfigMacro[]
Macros within this stream
name string
Name of the stream
enginePath string
Path to the engine directory within the workspace. Used for launching UAT.
clusterName string
The perforce cluster containing the stream
order integer
Order for this stream
initialAgentType string
Default initial agent type for templates
notificationChannel string
Notification channel for all jobs in this stream
notificationChannelFilter string
Notification channel filter for this template. Can be Success, Failure, or Warnings.
triageChannel string
Channel to post issue triage notifications
jobOptions JobOptions
Default settings for executing jobs
telemetryStoreId string
Telemetry store for Horde data for this stream
autoSdkView string[]
View for the AutoSDK paths to sync. If null, the whole thing will be synced.
defaultPreflightTemplate string
Legacy name for the default preflight template
defaultPreflight DefaultPreflightConfig
Default template for running preflights
commitTags CommitTagConfig[]
List of tags to apply to commits. Allows fast searching and classification of different commit types (eg. code vs content).
tabs TabConfig[]
List of tabs to show for the new stream
environment string -> string
Global environment variables for all agents in this stream
agentTypes string -> AgentConfig
Map of agent name to type
workspaceTypes string -> WorkspaceConfig
Map of workspace name to type
templates TemplateRefConfig[]
List of templates to create
acl AclConfig
Custom permissions for this object
pausedUntil string
Pause stream builds until specified date
pauseComment string
Reason for pausing builds of the stream
replicators ReplicatorConfig[]
Configuration for workers to replicate commit data into Horde Storage.
workflows WorkflowConfig[]
Workflows for dealing with new issues
tokens TokenConfig[]
Tokens to create for each job step
artifactTypes ArtifactTypeConfig[]
Permissions for artifact types

ConfigInclude

Directive to merge config data from another source

Name Description
path string
Path to the config data to be included. May be relative to the including file's location.

ConfigMacro

Declares a config macro

Name Description
name string
Name of the macro property
value string
Value for the macro property

JobOptions

Options for executing a job

Name Description
executor string
Name of the executor to use
useWine boolean
Whether to execute using Wine emulation on Linux
runInSeparateProcess boolean
Executes the job lease in a separate process
workspaceMaterializer string
What workspace materializer to use in WorkspaceExecutor. Will override any value from workspace config.
container JobContainerOptions
Options for executing a job inside a container
expireAfterDays integer
Number of days after which to expire jobs
driver string
Name of the driver to use

JobContainerOptions

Options for executing a job inside a container

Name Description
enabled boolean
Whether to execute job inside a container
imageUrl string
Image URL to container, such as "quay.io/podman/hello"
containerEngineExecutable string
Container engine executable (docker or with full path like /usr/bin/podman)
extraArguments string
Additional arguments to pass to container engine

DefaultPreflightConfig

Specifies defaults for running a preflight

Name Description
templateId string
The template id to query
change ChangeQueryConfig
Query for the change to use

ChangeQueryConfig

Query selecting the base changelist to use

Name Description
name string
Name of this query, for display on the dashboard.
condition string
Condition to evaluate before deciding to use this query. May query tags in a preflight.
templateId string
The template id to query
target string
The target to query
outcomes JobStepOutcome[]
Whether to match a job that produced warnings
commitTag string
Finds the last commit with this tag

JobStepOutcome (Enum)

Outcome for a jobstep

Name Description
Unspecified Outcome is not known
Failure Step failed
Warnings Step completed with warnings
Success Step succeeded

CommitTagConfig

Configuration for custom commit filters

Name Description
name string
Name of the tag
base string
Base tag to copy settings from
filter string[]
List of files to be included in this filter

TabConfig

Information about a page to display in the dashboard for a stream

Name Description
title string
Title of this page
type string
Type of this tab
style TabStyle
Presentation style for this page
showNames boolean
Whether to show job names on this page
showPreflights boolean
Whether to show all user preflights
jobNames string[]
Names of jobs to include on this page. If there is only one name specified, the name column does not need to be displayed.
templates string[]
List of job template names to show on this page.
columns TabColumnConfig[]
Columns to display for different types of aggregates

TabStyle (Enum)

Style for rendering a tab

Name Description
Normal Regular job list
Compact Omit job names, show condensed view

TabColumnConfig

Describes a column to display on the jobs page

Name Description
type TabColumnType
The type of column
heading string
Heading for this column
category string
Category of aggregates to display in this column. If null, includes any aggregate not matched by another column.
parameter string
Parameter to show in this column
relativeWidth integer
Relative width of this column.

TabColumnType (Enum)

Type of a column in a jobs tab

Name Description
Labels Contains labels
Parameter Contains parameters

AgentConfig

Mapping from a BuildGraph agent type to a set of machines on the farm

Name Description
base string
Base agent config to inherit settings from
pool string
Pool of agents to use for this agent type
workspace string
Name of the workspace to sync
tempStorageDir string
Path to the temporary storage dir
environment string -> string
Environment variables to be set when executing the job
tokens TokenConfig[]
Tokens to allocate for this agent type

TokenConfig

Configuration for allocating access tokens for each job

Name Description
url string
URL to request tokens from
clientId string
Client id to use to request a new token
clientSecret string
Client secret to request a new access token
envVar string
Environment variable to set with the access token

WorkspaceConfig

Information about a workspace type

Name Description
base string
cluster string
Name of the Perforce server cluster to use
serverAndPort string
The Perforce server and port (eg. perforce:1666)
userName string
User to log into Perforce with (defaults to buildmachine)
password string
Password to use to log into the workspace
identifier string
Identifier to distinguish this workspace from other workspaces. Defaults to the workspace type name.
stream string
Override for the stream to sync
view string[]
Custom view for the workspace
incremental boolean
Whether to use an incrementally synced workspace
useAutoSdk boolean
Whether to use the AutoSDK
autoSdkView string[]
View for the AutoSDK paths to sync. If null, the whole thing will be synced.
method string
Method to use when syncing/materializing data from Perforce
minScratchSpace integer
Minimum disk space that must be available after syncing this workspace (in megabytes) If not available, the job will be aborted.
conformDiskFreeSpace integer
Threshold for when to trigger an automatic conform of agent. Measured in megabytes free on disk. Set to null or 0 to disable.

TemplateRefConfig

Parameters to create a template within a stream

Name Description
id string
Optional identifier for this ref. If not specified, an id will be generated from the name.
base string
Base template id to copy from
showUgsBadges boolean
Whether to show badges in UGS for these jobs
showUgsAlerts boolean
Whether to show alerts in UGS for these jobs
notificationChannel string
Notification channel for this template. Overrides the stream channel if set.
notificationChannelFilter string
Notification channel filter for this template. Can be a combination of "Success", "Failure" and "Warnings" separated by pipe characters.
triageChannel string
Triage channel for this template. Overrides the stream channel if set.
workflowId string
Workflow to user for this stream
annotations string -> string
Default annotations to apply to nodes in this template
schedule ScheduleConfig
Schedule to execute this template
chainedJobs ChainedJobTemplateConfig[]
List of chained job triggers
acl AclConfig
The ACL for this template
name string
Name for the new template
description string
Description for the template
priority Priority
Default priority for this job
allowPreflights boolean
Whether to allow preflights of this template
updateIssues boolean
Whether issues should be updated for all jobs using this template
promoteIssuesByDefault boolean
Whether issues should be promoted by default for this template, promoted issues will generate user notifications
initialAgentType string
Initial agent type to parse the buildgraph script on
submitNewChange string
Path to a file within the stream to submit to generate a new changelist for jobs
submitDescription string
Description for new changelists
defaultChange ChangeQueryConfig[]
Default change to build at. Each object has a condition parameter which can evaluated by the server to determine which change to use.
arguments string[]
Fixed arguments for the new job
parameters TemplateTextParameterConfig/TemplateListParameterConfig/TemplateBoolParameterConfig[]
Parameters for this template
jobOptions JobOptions
Default settings for jobs

ScheduleConfig

Parameters to create a new schedule

Name Description
enabled boolean
Whether the schedule should be enabled
maxActive integer
Maximum number of builds that can be active at once
maxChanges integer
Maximum number of changes the schedule can fall behind head revision. If greater than zero, builds will be triggered for every submitted changelist until the backlog is this size.
requireSubmittedChange boolean
Whether the build requires a change to be submitted
gate ScheduleGateConfig
Gate allowing the schedule to trigger
commits string[]
Commit tags for this schedule
claims ScheduleClaimConfig[]
Roles to impersonate for this schedule
filter ChangeContentFlags[]
The types of changes to run for
files string[]
Files that should cause the job to trigger
templateParameters string -> string
Parameters for the template
patterns SchedulePatternConfig[]
New patterns for the schedule

ScheduleGateConfig

Gate allowing a schedule to trigger.

Name Description
templateId string
The template containing the dependency
target string
Target to wait for

ScheduleClaimConfig

Claim to grant to leases running a scheduled job

Name Description
type string
The claim type
value string
The claim value

ChangeContentFlags (Enum)

Flags identifying content of a changelist

Name Description
ContainsCode The change contains code
ContainsContent The change contains content

SchedulePatternConfig

Parameters to create a new schedule

Name Description
daysOfWeek DayOfWeek[]
Days of the week to run this schedule on. If null, the schedule will run every day.
minTime string
Time during the day for the first schedule to trigger. Measured in minutes from midnight.
maxTime string
Time during the day for the last schedule to trigger. Measured in minutes from midnight.
interval string
Interval between each schedule triggering

DayOfWeek (Enum)

Name Description
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

ChainedJobTemplateConfig

Trigger for another template

Name Description
trigger string
Name of the target that needs to complete before starting the other template
templateId string
Id of the template to trigger
useDefaultChangeForTemplate boolean
Whether to use the default change for the template rather than the change for the parent job.

AclConfig

Parameters to update an ACL

Name Description
entries AclEntryConfig[]
Entries to replace the existing ACL
profiles AclProfileConfig[]
Defines profiles which allow grouping sets of actions into named collections
inherit boolean
Whether to inherit permissions from the parent ACL
exceptions string[]
List of exceptions to the inherited setting

AclEntryConfig

Individual entry in an ACL

Name Description
claim AclClaimConfig
Name of the user or group
actions string[]
Array of actions to allow
profiles string[]
List of profiles to grant

AclClaimConfig

New claim to create

Name Description
type string
The claim type
value string
The claim value

AclProfileConfig

Configuration for an ACL profile. This defines a preset group of actions which can be given to a user via an ACL entry.

Name Description
id string
Identifier for this profile
actions string[]
Actions to include
excludeActions string[]
Actions to exclude from the inherited actions
extends string[]
Other profiles to extend from

Priority (Enum)

Priority of a job or step

Name Description
Unspecified Not specified
Lowest Lowest priority
BelowNormal Below normal priority
Normal Normal priority
AboveNormal Above normal priority
High High priority
Highest Highest priority

TemplateTextParameterConfig

Free-form text entry parameter

Name Description
type Text
Type discriminator
id string
Identifier for this parameter
label string
Name of the parameter associated with this parameter.
argument string
Argument to pass to the executor
default string
Default value for this argument
scheduleOverride string
Override for the default value for this parameter when running a scheduled build
hint string
Hint text for this parameter
validation string
Regex used to validate this parameter
validationError string
Message displayed if validation fails, informing user of valid values.
toolTip string
Tool-tip text to display

TemplateListParameterConfig

Allows the user to select a value from a constrained list of choices

Name Description
type List
Type discriminator
label string
Label to display next to this parameter. Defaults to the parameter name.
style TemplateListParameterStyle
The type of list parameter
items TemplateListParameterItemConfig[]
List of values to display in the list
toolTip string
Tool tip text to display

TemplateListParameterStyle (Enum)

Style of list parameter

Name Description
List Regular drop-down list. One item is always selected.
MultiList Drop-down list with checkboxes
TagPicker Tag picker from list of options

TemplateListParameterItemConfig

Possible option for a list parameter

Name Description
id string
Identifier for this parameter
group string
Optional group heading to display this entry under, if the picker style supports it.
text string
Name of the parameter associated with this list.
argumentIfEnabled string
Argument to pass with this parameter.
argumentsIfEnabled string[]
Arguments to pass with this parameter.
argumentIfDisabled string
Argument to pass with this parameter.
argumentsIfDisabled string[]
Arguments to pass if this parameter is disabled.
default boolean
Whether this item is selected by default
scheduleOverride boolean
Overridden value for this property in schedule builds

TemplateBoolParameterConfig

Allows the user to toggle an option on or off

Name Description
type Bool
Type discriminator
id string
Identifier for this parameter
label string
Name of the parameter associated with this parameter.
argumentIfEnabled string
Argument to add if this parameter is enabled
argumentsIfEnabled string[]
Argument to add if this parameter is enabled
argumentIfDisabled string
Argument to add if this parameter is enabled
argumentsIfDisabled string[]
Arguments to add if this parameter is disabled
default boolean
Whether this argument is enabled by default
scheduleOverride boolean
Override for this parameter in scheduled builds
toolTip string
Tool tip text to display

ReplicatorConfig

Configuration for a stream replicator

Name Description
id string
Identifier for the replicator within the current stream
enabled boolean
Whether the replicator is enabled
minChange integer
Minimum change number to replicate
maxChange integer
Maximum change number to replicate
includeContent boolean
Whether to include content in the replication, or just metadata
namespaceId string
Namespace to replicate data to

WorkflowConfig

Configuration for an issue workflow

Name Description
id string
Identifier for this workflow
reportTimes string[]
Times of day at which to send a report
summaryTab string
Name of the tab to post summary data to
reportChannel string
Channel to post summary information for these templates.
reportWarnings boolean
Whether to include issues with a warning status in the summary
groupIssuesByTemplate boolean
Whether to group issues by template in the report
triageChannel string
Channel to post threads for triaging new issues
triagePrefix string
Prefix for all triage messages
triageSuffix string
Suffix for all triage messages
triageInstructions string
Instructions posted to triage threads
triageAlias string
User id of a Slack user/alias to ping if there is nobody assigned to an issue by default.
triageErrors boolean
Whether to include issues with an error status in the triage
triageWarnings boolean
Whether to include issues with a warning status in the triage
triageTypeAliases string -> string
Slack user/alias to ping for specific issue types (such as Systemic), if there is nobody assigned to an issue by default.
escalateAlias string
Alias to ping if an issue has not been resolved for a certain amount of time
escalateTimes integer[]
Times after an issue has been opened to escalate to the alias above, in minutes. Continues to notify on the last interval once reaching the end of the list.
maxMentions integer
Maximum number of people to mention on a triage thread
allowMentions boolean
Whether to mention people on this thread. Useful to disable for testing.
inviteRestrictedUsers boolean
Uses the admin.conversations.invite API to invite users to the channel
skipWhenEmpty boolean
Skips sending reports when there are no active issues.
showMergeWarnings boolean
Whether to show warnings about merging changes into the origin stream.
annotations string -> string
Additional node annotations implicit in this workflow
externalIssues WorkflowExternalIssuesConfig
External issue tracking configuration for this workflow
issueHandlers string[]
Additional issue handlers enabled for this workflow

WorkflowExternalIssuesConfig

External issue tracking configuration for a workflow

Name Description
projectKey string
Project key in external issue tracker
defaultComponentId string
Default component id for issues using workflow
defaultIssueTypeId string
Default issue type id for issues using workflow

ArtifactTypeConfig

Configuration for an artifact

Name Description
name string
Legacy 'Name' property
type string
Name of the artifact type
acl AclConfig
Acl for the artifact type
keepCount integer
Number of artifacts to retain
keepDays integer
Number of days to retain artifacts of this type
namespaceId string
Storage namespace to use for this artifact types