The task is used to create all the files necessary to run an Enterprise Extensions (EE) Dependency Build based on files that have been changed.
The task supports Team Build Attributes, Build Extensions Debugging Attributes, Build Extensions General Attributes, as well as, its own task specific attributes. Click on a link for more information on the common attributes.
The following table describes the task specific attributes for the task:
| Task Specific Attributes | ||
| Attribute | Description | Required |
| buildFile |
Specifies the name of the buildable files XML file. This is typically buildableFiles.xml, the default name when using the Dependency Build.
|
Yes |
| buildFolder | Specifies the path to the buildable files XML file. This is typically the value of the fetchDestination attribute. | Yes |
| buildLoadFile |
Specifies the name of the file agent operation list XML file. This is typically FAOperationList.xml, the default name when using the Dependency Build.
|
Yes |
| buildLoadFolder | Specifies the path to the file agent operation list XML file. This is typically the value of the fetchDestination attribute. | Yes |
| buildPrefix |
Specifies the prefix for z/OS data names. If not specified, this attribute will default to the value of the ${team.enterprise.scm.resourcePrefix} property because it is built-in when using the Dependency Build.
|
Yes |
| buildResultUUID |
Specify the UUID of the build result to use to identify the change sets to package. The value of this attribute is typically ${buildResultUUID} because the property is built-in when using the Jazz Build Engine.
|
Yes |
| checkContent |
Specify true to check each identified part for a content change. Only parts with a content change will be included in the resulting buildable files XML file. Specify false to include all parts in the buildable files XML file regardless of a change in content. The default is false.
|
No |
| createFolders |
Specifies whether or not component roots will be loaded as directories in the file system. Valid values are true or false. The default is false.
|
No |
| exclude |
Specify a comma-separated list of component names in the form:
exclude="com.ibm.ims.core.db"
exclude="com.ibm.ims.core.db,com.ibm.ims.core.tm"
exclude="com.ibm.ims.core.db(com.ibm.ims.core.db.base)"
exclude="com.ibm.ims.core.db(com.ibm.ims.core.db.base),
com.ibm.ims.core.tm(com.ibm.ims.core.tm.appc,com.ibm.ims.core.tm.base)"
When exclude is specified, parts from the identified components or component projects will be excluded from the resulting buildable files XML file. If exclude is not specified, all parts will be included in the resulting buildable files XML file. If a component project list is specified, only parts from the specified projects will be excluded; component parts from projects not specified in the list will be included in the resulting buildable files XML file. |
No |
| fetchDestination |
Local directory where the fetched files are to be stored. The default value of this attribute is ${team.enterprise.scm.fetchDestination} because that property is built-in when using the Dependency Build.
|
Yes |
| fetchWorkspace |
Specifies whether or not to fetch the build workspace. Valid values are true or false. The default is true.
|
No |
| include |
Specify a comma-separated list of component names in the form:
include="com.ibm.ims.core.db"
include="com.ibm.ims.core.db,com.ibm.ims.core.tm"
include="com.ibm.ims.core.db(com.ibm.ims.core.db.base)"
include="com.ibm.ims.core.db(com.ibm.ims.core.db.base),
com.ibm.ims.core.tm(com.ibm.ims.core.tm.appc,com.ibm.ims.core.tm.base)"
When include is specified, only parts from the identified components or component projects will be included in the resulting buildable files XML file. If include is not specified, all parts will be included in the resulting buildable files XML file. |
No |
| linkWorkItems |
Specifies whether or not to link the build result to the work items associated with the build. Valid values are true or false. The default is false.
|
No |
| personalBuild |
Specify true to treat this build as a personal build. Specify false to treat this build as a team build. The default is the value of the Ant property personalBuild. This attribute is used to override the default personalBuild value.
|
No |
| processAreaName | Specify the name of the process area that contains the Enterprise Extensions system definitions. | Yes |
| reportCondensed |
This option controls the format of build report. Valid values are: true and false. If true, a streamlined version of the build report will be generated. If false, the full build report, including all file item data, will be generated. The default is false.
|
No |
| reportFile | Specify the name of the resulting report file. | No |
| reportFolder | Specify the full path on the build machine where the report file is to be written. If the folder is not found, it will be created. A relative path from the build’s base directory may be specified. When reportFile is set, this attribute is required. | No1 |
| snapshotAfter | Specify the name of the "after" snapshot. This snapshot must be associated with the specified streamName. For more information on the methods for identifying the change sets to use for the build and which attributes are affected, refer to the Identifying Change Sets section. | No4 |
| snapshotBefore | Specify the name of the "before" snapshot. This snapshot must be associated with the specified streamName. For more information on the methods for identifying the change sets to use for the build and which attributes are affected, refer to the Identifying Change Sets section. | No4 |
| snapshotUUID | Specify the UUID of the target snapshot. This snapshot must be associated with the specified streamName. For more information on the methods for identifying the change sets to use for the build and which attributes are affected, refer to the Identifying Change Sets section. | No4 |
| snapshotUUIDAfter | Specify the UUID of the "after" snapshot. This snapshot must be associated with the specified streamName. For more information on the methods for identifying the change sets to use for the build and which attributes are affected, refer to the Identifying Change Sets section. | No4 |
| snapshotUUIDBefore | Specify the UUID of the "before" snapshot. This snapshot must be associated with the specified streamName. For more information on the methods for identifying the change sets to use for the build and which attributes are affected, refer to the Identifying Change Sets section. | No4 |
| streamName | Specify the name of the stream which contains the source components. The build workspace should flow to this stream. For more information on the methods for identifying the change sets to use for the build and which attributes are affected, refer to the Identifying Change Sets section. | No4 |
| workItemProperty | Name of the Ant property in which to return the comma-separated work item IDs associated with the build. | No |
| workItemReportFile | Specify the name of the resulting work item report file. | No |
| workItemReportFolder | Specify the full path on the build machine where the report file is to be written. If the folder is not found, it will be created. A relative path from the build’s base directory may be specified. When the workItemReportFile attribute is set, this attribute is required. | No2 |
| workItemReportHtmlFile | Specify the name of the resulting work item HTML report file. | No |
| workItemReportHtmlFolder | Specify the full path on the build machine where the report file is to be written. If the folder is not found, it will be created. A relative path from the build’s base directory may be specified. When the workItemReportHtmlFile attribute is set, this attribute is required. | No3 |
| workItemReportHtmlTitle | Specify the title for the resulting work item HTML report file. When the workItemReportHtmlFile attribute is set, this attribute is required. | No3 |
| workspaceUUID |
Specify the UUID of the workspace which contains the components to be packaged. The value of this attribute is typically ${team.scm.workspaceUUID} because the property is built-in when using the Jazz Build Engine.
|
Yes |
There are four ways to identify the change sets to be packages for a incremental build:
true for the personalBuild attribute) and specify a stream name.The following matrix describes which attributes are required and which attributes are not allowed (x) for each of these methods:
| buildResultUUID | snapshotAfter | snapshotBefore | snapshotUUID | snapshotUUIDAfter | snapshotUUIDBefore | streamName | |
| snapshot names | x | Required | Required | x | x | x | Required |
| snapshot UUIDs | x | x | x | x | Required | Required | Required |
| team build | Required | x | x | Required | x | x | x |
| personal build | x | x | x | x | x | x | Required |
Create build files for an incremental build:
<!-- - - - - - - - - - - - - - - - - - - *
* EndaparPreBuild main *
*- - - - - - - - - - - - - - - - - - - -->
<target name="main" description="${lblMainParent}" unless="full.simulation">
<BuildActivityStartChild label="${lblMainParent}" parent="${team.enterprise.build.ant.buildActivityId}"/>
<BuildActivity label="${lblMainParent}"/>
<!-- Create HTML file name -->
<property name="htmlReportFileName" value="${ims.build.ant.aparName}.Endapar.Work items included in build.html"/>
<!-- Create buildable files -->
<ac:if><isfalse value="${team.enterprise.build.ant.simulationMode}"/>
<ac:then>
<ac:if><istrue value="${personalBuild}"/>
<ac:then>
<BuildActivity label="${lblMainParent}: Workspace changeset build files"/>
<xt:createBuildFilesForChangeSets
repositoryAddress="${repositoryAddress}"
userId="${userId}"
passwordFile="${passwordFile}"
buildFile="buildableFiles.xml"
buildFolder="${dir.work}"
buildLoadFile="FAOperationList.xml"
buildLoadFolder="${dir.work}"
buildResultUUID="${buildResultUUID}"
checkContent="${checkContent}"
linkWorkItems="true"
processAreaName="${buildProjectArea}"
reportCondensed="true"
reportFile="buildableReport.txt"
reportFolder="${dir.work}"
streamName="${ims.build.ant.streamName}"
workItemReportFile="workitemReport.txt"
workItemReportFolder="${dir.work}"
workItemReportHtmlFile="${htmlReportFileName}"
workItemReportHtmlFolder="${dir.work}"
workspaceUUID="${team.enterprise.scm.workspaceUUID}"
/>
</ac:then>
<ac:elseif><isset property="ims.build.ant.workItemId"/>
<ac:then>
<BuildActivity label="${lblMainParent}: Workitem changeset build files"/>
<xt:createbuildfilesforworkitems
repositoryAddress="${repositoryAddress}"
userId="${userId}"
passwordFile="${passwordFile}"
buildFile="buildableFiles.xml"
buildFolder="${dir.work}"
buildLoadFile="FAOperationList.xml"
buildLoadFolder="${dir.work}"
buildResultUUID="${buildResultUUID}"
checkContent="${checkContent}"
linkWorkItems="true"
processAreaName="${buildProjectArea}"
reportCondensed="true"
reportFile="buildableReport.txt"
reportFolder="${dir.work}"
streamName="${ims.build.ant.streamName}"
workItemId="${ims.build.ant.workItemId}"
workItemReportFile="workitemReport.txt"
workItemReportFolder="${dir.work}"
workItemReportHtmlFile="${htmlReportFileName}"
workItemReportHtmlFolder="${dir.work}"
workspaceUUID="${team.enterprise.scm.workspaceUUID}"
/>
</ac:then>
</ac:elseif>
<ac:elseif><isset property="ims.build.ant.snapshotBefore"/>
<ac:then>
<BuildActivity label="${lblMainParent}: Before + after snapshots files"/>
<xt:createBuildFilesForChangeSets
repositoryAddress="${repositoryAddress}"
userId="${userId}"
passwordFile="${passwordFile}"
buildFile="buildableFiles.xml"
buildFolder="${dir.work}"
buildLoadFile="FAOperationList.xml"
buildLoadFolder="${dir.work}"
buildResultUUID="${buildResultUUID}"
checkContent="${checkContent}"
linkWorkItems="true"
processAreaName="${buildProjectArea}"
reportCondensed="true"
reportFile="buildableReport.txt"
reportFolder="${dir.work}"
snapshotAfter="${snapshotAfter}"
snapshotBefore="${snapshotBefore}"
streamName="${ims.build.ant.streamName}"
workItemReportFile="workitemReport.txt"
workItemReportFolder="${dir.work}"
workItemReportHtmlFile="${htmlReportFileName}"
workItemReportHtmlFolder="${dir.work}"
workspaceUUID="${team.enterprise.scm.workspaceUUID}"
/>
</ac:then>
</ac:elseif>
<ac:else>
<BuildActivity label="${lblMainParent}: Snapshot changeset build files"/>
<xt:createBuildFilesForChangeSets
repositoryAddress="${repositoryAddress}"
userId="${userId}"
passwordFile="${passwordFile}"
buildFile="buildableFiles.xml"
buildFolder="${dir.work}"
buildLoadFile="FAOperationList.xml"
buildLoadFolder="${dir.work}"
buildResultUUID="${buildResultUUID}"
checkContent="${checkContent}"
linkWorkItems="true"
processAreaName="${buildProjectArea}"
reportCondensed="true"
reportFile="buildableReport.txt"
reportFolder="${dir.work}"
snapshotUUID="${ims.build.ant.snapshotUUID}"
streamName="${ims.build.ant.streamName}"
workItemReportFile="workitemReport.txt"
workItemReportFolder="${dir.work}"
workItemReportHtmlFile="${htmlReportFileName}"
workItemReportHtmlFolder="${dir.work}"
workspaceUUID="${team.enterprise.scm.workspaceUUID}"
/>
</ac:else>
</ac:if>
<!-- Publish buildable files -->
<ac:if><istrue value="${ims.build.ant.publishFiles}"/>
<ac:then>
<ac:forget>
<BuildActivity label="${lblMainParent}: Publish build files"/>
<FileSend file="${dir.work}/buildableFiles.xml" lbl="Buildable file list"/>
<FileSend file="${dir.work}/FAOperationList.xml" lbl="File Agent operations list"/>
</ac:forget>
</ac:then>
</ac:if>
<!-- Publish buildable report -->
<ac:forget>
<BuildActivity label="${lblMainParent}: Publish build report"/>
<parallel>
<sequential>
<FileSend file="${dir.work}/buildableReport.txt" lbl="Buildable file report"/>
</sequential>
<sequential>
<FileSend file="${dir.work}/workitemReport.txt" lbl="Build work item report"/>
</sequential>
<sequential>
<FileSendUtf8 file="${dir.work}/${htmlReportFileName}" lbl="Build work item web page"/>
</sequential>
<sequential>
<FtpBuildReport file="${dir.work}/${htmlReportFileName}"/>
</sequential>
</parallel>
</ac:forget>
</ac:then>
</ac:if>
<ac:if><istrue value="${ims.build.ant.failAfter.buildableFiles}"/>
<ac:then>
<BuildActivity label="${lblMainParent}: Fail after requested"/>
<sleep seconds="10"/>
<fail message="Fail after has been requested for: buildableFiles"/>
</ac:then>
</ac:if>
</target>