Results of a personal dependency build for HFS

After a Dependency Build completes, the build outputs are processed.

Build outputs are determined by the values defined in the Outputs table of the executed translators subject to the associated conditional properties. If a build output is a folder, it is assigned a timestamp based on the most recent timestamp on the folder or files within the folder, allowing changes to be easily detected the next time a build is run.

If a build output lacks a conditional property, or if the conditional property evaluates to true, the build attempts to locate the corresponding build output artifact. If it is present, the build map is updated with the new timestamp for the artifact. If it is not present, the build fails.

To prevent incorrect results, the Dependency Build applies an existence check during the build by using the following methods:
  • If the specified output ends with a slash (/) and is not a directory, a warning is generated in the build log. If the specified output does not end with a slash but is a directory, a warning is also generated.
  • If an output does not exist after the script runs, the build fails. For preview and simulation builds, this presence check cannot be relied on because the output does not necessarily exist.
  • The number of outputs that can be produced for a single buildable resource is limited. The default setting is 100 but this value can be changed in the Advanced Properties section of the Engineering Workflow Management server. The default can also overwritten by setting the build property team.enterprise.build.maxNumOutputs to a numeric value (0 or less means that there is no limit). If the limit is exceeded, the build fails and the error mentions how you can change the limit.
    Note: Only the directory itself is tracked in the build map. When a promotion or packaging is based on this directory output, the contents of the directory are not recorded. If each individual file needs to be recorded, use a wildcard path instead of a directory.
The following table summarizes how the specified output types for the HFS build feature are shown in the build map. It also indicates the value of the timestamp that is associated with each build output type, and the existence check that is run on the build output before the output can be recognized in the build map.
Build output types Examples of build output types Timestamp values Existence check Build map outputs
File outputs/bob.jar lastModified File presence <file>
Directory outputs/ Most recent lastModified on the directory or on its contents Directory presence <directory>
Wildcard outputs/**/*.jar Most recent lastModified on matching files or directories (recursively) Exists if all matches are present List of matching files and directories (up to a default limit of 100)

The Build Report tab displays the changes that are detected in the HFS source projects, lists the results of the custom Ant build file, and provides the outputs as downloadable elements.

If the Ant build script fails or if the maximum return code is exceeded, the execution of translators for the HFS folder stops and a failure is reported. If the build is defined as conditional in the build definition, the build stops.