BuildGraph.Automation
Exception class thrown due to type and syntax errors in condition expressions
Constructor; formats the exception message with the given String.Format() style parameters.
Formatting string, in String.Format syntax
Optional arguments for the string
Context for evaluating BuildGraph conditions
Root directory for resolving paths
Context for evaluating BuildGraph conditions
Root directory for resolving paths
Root directory for resolving paths
Class to evaluate condition expressions in build scripts, following this grammar:
or-expression ::= and-expression
| or-expression "Or" and-expression;
and-expression ::= comparison
| and-expression "And" comparison;
comparison ::= scalar
| scalar "==" scalar
| scalar "!=" scalar
| scalar "<" scalar
| scalar "<=" scalar;
| scalar ">" scalar
| scalar ">=" scalar;
scalar ::= "(" or-expression ")"
| "!" scalar
| "Exists" "(" scalar ")"
| "HasTrailingSlash" "(" scalar ")"
| string
| identifier;
string ::= any sequence of characters terminated by single quotes (') or double quotes ("). Not escaped.
identifier ::= any sequence of letters, digits, or underscore characters.
The type of each subexpression is always a scalar, which are converted to expression-specific types (eg. booleans, integers) as required.
Scalar values are case-insensitive strings. The identifier 'true' and the strings "true" and "True" are all identical scalars.
Sentinel added to the end of a sequence of tokens.
Tokens for the condition
The current token index
Constructor
The condition text
Evaluates the given string as a condition. Throws a ConditionException on a type or syntax error.
Context for evaluating the condition
The result of evaluating the condition
Evaluates the given string as a condition. Throws a ConditionException on a type or syntax error.
Context for evaluating the condition
The result of evaluating the condition
Evaluates an "or-expression" production.
Context for evaluating the expression
A scalar representing the result of evaluating the expression.
Evaluates an "and-expression" production.
Context for evaluating the expression
A scalar representing the result of evaluating the expression.
Evaluates a "comparison" production.
Context for evaluating the expression
The result of evaluating the expression
Evaluates arguments from a token string. Arguments are all comma-separated tokens until a closing ) is encountered
The result of evaluating the expression
Evaluates a "scalar" production.
Context for evaluating the expression
The result of evaluating the expression
Determine if a path exists
Checks whether Haystack contains "Needle".
The string to search
The string to search for
True if the path exists, false otherwise.
Checks whether HaystackItems contains "Needle".
The separated list of items to check
The item to check for
The separator used in Haystack
True if the path exists, false otherwise.
Converts a scalar to a boolean value.
The scalar to convert
The scalar converted to a boolean value.
Converts a scalar to a boolean value.
The scalar to convert
The scalar converted to an integer value.
Splits an input string up into expression tokens.
Text to be converted into tokens
List to receive a list of tokens
Test cases for conditions.
Helper method to evaluate a condition and check it's the expected result
Condition to evaluate
The expected result
Base class for any user defined graphs
Accessor for default logger instance
Callback used to instantiate the graph
The graph context
Base class for binding and executing nodes
ExecuteAsync the method given in the
Implementation of for graphs defined through XML syntax
The script node
List of bound task implementations
Constructor
Parse a value of the given type
The text to parse
Type of the value to parse
Context for evaluating boolean expressions
Value that was parsed
Build all the tasks for this node
Information about the current job
Mapping from tag names to the set of files they include. Should be set to contain the node inputs on entry.
Whether the task succeeded or not. Exiting with an exception will be caught and treated as a failure.
Specifies validation that should be performed on a task parameter.
Allow any valid values for the field type.
A list of tag names separated by semicolons
A file specification, which may contain tags and wildcards.
Information about a parameter to a task
Name of this parameter
The type for values assigned to this field
The ICollection interface for this type
Validation type for this field
Whether this parameter is optional
Constructor
Helper class to serialize a task from an xml element
Name of this task
Parameters for this task
Constructor
Name of the task
Parameters for the task
Enumeration of standard types used in the schema. Avoids hard-coding names.
Schema for build graph definitions. Stores information about the supported tasks, and allows validating an XML document.
Name of the root element
Namespace for the schema
Qualified name for the string type
The inner xml schema
Characters which are not permitted in names.
Pattern which matches any name; alphanumeric characters, with single embedded spaces.
Pattern which matches a list of names, separated by semicolons.
Pattern which matches any tag name; a name with a leading '#' character
Pattern which matches a list of tag names, separated by semicolons;
Pattern which matches any name or tag name; a name with a leading '#' character
Pattern which matches a list of names or tag names, separated by semicolons;
Pattern which matches a qualified name.
Pattern which matches a property name
Pattern which matches balanced parentheses in a string
Pattern which matches balanced parentheses in a string
Constructor
Set of known tasks
Mapping of task name to information about how to construct it
Export the schema to a file
Imports a schema from a file
The XML file to import
A deserialized from the XML file, or null if file doesn't exist
Gets the bare name for the given script type
Script type to find the name of
Name of the schema type that matches the given script type
Gets the qualified name for the given script type
Script type to find the qualified name for
Qualified name of the schema type that matches the given script type
Gets the qualified name of the schema type for the given type of validation
Qualified name for the corresponding schema type
Creates the schema type representing the graph type
Type definition for a graph
Creates the schema type representing the agent type
Type definition for an agent
Creates the schema type representing the contents of agent type
Type definition for an agent
Creates the schema type representing the node type
Type definition for a node
Creates the schema type representing the body of the node type
Type definition for a node
Creates the schema type representing the aggregate type
Type definition for an aggregate
Creates the schema type representing the artifact type
Type definition for an artifact
Creates the schema type representing the report type
Type definition for a report
Creates the schema type representing the badge type
Type definition for a badge
Creates the schema type representing the label type
Type definition for a label
Creates the schema type representing a notifier
Type definition for a notifier
Creates the schema type representing an annotation
Type definition for a notifier
Creates the schema type representing an include type
Type definition for an include directive
Creates the schema type representing a parameter type
Type definition for a parameter
Creates the schema type representing a environment variable type
Type definition for an environment variable property
Creates the schema type representing a property type
Type definition for a property
Creates the schema type representing a regex type
Type definition for a regex
Creates the schema type representing a stringop type
Type definition for a stringop element
Creates the schema type representing the macro type
Type definition for a node
Creates the schema type representing the macro type
Type definition for a node
Creates the schema type representing the macro type
Type definition for a node
Creates the schema type representing a macro expansion
Type definition for expanding a macro
Creates the schema type representing a warning or error type
Type definition for a warning
Creates an element representing a conditional "Do" block, which recursively contains another type
The base type for the do block to contain
New schema element for the block
Creates an element representing a conditional "Switch" block, which recursively contains another type
The base type for the do block to contain
New schema element for the block
Creates an element representing a conditional "ForEach" block, which recursively contains another type
The base type for the foreach block to contain
New schema element for the block
Constructs an XmlSchemaElement and initializes it with the given parameters
Element name
Type enumeration for the attribute
A new XmlSchemaElement object
Constructs an XmlSchemaElement and initializes it with the given parameters
Element name
Qualified name of the type for this element
A new XmlSchemaElement object
Constructs an XmlSchemaAttribute and initialize it with the given parameters
The attribute name
Type enumeration for the attribute
Whether the attribute is required or optional
A new XmlSchemaAttribute object
Constructs an XmlSchemaAttribute and initialize it with the given parameters
The attribute name
Qualified name of the type for this attribute
Whether the attribute is required or optional
The new attribute
Creates a simple type that is the union of two other types
The name of the type
List of valid types for the union
A simple type which will match the given pattern
Creates a simple type that matches a regex
Name of the new type
Regex pattern to match
A simple type which will match the given pattern
Create a schema type for the given user type. Currently only handles enumerations.
Name for the new type
CLR type information to create a schema type for
Create a schema type for the given enum.
Name for the new type
CLR type information to create a schema type for
Location of an element within a file
The file containing this element
The line number containing this element
Constructor
Implementation of XmlDocument which preserves line numbers for its elements
The file being read
Interface to the LineInfo on the active XmlReader
Set to true if the reader encounters an error
Logger for validation errors
Private constructor. Use ScriptDocument.Load to read an XML document.
Overrides XmlDocument.CreateElement() to construct ScriptElements rather than XmlElements
Loads a script document from the given file
The file to load
The schema to validate against
Logger for output messages
If successful, the document that was read
True if the document could be read, false otherwise
Callback for validation errors in the document
Standard argument for ValidationEventHandler
Standard argument for ValidationEventHandler
Implementation of XmlElement which preserves line numbers
Location of the element within the file
Constructor
Stores information about a script function that has been declared
Name of the function
Element where the function was declared
The total number of arguments
Number of arguments that are required
Maps an argument name to its type
Constructor
Name of the function
Element containing the function definition
Map of argument name to index
Number of arguments that are required. Indices 0 to NumRequiredArguments - 1 are required.
Extension methods for writing script error messages
Utility method to log a script error at a particular location
Utility method to log a script warning at a particular location
Overridden version of which contains a list of tasks
List of tasks to execute
Constructor
Reader for build graph definitions. Instanced to contain temporary state; public interface is through ScriptReader.TryRead().
Root directory to resolve relative paths against
List of property name to value lookups. Modifications to properties are scoped to nodes and agents. EnterScope() pushes an empty dictionary onto the end of this list, and LeaveScope() removes one.
ExpandProperties() searches from last to first lookup when trying to resolve a property name, and takes the first it finds.
When declaring a property in a nested scope, we enter its name into a set for each parent scope which prevents redeclaration in an OUTER scope later. Subsequent NESTED scopes can redeclare it.
The former is likely a coding error, since it implies that the scope of the variable was meant to be further out, whereas the latter is common for temporary and loop variables.
Maps from a function name to its definition
Set of scripts that have been previously read via an include element
This is used to prevent duplicate reads of a script if it has been guarded against
The current graph
Arguments for evaluating the graph
The name of the node if only a single node is going to be built, otherwise null.
Schema for the script
Logger for diagnostic messages
The number of errors encountered during processing so far
Private constructor. Use ScriptReader.TryRead() to read a script file.
Root directory to resolve relative paths against
Default properties available to the script
Arguments passed in to the graph on the command line
If a single node will be processed, the name of that node.
Schema for the script
Logger for diagnostic messages
Try to read a script file from the given file.
File to read from
Root directory to resolve files to
Arguments passed in to the graph on the command line
Default properties available to the script
Schema for the script
Logger for output messages
If a single node will be processed, the name of that node.
True if the graph was read, false if there were errors
Read the script from the given file
File to read from
Reads the contents of a graph
The parent element to read from
Push a new property scope onto the stack
Pop a property scope from the stack
Sets a property value in the current scope
Element containing the property assignment. Used for error messages if the property is shadowed in another scope.
Name of the property
Value for the property
If true, this property should be added to the parent scope and not the current scope. Cannot be used if the parent scope already contains a parameter with this name or if there is no parent scope
Tries to get the value of a property
Name of the property
On success, contains the value of the property. Set to null otherwise.
True if the property was found, false otherwise
Read an include directive, and the contents of the target file
Xml element to read the definition from
Combine two paths without validating the result
Find files matching a pattern
Reads the definition of a graph option; a parameter which can be set by the user on the command-line or via an environment variable.
Xml element to read the definition from
Reads a property assignment.
Xml element to read the definition from
Reads a Regex assignment.
Xml element to read the definition from
Reads a StringOp element and applies string method.
Xml element to read the definition from
Reads a property assignment from an environment variable.
Xml element to read the definition from
Reads a macro definition
Xml element to read the definition from
Reads a list of macro arguments from an attribute
The element containing the attributes
Name of the attribute containing the arguments
List of arguments to add to
Reads a macro definition
Xml element to read the definition from
Reads the definition for an agent.
Xml element to read the definition from
Read the contents of an agent definition
Xml element to read the definition from
Reads the definition for an aggregate
Xml element to read the definition from
Reads the definition for an artifact
Xml element to read the definition from
Reads the definition for a report
Xml element to read the definition from
Reads the definition for a badge
Xml element to read the definition from
Reads the definition for a label
Xml element to read the definition from
Reads the definition for a node, and adds it to the given agent
Xml element to read the definition from
Reads the contents of a node element
Xml element to read the definition from
Reads a block element
Xml element to read the definition from
Delegate to read the contents of the element, if the condition evaluates to true
Reads a "Switch" element
Xml element to read the definition from
Delegate to read the contents of the element, if the condition evaluates to true
Reads a "ForEach" element
Xml element to read the definition from
Delegate to read the contents of the element, if the condition evaluates to true
Reads an "Expand" element
Xml element to read the definition from
Delegate to read the contents of the element, if the condition evaluates to true
Reads a task definition from the given element, and add it to the given list
Xml element to read the definition from
Reads the definition for an email notifier
Xml element to read the definition from
Reads a graph annotation
Xml element to read the definition from
Reads a warning from the given element, evaluates the condition on it, and writes it to the log if the condition passes.
Xml element to read the definition from
The diagnostic event type
Reads an object name from its defining element. Outputs an error if the name is missing.
Element to read the name for
Output variable to receive the name of the object
True if the object had a valid name (assigned to the Name variable), false if the name was invalid or missing.
Checks that the given name does not already used to refer to a node, and print an error if it is.
Xml element to read from
Name of the alias
True if the name was registered correctly, false otherwise.
Resolve a list of references to a set of nodes
Element used to locate any errors
Sequence of names to look up
Hashset of all the nodes included by the given names
Resolve a list of references to a set of nodes
Element used to locate any errors
Sequence of names to look up
Set of all the nodes included by the given names
Checks that the given name is valid syntax
The element that contains the name
The name to check
True if the name is valid
Constructs a regex from a regex string and returns it
The element that contains the regex
The pattern to construct
The regex if is valid, otherwise null
Expands any properties and reads an attribute.
Element to read the attribute from
Name of the attribute
Array of names, with all leading and trailing whitespace removed
Expands any properties and reads a list of strings from an attribute, separated by semi-colon characters
Array of names, with all leading and trailing whitespace removed
Parse a map of annotations
Split string with given separator into a list of strings while ignoring any
separators within quotes
An array of strings split by given separator while ignoring
separators within quotes (if present).
For example, if
separator='+' and
value = "Path=\"D:\\Path+A\\To\\Dir\"+Path=\\"D:\\Path+B\\To\\Dir\""
This will return the following list of strings
[
"Path=\"D:\\Path+A\\To\\Dir\"",
"Path=\"D:\\Path+B\\To\\Dir\""
]
While ensuring the strings are not split by the separator chars within the quotes.
Parse a map of annotations
Reads an attribute from the given XML element, expands any properties in it, and parses it as a boolean.
Element to read the attribute from
Name of the attribute
Default value if the attribute is missing
The value of the attribute field
Reads an attribute from the given XML element, expands any properties in it, and parses it as an integer.
Element to read the attribute from
Name of the attribute
Default value for the integer, if the attribute is missing
The value of the attribute field
Reads an attribute from the given XML element, expands any properties in it, and parses it as an enum of the given type.
The enum type to parse the attribute as
Element to read the attribute from
Name of the attribute
Default value for the enum, if the attribute is missing
The value of the attribute field
Outputs an error message to the log and increments the number of errors, referencing the file and line number of the element that caused it.
The script element causing the error
Standard String.Format()-style format string
Optional arguments
Outputs a warning message to the log and increments the number of errors, referencing the file and line number of the element that caused it.
The script element causing the error
Standard String.Format()-style format string
Optional arguments
Evaluates the (optional) conditional expression on a given XML element via the If="..." attribute, and returns true if the element is enabled.
The element to check
True if the element's condition evaluates to true (or doesn't have a conditional expression), false otherwise
Expand all the property references (of the form $(PropertyName)) in a string.
The element containing the string. Used for diagnostic messages.
The input string to expand properties in
The expanded string
Implementation of XmlDocument which preserves line numbers for its elements
Writes a preprocessed build graph to a script file
Graph to output
The file to load
Schema file for validation
Writes this agent group out to a file, filtering nodes by a controlling trigger
Agent to output
The XML writer to output to
Write this node to an XML writer
Node to output
The writer to output the node to
A task invocation
Line number in a source file that this task was declared. Optional; used for log messages.
Name of the task
Arguments for the task
Constructor
Write to an xml file
Implementation of ScriptTaskParameter corresponding to a field in a parameter class
Binding of a ScriptTask to a Script
Type of the task to construct with this info
Type to construct with the parsed parameters
Map from name to parameter
Constructor
Name of the task
Task class to create
Class type of an object to be constructed and passed as an argument to the task class constructor
Private constructor
Environment for graph evaluation
The stream being built
Current changelist
Current code changelist
Whether the graph is being run on a build machine
The current engine version
Constructor
The current branch
Changelist being built
Code changelist being built
Tool to execute build automation scripts for UE projects, which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system).
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
- Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided ('Cook', 'Compile', 'Copy', 'Stage', 'Log', 'PakFile', etc...), and additional tasks may be
added be declaring classes derived from AutomationTool.BuildTask in other UAT modules.
- Nodes: A named sequence of tasks which are executed in order to produce outputs. Nodes may have dependencies on other nodes for their outputs before they can be executed. Declared with the 'Node' element.
- Agents: A machine which can execute a sequence of nodes, if running as part of a build system. Has no effect when building locally. Declared with the 'Agent' element.
- Triggers: Container for agents which should only be executed when explicitly triggered (using the -Trigger=... or -SkipTriggers command line argument). Declared with the 'Trigger' element.
- Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Scripts may set properties with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the
script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name. Properties may be sourced from environment variables or the command line using
the <EnvVar> and <Option> elements respectively.
Any elements can be conditionally defined via the "If" attribute. A full grammar for conditions is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a
full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference
style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=... argument (producing a JSON file listing the nodes
and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=... argument. Outputs from different nodes are transferred between
agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=... argument. Note that the allocation of machines, and coordination between
them, is assumed to be managed by an external system based on the contents of the script generated by -Export=....
A schema for the known set of tasks can be generated by running UAT with the -Schema=... option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete
elements as you type.
Main entry point for the BuildGraph command
Find all the tasks which are available from the loaded assemblies
Mapping from task name to information about how to serialize it
Whether to include just public tasks, or all the tasks in any loaded assemblies
Reads the contents of the given token
Contents of the token, or null if it does not exist
Attempts to write an owner to a token file transactionally
True if the lock was acquired, false otherwise
Checks whether the given assembly is a publically distributed engine assembly.
Assembly location
True if the assembly is distributed publically
Find all the nodes in the graph which are already completed
The graph instance
The temp storage backend which stores the shared state
Builds all the nodes in the graph
The graph instance
Map from node to executor
The temp storage backend which stores the shared state
True if everything built successfully
Helper class to execute a cleanup script on termination
Build a node
The graph to which the node belongs. Used to determine which outputs need to be transferred to temp storage.
The node to build
Map from node to executor
The temp storage backend which stores the shared state
Whether to write a banner before and after this node's log output
True if the node built successfully, false otherwise.
Gets an environment variable, returning null if it's not set or empty.
Gets an environment variable as an integer, returning null if it's not set or empty.
Generate HTML documentation for all the tasks
Map of task name to implementation
Output file
Writes documentation to a UDN file
Map of name to script task
Map of field name to XML documenation element
The output file to write to
Writes documentation to an HTML file
Map of name to script task
Map of field name to XML documenation element
The output file to write to
Converts an XML documentation node to markdown
The node to read
Text in markdown format
Legacy command name for compatibility.
Used to pass information to tasks about the currently running job.
The current node name
The command that is running the current job.
Constructor
The command running the current job
Constructor
The current node being executed
The command running the current job
Update the build version
Builds the Windows editor
Builds the game target
Creates a DDC pack file for the supported platforms
Copy all the build artifacts to the output folder
Attribute to mark parameters to a task, which should be read as XML attributes from the script file.
Whether the parameter can be omitted
Sets additional restrictions on how this field is validated in the schema. Default is to allow any valid field type.
Attribute used to associate an XML element name with a parameter block that can be used to construct tasks
Name of the XML element that can be used to denote this class
Type to be constructed from the deserialized element
Constructor
Name of the XML element used to denote this object
Type to be constructed from this object
Proxy to handle executing multiple tasks simultaneously (such as compile tasks). If a task supports simultaneous execution, it can return a separate
executor an executor instance from GetExecutor() callback. If not, it must implement ExecuteAsync().
Adds another task to this executor
Task to add
True if the task could be added, false otherwise
ExecuteAsync all the tasks added to this executor.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Whether the task succeeded or not. Exiting with an exception will be caught and treated as a failure.
Base class for all custom build tasks
Accessor for the default log interface
Line number in a source file that this task was declared. Optional; used for log messages.
ExecuteAsync this node.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Whether the task succeeded or not. Exiting with an exception will be caught and treated as a failure.
Creates a proxy to execute this node.
New proxy instance if one is available to execute this task, otherwise null.
Output this task out to an XML writer.
Writes this task to an XML writer, using the given parameters object.
Writer for the XML schema
Parameters object that this task is constructed with
Returns a string used for trace messages
Gets the name of this task for tracing
The trace name
Get properties to include in tracing info
The scope to add properties to
Prefix for metadata entries
Get properties to include in tracing info
The scope to add properties to
Prefix for metadata entries
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Adds tag names from a filespec
A filespec, as can be passed to ResolveFilespec
Tag names from this filespec
Enumerates tag names from a list
List of tags separated by semicolons
Tag names from this filespec
Resolves a single name to a file reference, resolving relative paths to the root of the current path.
Name of the file
Fully qualified file reference
Resolves a directory reference from the given string. Assumes the root directory is the root of the current branch.
Name of the directory. May be null or empty.
The resolved directory
Finds or adds a set containing files with the given tag
Map of tag names to the set of files they contain
The tag name to return a set for. A leading '#' character is required.
Set of files
Resolve a list of files, tag names or file specifications separated by semicolons. Supported entries may be:
a) The name of a tag set (eg. #CompiledBinaries)
b) Relative or absolute filenames
c) A simple file pattern (eg. Foo/*.cpp)
d) A full directory wildcard (eg. Engine/...)
Note that wildcards may only match the last fragment in a pattern, so matches like "/*/Foo.txt" and "/.../Bar.txt" are illegal.
The default directory to resolve relative paths to
List of files, tag names, or file specifications to include separated by semicolons.
Mapping of tag name to fileset, as passed to the ExecuteAsync() method
Set of matching files.
Resolve a list of files, tag names or file specifications separated by semicolons as above, but preserves any directory references for further processing.
The default directory to resolve relative paths to
List of files, tag names, or file specifications to include separated by semicolons.
Set of patterns to apply to directory searches. This can greatly speed up enumeration by earlying out of recursive directory searches if large directories are excluded (eg. .../Intermediate/...).
Mapping of tag name to fileset, as passed to the ExecuteAsync() method
Set of matching files.
Resolve a list of files, tag names or file specifications as above, but preserves any directory references for further processing.
The default directory to resolve relative paths to
List of files, tag names, or file specifications to include separated by semicolons.
Set of patterns to apply to directory searches. This can greatly speed up enumeration by earlying out of recursive directory searches if large directories are excluded (eg. .../Intermediate/...).
Mapping of tag name to fileset, as passed to the ExecuteAsync() method
Set of matching files.
Splits a string separated by semicolons into a list, removing empty entries
The input string
Array of the parsed items
Name of the environment variable containing cleanup commands
Name of the environment variable containing lease cleanup commands
Add cleanup commands to run after the step completes
Lines to add to the cleanup script
Whether to add the commands to run on lease termination
Name of the environment variable containing a file to write Horde graph updates to
Updates the graph currently used by Horde
Context for the current job that is being executed
Legacy implementation of which operates synchronously
ExecuteAsync this node.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Whether the task succeeded or not. Exiting with an exception will be caught and treated as a failure.
Parameters for a task that purges data from a symbol store after a given age
The target platform to age symbols for.
The symbol server directory.
Number of days worth of symbols to keep.
The root of the build directory to check for existing buildversion named directories.
A substring to match in directory file names before deleting symbols. This allows the "age store" task
to avoid deleting symbols from other builds in the case where multiple builds share the same symbol server.
Specific use of the filter value is determined by the symbol server structure defined by the platform toolchain.
Task that strips symbols from a set of files. This task is named after the AGESTORE utility that comes with the Microsoft debugger tools SDK, but is actually a separate implementation. The main
difference is that it uses the last modified time rather than last access time to determine which files to delete.
Parameters for this task
Construct a spawn task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Task wrapper methods
Task wrapper methods
Task that strips symbols from a set of files
Platform to clean
Path to symbol store
Number of days to keep
The root of the build directory to check for existing buildversion named directories
A substring to match in directory file names before deleting symbols
Task which runs a UE commandlet
The commandlet name to execute.
The project to run the editor with.
Arguments to be passed to the commandlet.
The editor executable to use. Defaults to the development UnrealEditor executable for the current platform.
The minimum exit code, which is treated as an error.
Runs another UAT command
The execution state
Name of the command to run
Arguments for the command
If non-null, instructs telemetry from the command to be merged into the telemetry for this UAT instance with the given prefix. May be an empty (non-null) string.
Runs another UAT command
Name of the command to run
Arguments for the command
If non-null, instructs telemetry from the command to be merged into the telemetry for this UAT instance with the given prefix. May be an empty (non-null) string.
Compiles a target
The target to compile
The configuration to compile
The platform to compile for
The project to compile with
Additional arguments for UnrealBuildTool
Whether to allow using XGE for compilation
Whether to allow cleaning this target. If unspecified, targets are cleaned if the -Clean argument is passed on the command line
Build products from the compile
Compile a C# project
The C# project files to compile.
The platform to compile.
The configuration to compile.
The target to build.
Properties for the command.
Additional options to pass to the compiler.
Only enumerate build products -- do not actually compile the projects.
Runs a command using dotnet.
Command-line arguments.
Base directory for running the command.
Environment variables to set.
File to read environment variables from.
The minimum exit code, which is treated as an error.
Override path to dotnet executable.
ExecuteAsync a task instance
Updates the current engine version
ExecuteAsync an external program
Executable to spawn.
Arguments for the newly created process.
Working directory for spawning the new task.
Environment variables to set.
File to read environment from.
Write output to the log.
The minimum exit code which is treated as an error.
Strips symbols from a set of files.
The platform toolchain to strip binaries.
The directory to find files in.
Output directory for the stripped files. Defaults to the input path, overwriting the input files.
Parameters for an AWS CLI task
Role to assume
Name of this session
Duration of the token in seconds
Environment variables
File to read environment variables from
Output file for the new environment
Assumes an AWS role.
Construct an AWS CLI task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a AWS ECS deploy task
Task definition file to use
Docker image to set in new task definition (will replace %%DOCKER_PATTERN%% with this value)
App version to set in new task definition (will replace %%VERSION%% with this value)
Cluster ARN representing AWS ECS cluster to operate on
Service name to update and deploy to
Environment variables
File to read environment from
Write output to the log
Creates a new AWS ECS task definition and updates the ECS service to use this new revision of the task def
Parameters for this task
Construct an AWS ECS deploy task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a spawn task
Arguments for the newly created process.
Environment variables
File to read environment from
Write output to the log
Spawns AWS CLI and waits for it to complete.
Construct an AWS CLI task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a CheckMarkdown task
Optional filter to be applied to the list of input files.
Checks that all markdown links between the given files are valid.
Constructor
Parameters for this task
Parameters for a task which runs a UE commandlet
The commandlet name to execute.
The project to run the editor with.
Arguments to be passed to the commandlet.
The editor executable to use. Defaults to the development UnrealEditor executable for the current platform.
The minimum exit code, which is treated as an error.
Spawns the editor to run a commandlet.
Construct a new CommandletTask.
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that calls another UAT command
The command name to execute.
Arguments to be passed to the command.
If non-null, instructs telemetry from the command to be merged into the telemetry for this UAT instance with the given prefix. May be an empty (non-null) string.
Invokes an AutomationTool child process to run the given command.
Parameters for this task
Construct a new CommandTask.
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Gets the name of this trace
Name of the trace
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a compile task
The target to compile.
The configuration to compile.
The platform to compile for.
The project to compile with.
Additional arguments for UnrealBuildTool.
Whether to allow using XGE for compilation.
No longer necessary as UnrealBuildTool is run to compile targets.
Whether to allow UBT to use all available cores, when AllowXGE is disabled.
Whether to allow cleaning this target. If unspecified, targets are cleaned if the -Clean argument is passed on the command line.
Global flag passed to UBT that can be used to generate target files without fully compiling.
Tag to be applied to build products of this task.
Executor for compile tasks, which can compile multiple tasks simultaneously
List of targets to compile. As well as the target specifically added for this task, additional compile tasks may be merged with it.
Mapping of receipt filename to its corresponding tag name
Whether to allow using XGE for this job
Whether to allow using all available cores for this job, when bAllowXGE is false
Should SkipBuild be passed to UBT so that only .target files are generated.
Constructor
Initial task to execute
Adds another task to this executor
Task to add
True if the task could be added, false otherwise
ExecuteAsync all the tasks added to this executor.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Whether the task succeeded or not. Exiting with an exception will be caught and treated as a failure.
Compiles a target with UnrealBuildTool.
Parameters for this task
Resolved path to Project file
Construct a compile task
Parameters for this task
Resolve the path to the project file
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Get properties to include in tracing info
The span to add metadata to
Prefix for all metadata keys
Get properties to include in tracing info
The span to add metadata to
Prefix for all metadata keys
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that runs the cooker
Project file to be cooked.
The cook platform to target (for example, Windows).
List of maps to be cooked, separated by '+' characters.
Additional arguments to be passed to the cooker.
Additional arguments to be passed to the cooker.
Optional path to what editor executable to run for cooking.
Whether to tag the output from the cook. Since cooks produce a lot of files, it can be detrimental to spend time tagging them if we don't need them in a dependent node.
Tag to be applied to build products of this task.
Cook a selection of maps for a certain platform
Parameters for the task
Constructor.
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a copy task
Optional filter to be applied to the list of input files.
The pattern(s) to copy from (for example, Engine/*.txt).
The directory to copy to.
Optional pattern(s) to exclude from the copy for example, Engine/NoCopy*.txt)
Whether or not to overwrite existing files.
Tag to be applied to build products of this task.
Whether or not to throw an error if no files were found to copy
Copies files from one directory to another.
Constructor
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Extension methods
Copy files from one location to another
The files to copy
Whether or not to overwrite existing files.
Parameters for a .
Name of the artifact
The artifact type. Determines the permissions and expiration policy for the artifact.
Description for the artifact. Will be shown through the Horde dashboard.
Base path for the uploaded files. All the tagged files must be under this directory. Defaults to the workspace root directory.
Stream containing the artifact.
Commit for the uploaded artifact.
Files to include in the artifact.
Queryable keys for this artifact, separated by semicolons.
Other metadata for the artifact, separated by semicolons.
Whether to add aliases for symbol files
Whether to reuse blobs from the previous artifact
Uploads an artifact to Horde
Constructor.
Parameters for this task.
ExecuteAsync the task.
Information about the current job.
Set of build products produced by this node.
Mapping from tag names to the set of files they include.
Parameters for a .
Name of the artifact
An optional override of the id of the artifact as presented in Horde, defaults to name if not set
An identifier to set for a group of builds that are compatible
The artifact type. Determines the permissions and expiration policy for the artifact.
Description for the artifact. Will be shown through the Horde dashboard.
The platform the artifact is created for
The uproject this artifact is created for
Override the project name, defaults to the filename of the uproject
The platform the artifact is created for
The platform the artifact is created for
The access token to use
Base path for the uploaded files. All the tagged files must be under this directory. Defaults to the workspace root directory.
Stream containing the artifact.
Commit for the uploaded artifact.
Files to include in the artifact.
Other metadata for the artifact, separated by semicolons. Use key=value for each field.
Force the blobs to be uploaded no matter if they exist or not
The streamid used for your mainline, used to build content as patches on top of this branch if no other baselines exist.
Set to upload more blobs in parallel, defaults to number of cores. Set to -1 to go as wide as possible.
Enable to use multipart endpoints if valuable
Set the explicit http version to use. None to use http handshaking.
Verify the contents after upload, essentially downloads the entire build to make sure all data was uploaded correctly. Takes a bit of time and is generally not needed but can be useful to detect issues in the upload.
Verbose logging output, can be useful to find out more information when an issue has occured.
Increase the number of worker threads used by zen, may cause machine to be less responsive but will generally improve upload times
Enable to create an Unreal Insights trace of the upload process
Uploads an artifact to Cloud DDC
Constructor.
Parameters for this task.
ExecuteAsync the task.
Information about the current job.
Set of build products produced by this node.
Mapping from tag names to the set of files they include.
Media type for compact binary
Media type for compressed buffers
Parameters for a task that compiles a C# project
The C# project file to compile. Using semicolons, more than one project file can be specified.
The configuration to compile.
The platform to compile.
The target to build.
Properties for the command
Additional options to pass to the compiler.
Only enumerate build products -- do not actually compile the projects.
Tag to be applied to build products of this task.
Tag to be applied to any non-private references the projects have.
(for example, those that are external and not copied into the output directory).
Whether to use the system toolchain rather than the bundled UE SDK
Compiles C# project files, and their dependencies.
Constructor.
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Find all the build products created by compiling the given project file
Initial project file to read. All referenced projects will also be read.
Mapping of property name to value
Receives a set of build products on success
Receives a set of non-private references on success
Read a project file, plus all the project files it references.
Project file to read
Mapping of property name to value for the initial project
True if the projects were read correctly, false (and prints an error to the log) if not
Output from compiling a csproj file
Empty instance of CsCompileOutput
Output binaries
Referenced output
Constructor
Merge all outputs from this project
Merges two outputs together
Extension methods for csproj compilation
Parameters for a copy task
List of file specifications separated by semicolons (for example, *.cpp;Engine/.../*.bat), or the name of a tag set
List of directory names
Whether to delete empty directories after deleting the files. Defaults to true.
Whether or not to use verbose logging.
Delete a set of files.
Constructor
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Deletes a directory, if it's empty
The directory to check
True if the directory was deleted, false if not
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a DeployTool task
Identifier for the tool
Settings file to use for the deployment. Should be a JSON file containing server name and access token.
Version number for the new tool
Duration over which to roll out the tool, in minutes.
Whether to create the deployment as paused
Zip file containing files to upload
Directory to upload for the tool
Deploys a tool update through Horde
Options for a new deployment
Construct a Helm task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a Docker-Build task
Base directory for the build
Files to be staged before building the image
Path to the Dockerfile. Uses the root of basedir if not specified.
Path to a .dockerignore. Will be copied to basedir if specified.
Use BuildKit in Docker
Set ulimit in build
Type of progress output (--progress)
Tag for the image
Set the target build stage to build (--target)
Custom output exporter. Requires BuildKit (--output)
Optional arguments
List of additional directories to overlay into the staged input files. Allows credentials to be staged, etc...
Environment variables to set
File to read environment variables from
Spawns Docker and waits for it to complete.
Construct a Docker task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a Docker-Compose task
Path to the docker-compose file
Arguments for the command
Spawns Docker and waits for it to complete.
Parameters for this task
Construct a Docker-Compose task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a Docker-Compose task
Path to the docker-compose file
Arguments for the command
Spawns Docker and waits for it to complete.
Construct a Docker-Compose task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a Docker-Build task
Repository
Source image to push
Name of the target image
Additional environment variables
File to read environment from
Whether to login to AWS ECR
Path to a json file for authentication to the repository for pushing.
Spawns Docker and waits for it to complete.
Construct a Docker task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a Docker task
Docker command line arguments
Environment variables to set
File to read environment variables from
Base directory for running the command
Spawns Docker and waits for it to complete.
Parameters for this task
Construct a Docker task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Resolve path to Docker executable by using the optional env var "UE_DOCKER_EXEC_PATH"
Will default to "docker" if not set. Allows supporting alternative Docker implementations such as Podman.
Path to Docker executable
Parameters for a DotNet task
Docker command line arguments
Base directory for running the command
Environment variables to set
File to read environment variables from
The minimum exit code, which is treated as an error.
Override path to dotnet executable
Spawns Docker and waits for it to complete.
Construct a Docker task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that compiles a C# project
List of file specifications separated by semicolon (default is ...)
The configuration to compile.
The configuration to compile.
The configuration to compile.
The file to write to
Compiles C# project files, and their dependencies.
Parameters for the task
Constructor.
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for
Parameters for a Git-Checkout task
Directory for the repository
The remote to add
The branch to check out on the remote
Configuration file for the repo. This can be used to set up a remote to be fetched and/or provide credentials.
Clones a Git repository into a local path.
Parameters for this task
Construct a Git task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Runs a git command
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a Git task
Git command line arguments
Base directory for running the command
The minimum exit code, which is treated as an error.
Spawns Git and waits for it to complete.
Construct a Git task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a Helm task
Helm command line arguments
Name of the release
The Kubernetes namespace
The kubectl context
The kubectl config file to use
Values to set for running the chart
Values to set for running the chart
Environment variables to set
File to parse environment variables from
Additional arguments
Base directory for running the command
Spawns Helm and waits for it to complete.
Construct a Helm task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a .
Name for the report
Where to display the report
Where to show the report
Text to be displayed
Creates a Horde report file, which will be displayed on the dashboard with any job running this task.
Parameters for this task.
Constructor.
Parameters for this task.
ExecuteAsync the task.
Information about the current job.
Set of build products produced by this node.
Mapping from tag names to the set of files they include.
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a .
File to update with secrets
Text to update with secrets
Pairs of strings and secret names to expand in the text file, in the form SOURCE_TEXT=secret-name;SOURCE_TEXT_2=secret-name-2.
If not specified, secrets embedded inline in the text will be expanded from {{secret-name.value}} strings.
Replaces strings in a text file with secrets obtained from Horde
Constructor.
Parameters for this task.
ExecuteAsync the task.
Information about the current job.
Set of build products produced by this node.
Mapping from tag names to the set of files they include.
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a .
Name of the environment variable to set
Name of the secret to fetch
Replaces strings in a text file with secrets obtained from Horde
Constructor.
Parameters for this task.
ExecuteAsync the task.
Information about the current job.
Set of build products produced by this node.
Mapping from tag names to the set of files they include.
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a Kubectl task
Command line arguments
Base directory for running the command
Spawns Kubectl and waits for it to complete.
Construct a Kubectl task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for the log task
Message to print out.
If specified, causes the given list of files to be printed after the given message.
If specified, causes the contents of the given files to be printed out.
Print a message (and other optional diagnostic information) to the output log.
Parameters for the task
Constructor.
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a ModifyConfig task
Path to the config file
The section name to modify
The property name to set
The property value to set
Tag to be applied to the extracted files
Modifies a config file
Constructor
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a ModifyJsonValue task
json file paths which will be modified
json key path to find in each file
new value to apply
Modifies json files by setting a value specified in the key path
Create a new ModifyJsonValue.
Parameters for this task.
Placeholder comment
Placeholder comment
Placeholder comment
Placeholder comment
Parameters for a move task
Optional filter to be applied to the list of input files.
The pattern(s) to copy from (for example, Engine/*.txt).
The directory to copy to.
Optionally if files should be overwritten, defaults to false.
Tag to be applied to build products of this task.
Whether or not to throw an error if no files were found to copy
Moves files from one directory to another.
Constructor
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that executes MSBuild
The C# project file to compile. Using semicolons, more than one project file can be specified.
The configuration to compile.
The platform to compile.
Additional options to pass to the compiler.
The MSBuild output verbosity.
Executes MsBuild
Parameters for the task
Constructor.
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that notarizes a dmg via the apple notarization process
Path to the dmg to notarize
primary bundle ID
Apple ID Username
The keychain ID
When true the notarization ticket will be stapled
Parameters for the task
Constructor.
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a NuGetLicenseCheck task
Base directory for running the command
Specifies a list of packages to ignore for version checks, separated by semicolons. Optional version number may be specified with 'name@version' syntax.
Directory containing allowed licenses
Path to a csv file to write with list of packages and their licenses
Override path to dotnet executable
Verifies which licenses are in use by nuget dependencies
Construct a NuGetLicenseCheckTask task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a spawn task
Executable to spawn.
Whether to execute on lease termination
Spawns an external executable and waits for it to complete.
Construct a spawn task
Parameters for the task
Parameters for a task that runs the cooker
List of files, wildcards, and tag sets to add to the pak file, separated by ';' characters.
PAK file to output.
Path to a Response File that contains a list of files to add to the pak file -- instead of specifying them individually.
Directories to rebase the files relative to. If specified, the shortest path under a listed directory will be used for each file.
Script that gives the order of files.
Encryption keys for this pak file.
Whether to compress files.
Additional arguments to pass to UnrealPak.
Tag to be applied to build products of this task.
Creates a PAK file from a given set of files.
Constructor.
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Find the shortest relative path of the given file from a set of base directories.
Full path to a file
Possible base directories
The shortest relative path, or null if the file is not under any of them
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters to query for all the targets in a project
Path to the project file to query
Path to the output file to receive information about the targets
Write out all targets, even if a default is specified in the BuildSettings section of the Default*.ini files.
Tag to be applied to build products of this task.
Runs UBT to query all the targets for a particular project
Parameters for this task
Construct a spawn task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for .
Seed for the data generation
The size of each file.
Number of files to write.
Whether to generate different data for each output file.
Output directory
Optional filter to be applied to the list of input files.
Creates files containing random data in the specified output directory. Used for generating test data for the temp storage system.
Constructor
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for the submit task
The description for the submitted changelist.
The files to reconcile
The directories to reconcile, semi colon delimited, relative p4 syntax
The workspace name. If specified, a new workspace will be created using the given stream and root directory to submit the files. If not, the current workspace will be used.
The stream for the workspace -- defaults to the current stream. Ignored unless the Workspace attribute is also specified.
Branch for the workspace (legacy P4 depot path). May not be used in conjunction with Stream.
Root directory for the stream. If not specified, defaults to the current root directory.
Force the submit to happen -- even if a resolve is needed (always accept current version).
Allow verbose P4 output (spew).
Runs a reconcile preview, does not submit.
Creates a new changelist and reconciles a set of files to submit to a Perforce stream.
Parameters for the task
Construct a version task
Parameters for this task
Execute the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a copy task
The file or files to rename.
The current file name, or pattern to match (for example, *.txt). Should not include any path separators.
The new name for the file(s). Should not include any path separators.
Tag to be applied to the renamed files.
Renames a file, or group of files.
Constructor
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a .
Stream containing the artifact
Change number for the artifact
Maximum commit for the artifact
Name of the artifact
The artifact type. Determines the permissions and expiration policy for the artifact.
Keys for the artifact
Output directory for
Append the environment variable UE_HORDE_JOBID to the artifact query
Retrieves an artifact from Horde
Constructor.
Parameters for this task.
Parameters for a .
Stream containing the artifact
Change number for the artifact
Requires that the current synced commit is the same as the artifacts commit
Name of the artifact
The artifact type. Determines the permissions and expiration policy for the artifact.
Keys for the artifact
Output directory for
The platform the artifact is created for
The path to the uproject this artifact is created for
The platform the artifact is created for
The platform the artifact is created for
The access token to use
Set this to use the latest match if multiple artifacts are possible matches
Enable to use multipart endpoints if valuable
Set the explicit http version to use. None to use http handshaking.
Increase the number of worker threads used by zen, may cause machine to be less responsive but will generally improve download times
Enable to create an Unreal Insights trace of the download process
Retrieves an artifact from Cloud DDC
Constructor.
Parameters for this task.
ExecuteAsync the task.
Information about the current job.
Set of build products produced by this node.
Mapping from tag names to the set of files they include.
Parameters for the Tag Receipt task.
Set of receipt files (*.target) to read, including wildcards and tag names, separated by semicolons.
Path to the Engine folder, used to expand $(EngineDir) properties in receipt files. Defaults to the Engine directory for the current workspace.
Task that tags build products and/or runtime dependencies by reading from *.target files.
Constructor
Parameters to select which files to search
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are required by this task
The tag names which are required by this task
Find all the referenced tags from tasks in this task
The tag names which are produced/modified by this task
Extension methods
Sanitize the given receipt files, removing any files that don't exist in the current workspace
Parameters for the version task
The changelist to set in the version files.
The engine compatible changelist to set in the version files.
The branch string.
The build version string.
The URL for a running continuous integration job.
Whether to set the IS_LICENSEE_VERSION flag to true.
Whether to set the ENGINE_IS_PROMOTED_BUILD flag to true.
If set, do not write to the files -- just return the version files that would be updated. Useful for local builds.
Tag to be applied to build products of this task.
Updates the local version files (Engine/Source/Runtime/Launch/Resources/Version.h, Engine/Build/Build.version, and Engine/Source/Programs/Shared/Metadata.cs) with the given version information.
Construct a version task
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that signs a set of files.
List of file specifications separated by semicolons (for example, *.cpp;Engine/.../*.bat), or the name of a tag set.
Optional description for the signed content
Tag to be applied to build products of this task.
If true, the calls to the signing tool will be performed in parallel.
Signs a set of executable files with an installed certificate.
Parameters for this task
Construct a spawn task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a spawn task
Executable to spawn.
Arguments for the newly created process.
Working directory for spawning the new task
Environment variables to set
File to read environment from
Write output to the log
The minimum exit code, which is treated as an error.
Base class for tasks that run an external tool
ExecuteAsync a command
Parses environment from a property and file
Parse environment from a string
Spawns an external executable and waits for it to complete.
Parameters for this task
Construct a spawn task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for the staging task
The project that this target belongs to.
Name of the target to stage.
Platform to stage.
Configuration to be staged.
Architecture to be staged.
Directory that the receipt files should be staged to.
Whether to overwrite existing files.
Tag to be applied to build products of this task.
Stages files listed in a build receipt to an output directory.
Constructor.
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that strips symbols from a set of files
The platform toolchain to strip binaries.
The directory to find files in.
List of file specifications separated by semicolons (for example, Engine/.../*.pdb), or the name of a tag set.
Output directory for the stripped files. Defaults to the input path, overwriting the input files.
Tag to be applied to build products of this task.
Strips debugging information from a set of files.
Construct a spawn task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for the submit task
The description for the submitted changelist.
The files to submit.
The Perforce file type for the submitted files (for example, binary+FS32).
The workspace name. If specified, a new workspace will be created using the given stream and root directory to submit the files. If not, the current workspace will be used.
The stream for the workspace -- defaults to the current stream. Ignored unless the Workspace attribute is also specified.
Branch for the workspace (legacy P4 depot path). May not be used in conjunction with Stream.
Root directory for the stream. If not specified, defaults to the current root directory.
Whether to revert unchanged files before attempting to submit.
Force the submit to happen -- even if a resolve is needed (always accept current version).
Allow verbose P4 output (spew).
Creates a new changelist and submits a set of files to a Perforce stream.
Construct a version task
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that uploads symbols to a symbol server
The platform toolchain required to handle symbol files.
List of output files. PDBs will be extracted from this list.
Output directory for the compressed symbols.
Name of the product for the symbol store records.
Name of the Branch to base all the depot source files from.
Used when IndexSources is true (may be used only on some platforms).
Changelist to which all the depot source files have been synced to.
Used when IndexSources is true (may be used only on some platforms).
BuildVersion associated with these symbols. Used for clean-up in AgeStore by matching this version against a directory name in a build share.
Whether to include the source code index in the uploaded symbols.
When enabled, the task will generate data required by a source server (only some platforms and source control servers are supported).
The source server allows debuggers to automatically fetch the matching source code when debbugging builds or analyzing dumps.
Filter for the depot source files that are to be indexed.
It's a semicolon-separated list of perforce filter e.g. Engine/....cpp;Engine/....h.
It may also be a name of a previously defined tag e.g. "#SourceFiles
Used when IndexSources is true (may be used only on some platforms).
List of file path mappings to be applied during source indexing. It is needed only when using VFS (Virtual File System)
feature when compiling the binary. VFS replaces the real local paths used with standardized paths like Z:\UEVFS\...
Since these virtualized paths don't match paths used by the local workspace, we need to map them manually so that
paths in object files/symbols matched the data we have in source indexing.
It's a semicolon-separated list of path assignments e.g.
"[Root]\Samples\Games\SampleGame=Z:\UEVFS\SampleGame;[Root]=Z:\UEVFS\Root"
[Root] will be replaced with Unreal.RootDirectory.
You need to ensure that the mapping used here matches the conventions used by Unreal Build Tool.
We may improve it in the future but current the VFS mapping used during compilation is not available outside of UBT.
Task that strips symbols from a set of files.
Parameters for this task
Construct a spawn task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for the Tag Receipt task.
Set of receipt files (*.target) to read, including wildcards and tag names, separated by semicolons.
Path to the Engine folder, used to expand $(EngineDir) properties in receipt files. Defaults to the Engine directory for the current workspace.
Path to the project folder, used to expand $(ProjectDir) properties in receipt files. Defaults to the Engine directory for the current workspace -- DEPRECATED.
Whether to tag the Build Products listed in receipts.
Which type of Build Products to tag (see TargetReceipt.cs - UnrealBuildTool.BuildProductType for valid values).
Whether to tag the Runtime Dependencies listed in receipts.
Which type of Runtime Dependencies to tag (see TargetReceipt.cs - UnrealBuildTool.StagedFileType for valid values).
Name of the tag to apply.
Task that tags build products and/or runtime dependencies by reading from *.target files.
Parameters to this task
The type of build products to enumerate. May be null.
The type of staged files to enumerate. May be null,
Constructor
Parameters to select which files to search
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are required by this task
The tag names which are required by this task
Find all the referenced tags from tasks in this task
The tag names which are produced/modified by this task
Extension methods
Task that tags build products and/or runtime dependencies by reading from *.target files.
Parameters for the Tag task.
Set the base directory to resolve relative paths and patterns against. If set, any absolute patterns (for example, /Engine/Build/...) are taken to be relative to this path. If not, they are taken to be truly absolute.
Set of files to work from, including wildcards and tag names, separated by semicolons. If set, resolved relative to BaseDir, otherwise resolved to the branch root directory.
Set of text files to add additional files from. Each file list should have one file per line.
Patterns to filter the list of files by, including tag names or wildcards. If set, may include patterns that apply to the base directory. If not specified, defaults to all files.
Set of patterns to exclude from the matched list. May include tag names of patterns that apply to the base directory.
Name of the tag to apply.
Applies a tag to a given set of files. The list of files is found by enumerating the tags and file specifications given by the 'Files'
parameter. From this list, any files not matched by the 'Filter' parameter are removed, followed by any files matched by the 'Except' parameter.
Constructor
Parameters to select which files to match
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Add rules matching a given set of patterns to a file filter. Patterns are added as absolute paths from the root.
The base directory for relative paths.
List of patterns to add, separated by semicolons.
Mapping of tag name to a set of files.
List of rules, suitable for adding to a FileFilter object
Output this task out to an XML writer.
Find all the tags which are modified by this task
The tag names which are read by this task
Find all the referenced tags from tasks in this task
The tag names which are modified by this task
Parameters for a zip task
Path to the zip file to extract.
Output directory for the extracted files.
Whether or not to use the legacy unzip code.
Whether or not to overwrite files during unzip.
Tag to be applied to the extracted files.
Extract files from a zip archive.
Constructor
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names \to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a wait task
Number of seconds to wait.
Waits a defined number of seconds.
Construct a wait task
Parameters for the task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for task
Json file(s) which will be modified
Json element to set in each file. Syntax for this string is a limited subset of JsonPath notation, and may support object properties and
array indices. Any array indices which are omitted or out of range will add a new element to the array (eg. '$.foo.bar[]' will add
an element to the 'bar' array in the 'foo' object).
New value to set. May be any value JSON value (string, array, object, number, boolean or null).
Modifies json files by setting a value specified in the key path
Create a new ModifyJsonValue.
Parameters for this task.
Placeholder comment
Placeholder comment
Placeholder comment
Placeholder comment
Parameters for a .
Path to the file to write.
Optional, whether or not to append to the file rather than overwrite.
The text to write to the file.
If specified, causes the given list of files to be printed after the given message.
Tag to be applied to build products of this task.
Writes text to a file.
Parameters for this task.
Constructor.
Parameters for this task.
ExecuteAsync the task.
Information about the current job.
Set of build products produced by this node.
Mapping from tag names to the set of files they include.
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Enumeration of different storage options for snapshots.
A reserved non-valid storage type for snapshots.
Snapshot stored in cloud repository such as Unreal Cloud DDC.
Snapshot stored in builds repository such as Unreal Cloud DDC.
Snapshot stored in a zenserver.
Snapshot stored as a file on disk.
Parameters for a task that exports an snapshot from ZenServer
The project from which to export the snapshot
The target platform(s) to export the snapshot for
The metadata to associate with the snapshot
A file to read with information about the snapshot that should be used as a base when exporting this new snapshot
A file to create with information about the snapshot that was exported
The type of destination to export the snapshot to (cloud, ...)
The identifier to use when exporting to a destination
The host name to use when exporting to a cloud destination
The host name to use when writing a snapshot descriptor for a cloud destination
The target platform to use when writing a snapshot descriptor
The http version to use when exporting to a cloud destination
The http version to use when writing a snapshot descriptor for a cloud destination
The namespace to use when exporting to a cloud destination
A custom bucket name to use when exporting to a cloud destination
The host name to use when exporting to a zen destination
The directory to use when exporting to a file destination
The filename to use when exporting to a file destination
Optional. Where to look for the ue.projectstore
The pattern {Platform} can be used for exporting multiple platforms at once.
Optional. Whether to force export of data even if the destination claims to have them.
Optional. Whether to entirely bypass the exporting of data and write a snapshot descriptor as if the data had been exported.
Exports an snapshot from Zen to a specified destination.
Metadata about a snapshot
Name of the snapshot
Storage type used for the snapshot
Target platform for this snapshot
For cloud snapshots, the host they are stored on.
For cloud snapshots, the namespace they are stored in.
For cloud snapshots, the bucket they are stored in.
For cloud snapshots, the key they are stored in.
For file snapshots, the directory it is stored in.
For file snapshots, the filename (not including path) that they are stored in.
A collection of one or more snapshot descriptors
The list of snapshots contained within this collection.
Parameters for the task
Constructor.
Parameters for this task
Gets the assumed path to where Zen should exist
Ensures that ZenServer is running on this current machine. This is needed before running any oplog commands
This passes the sponsor'd process Id to launch zen.
This ensures that zen does not live longer than the lifetime of a particular a process that needs Zen to be running
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that exports an snapshot from ZenServer
The type of destination to import from to (cloud, file...)
comma separated full path to the oplog dir to import into the local zen server
Files="Path1,Path2"
The project from which to import for
The name of the newly created Zen Project we will be importing into
The target platform to import the snapshot for
Root dir for the UE project. Used to derive the Enging folder and the Project folder
The name of the imported oplog
The host URL for the zen server we are importing from
The host port for the zen server we are importing from
The cloud URL to import from
what namespace to use when importing from cloud
what bucket to use when importing from cloud
What key to use when importing from cloud
Imports an oplog from Zen to a specified destination.
Constructor.
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that imports snapshots into ZenServer
The project into which snapshots should be imported
A file to read with information about the snapshots to be imported
A JSON blob with information about the snapshots to be imported
Optional. Where to look for the ue.projectstore file.
The pattern {Platform} can be used for importing multiple platforms at once.
Optional. If true, force import of the oplog (corresponds to --force on the Zen command line).
Optional. If true, import oplogs asynchronously (corresponds to --async on the Zen command line).
Optional. Remote zenserver host to import snapshots into.
Optional. Port on remote host which zenserver is listening on.
Optional. Destination project ID to import snapshots into.
Imports a snapshot from a specified destination to Zen.
Enumeration of different storage options for snapshots.
A reserved non-valid storage type for snapshots.
Snapshot stored in cloud repositories such as Unreal Cloud DDC.
Snapshot stored in a zenserver.
Snapshot stored as a file on disk.
Snapshot stored in Unreal Cloud builds API.
Metadata about a snapshot
Name of the snapshot
Storage type used for the snapshot
Target platform for this snapshot
For cloud or Zen snapshots, the host they are stored on.
For Zen snapshots, the project ID to import from.
For Zen snapshots, the oplog ID to import from.
For cloud snapshots, the namespace they are stored in.
For cloud snapshots, the bucket they are stored in.
For cloud snapshots, the key they are stored in.
For builds snapshots, the builds ID that identifies them.
For file snapshots, the directory it is stored in.
For file snapshots, the filename (not including path) that they are stored in.
A collection of one or more snapshot descriptors
The list of snapshots contained within this collection.
Parameters for the task
Constructor.
Parameters for this task.
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Parameters for a task that launches ZenServer
The project for which to launch ZenServer
Launches ZenServer
Ensures that ZenServer is running on this current machine. This is needed before running any oplog commands
This passes the sponsor'd process Id to launch zen.
This ensures that zen does not live longer than the lifetime of a particular a process that needs Zen to be running
Parameters for the task
Constructor.
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a task that calls zen mirror to write the Zen oplog onto disk
The project from which to export the snapshot
The target platform to mirror the snapshot for
The path on the local disk to which the data will be mirrored
If empty then the path will be set to the %Project%\Saved\Cooked\%Platform% directory.
Exports an snapshot from Zen to a specified destination.
Parameters for the task
Constructor.
Parameters for this task
Gets the assumed path to where Zen should exist
Ensures that ZenServer is running on this current machine. This is needed before running any oplog commands
This passes the sponsor'd process Id to launch zen.
This ensures that zen does not live longer than the lifetime of the a process that needs Zen.
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Parameters for a zip task
The directory to read compressed files from.
List of file specifications separated by semicolons (for example, *.cpp;Engine/.../*.bat), or the name of a tag set. Relative paths are taken from FromDir.
List of files that should have an executable bit set.
The zip file to create.
Tag to be applied to the created zip file.
Compresses files into a zip archive.
Parameters for this task
Constructor
Parameters for this task
ExecuteAsync the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task
Stores the name of a temp storage block
Name of the node
Name of the output from this node
Default constructor, for XML serialization.
Construct a temp storage block
Name of the node
Name of the node's output
Tests whether two temp storage blocks are equal
The object to compare against
True if the blocks are equivalent
Returns a hash code for this block name
Hash code for the block
Returns the name of this block for debugging purposes
Name of this block as a string
Information about a single file in temp storage
The path of the file, relative to the engine root. Stored using forward slashes.
The last modified time of the file, in UTC ticks since the Epoch.
Length of the file
Digest for the file. Not all files are hashed.
Default constructor, for XML serialization.
Constructor
File to be added
Root directory to store paths relative to
Compare stored for this file with the one on disk, and output an error if they differ.
Root directory for this branch
True if the files are identical, false otherwise
Compare stored for this file with the one on disk, and output an error if they differ.
Root directory for this branch
Message describing the difference
True if the files are identical, false otherwise
Whether we should compare timestamps for this file. Some build products are harmlessly overwritten as part of the build process, so we flag those here.
True if we should compare the file's timestamp, false otherwise
Determines whether to generate a digest for the current file
True to generate a digest for this file, rather than relying on timestamps
Determine whether to serialize the digest property
Gets a local file reference for this file, given a root directory to base it from.
The local root directory
Reference to the file
Information about a single file in temp storage
Name of this file, including extension
Length of the file in bytes
Default constructor, for XML serialization
Constructor
FileInfo for the zip file
A manifest storing information about build products for a node's output
List of output files
List of compressed archives containing the given files
Construct a static Xml serializer to avoid throwing an exception searching for the reflection info at runtime
Construct an empty temp storage manifest
Creates a manifest from a flat list of files (in many folders) and a BaseFolder from which they are rooted.
List of full file paths
Root folder for all the files. All files must be relative to this RootDir.
Gets the total size of the files stored in this manifest
The total size of all files
Load a manifest from disk
File to load
Saves a manifest to disk
File to save
Stores the contents of a tagged file set
List of files that are in this tag set, relative to the root directory
List of files that are in this tag set, but not relative to the root directory
List of referenced storage blocks
List of keys for published artifacts
Construct a static Xml serializer to avoid throwing an exception searching for the reflection info at runtime
Construct an empty file list for deserialization
Creates a manifest from a flat list of files (in many folders) and a BaseFolder from which they are rooted.
List of full file paths
Root folder for all the files. All files must be relative to this RootDir.
Referenced storage blocks required for these files
Keys for published artifacts
Load this list of files from disk
File to load
Saves this list of files to disk
File to save
Converts this file list into a set of FileReference objects
The root directory to rebase local files
Set of files
Tracks the state of the current build job using the filesystem, allowing jobs to be restarted after a failure or expanded to include larger targets, and
providing a proxy for different machines executing parts of the build in parallel to transfer build products and share state as part of a build system.
If a shared temp storage directory is provided - typically a mounted path on a network share - all build products potentially needed as inputs by another node
are compressed and copied over, along with metadata for them (see TempStorageFile) and flags for build events that have occurred (see TempStorageEvent).
The local temp storage directory contains the same information, with the exception of the archived build products. Metadata is still kept to detect modified
build products between runs. If data is not present in local temp storage, it's retrieved from shared temp storage and cached in local storage.
Root directory for this branch.
The local temp storage directory (typically somewhere under /Engine/Saved directory).
The shared temp storage directory; typically a network location. May be null.
Whether to allow writes to shared storage
Constructor
Root directory for this branch
The local temp storage directory.
The shared temp storage directory. May be null.
Whether to write to shared storage, or only permit reads from it
Cleans all cached local state. We never remove shared storage.
Cleans local build products for a given node. Does not modify shared storage.
Name of the node
Check whether the given node is complete
Name of the node
True if the node is complete
Mark the given node as complete
Name of the node
Checks the integrity of the give node's local build products.
The node to retrieve build products for
List of tag names from this node.
Filter for files to ignore when performing integrity check. Specified per node.
True if the node is complete and valid, false if not (and typically followed by a call to CleanNode()).
Reads a set of tagged files from disk
Name of the node which produced the tag set
Name of the tag, with a '#' prefix
The set of files
Writes a list of tagged files to disk
Name of the node which produced the tag set
Name of the tag, with a '#' prefix
List of files in this set
List of referenced storage blocks
Keys for published artifacts
The set of files
Saves the given files (that should be rooted at the branch root) to a shared temp storage manifest with the given temp storage node and game.
The node which created the storage block
Name of the block to retrieve. May be null or empty.
Array of build products to be archived
Allow skipping the copying of this manifest to shared storage, because it's not required by any other agent
The created manifest instance (which has already been saved to disk).
Retrieve an output of the given node. Fetches and decompresses the files from shared storage if necessary, or validates the local files.
The node which created the storage block
Name of the block to retrieve. May be null or empty.
Filter for files to ignore
Manifest of the files retrieved
Zips a set of files (that must be rooted at the given RootDir) to a set of zip files in the given OutputDir. The files will be prefixed with the given basename.
Fully qualified list of files to zip (must be rooted at RootDir).
Root Directory where all files will be extracted.
Location to place the set of zip files created.
Location to create zip files before copying them to the OutputDir. If the OutputDir is on a remote file share, staging may be more efficient. Use null to avoid using a staging copy.
The basename of the set of zip files.
Some metrics about the zip process.
This function tries to zip the files in parallel as fast as it can. It makes no guarantees about how many zip files will be created or which files will be in which zip,
but it does try to reasonably balance the file sizes.
Unzips a set of zip files with a given basename in a given folder to a given RootDir.
Files to extract
Root Directory where all files will be extracted.
Some metrics about the unzip process.
The code is expected to be the used as the symmetrical inverse of , but could be used independently, as long as the files in the zip do not overlap.
Gets the directory used to store data for the given node
A local or shared temp storage root directory.
Name of the node
Directory to contain a node's data
Gets the path to the manifest created for a node's output.
A local or shared temp storage root directory.
Name of the node to get the file for
Name of the output block to get the manifest for
Gets the path to the file created to store a tag manifest for a node
A local or shared temp storage root directory.
Name of the node to get the file for
Name of the tag to get the manifest for
Gets the path to a file created to indicate that a node is complete, under the given base directory.
A local or shared temp storage root directory.
Name of the node to get the file for
Checks whether the given path is allowed as a build product that can be produced by more than one node (timestamps may be modified, etc..). Used to suppress
warnings about build products being overwritten.
File name to check
True if the given path may be output by multiple build products
Copy a temp storage .zip file to directory.
Uses Robocopy on Windows, rsync on Linux/macOS and native .NET API when under Wine.
.zip file to copy
Destination dir
Output from the copy operation
Copy a directory using the most suitable option
Source directory
Directory directory
Output from directory copy operation
If source directory wasn't found
Copy a directory using an external tool native to OS
Robocopy Windows and rsync for Linux and macOS.
Source directory
Directory directory
Output from directory copy operation
If source directory wasn't found
Copy a directory using .NET SDK directory and file copy API
Source directory
Directory directory
Output from directory copy operation
If source directory wasn't found
Automated tests for temp storage
Run the automated tests
Enumerate all the files beginning with a letter within a certain range
The directory to read from
First character in the range to files to return
Last character (inclusive) in the range of files to return
Mapping from filename to timestamp
Checks that a manifest matches the files on disk
Root directory for relative paths in the manifest
Manifest to check
Mapping of filename to timestamp as expected in the manifest
Commandlet to clean up all folders under a temp storage root that are older than a given number of days
Entry point for the commandlet
Parameters for a task that generates debugging symbols from a set of files
List of file specifications separated by semicolons (eg. *.cpp;Engine/.../*.bat), or the name of a tag set
Tag to be applied to build products of this task
If set, this will use the rad debugger pdb symbol dumper as well as the rad symbol_path_fixer.
Generates a portable symbol dump file from the specified binaries
Parameters for this task
Construct a spawn task
Parameters for the task
Execute the task.
Information about the current job
Set of build products produced by this node.
Mapping from tag names to the set of files they include
Processes the raw symbol dump
Filters the output from the dump_syms executable, which depending on the platform can be pretty spammy
Array of source strings to filter from output
Output this task out to an XML writer.
Find all the tags which are used as inputs to this task
The tag names which are read by this task
Find all the tags which are modified by this task
The tag names which are modified by this task