This plugin allows for the integration of both Artifactory and Rational Team Concert in accordance with a use case brought forward by Liberty Mutual.
This plugin is capable of building an xldeploy dar file (deployment archive file) from components pulled from several sources and uploading that dar file to a specified xl-deploy instances. It does this by combining several steps in a xl-release phase while making use of an external "build" server.
- fix username password keyfile issue
- make the create darpackage emmit it's settings so that the rest of the jobs wil automaticly pick up the correct settings
- document and clean code
Liberty Mutual (the client) has the need to build a dar file out of ear files which are stored in artifactory and so called config (xl-deploy ci's which do not contain any actual tangeble artifacts) Te rationale behind this is that they want to store the config in a version control system exported from a xl-deploy instance while the ear files are build and delivered by jenkins to Artifactory.
this is a configuration.HttpConnection derivative that holds the connection parameters to the xl-deploy instance that will receive the finished dar package
This configuration item represents a remote system used as "build" server.
parameters:
- serverName: name of the server
- host: host address of the server
- username: user wich will login and execute the build process
- password: coresponding password to the user
- workingDirectory: base directory to use for file operations
This configuration item represents a remote system with installed rtc client software (lscm) parameters:
- Name: name of the server
- host: host address
- username: username of the login user
- password: password of the login user
- File System Workspace Base: temporary filesystem on the machine to use for file operations
- Path to the RTC Client software: path to the lscm executable.
Represents a RTC Repository stream/component thingamajig parameters:
-
Name: name of the rtc repo (internal use)
-
host: address of the rtc server
-
username: rtc user
-
password: rtc password
-
RTC repository url: url to the rtc repo
-
RTC workspace name: name of the workspace in RTC
-
Stream: name of the stream in RTC
-
RTC Component name: name of the component in RTC
-
RTC workitem nr: Workitem to use with rtc
<type type="lm.DarBuildServer" extends="xlrelease.Configuration">
<property name="serverName" label="Name" kind="string" description="Unique name describing this RTC Client Server" />
<property name="host" label="host" kind="string" />
<property name="username" label="Username" kind="string" />
<property name="password" label="Password" kind="string" password="true" />
<property name="workingDirectory" label="Filesystem Workspace" kind="string" />
<property name="pathToZipExecutable" label="path to the Zip binary" kind="string" default="/usr/bin/zip" hidden="true"/>
</type>
<type type="lm.addEarFromArtifactory" description="download an earfile from artifactory and add it to a Dar package" extends="xlrelease.PythonScript">
<property name="iconLocation" default="lm/liberty-mutual-logo.png" hidden="true" />
<property name="taskColor" hidden="true" default="#7A1F99" />
<property name="darBuildServer" category="input" label="Dar BuildServer to use" referenced-type="lm.DarBuildServer" kind="ci" />
<property name="appName" category="input" label="Application Name" kind="string" required="true"/>
<property name="appVersion" category="input" label="Application Version" kind="string" required="true"/>
<property name="deployableName" category="input" label="Deployable Name" kind="string" required="true"/>
<property name="deployableType" category="input" label="Deployable Type" kind="string" required="true"/>
<property name="deployableUrl" category="input" label="Url to download the Deployable from" kind="string" required="true"/>
<property name="deployableXml" category="input" size="large" label="Deployable Type Aditional XML" kind="string" required="false"/>
<property name="scriptLocation" default="lm/addEarFromArtifactory.py" hidden="true" />
</type>
<type type="lm.createDarPackage" description="create an initial Dar package on the Dar Buildserver" extends="xlrelease.PythonScript">
<property name="taskColor" hidden="true" default="#7A1F99" />
<property name="darBuildServer" category="input" label="Dar BuildServer to use" referenced-type="lm.DarBuildServer" kind="ci" />
<property name="appName" category="input" label="Application Name" kind="string" required="true"/>
<property name="appVersion" category="input" label="Application Version" kind="string" required="true"/>
<property name="scriptLocation" default="lm/createDarPackage.py" hidden="true" />
</type>
<type type="lm.uploadDarPackage" description="upload a dar package to and xlDeploy server" extends="lm.createDarPackage">
<property name="scriptLocation" default="lm/uploadDarPackage.py" hidden="true" />
<property name="xldeployServer" category="input" label="xldeploy server" referenced-type="xldeploy.Server" kind="ci"/>
</type>
<type type="lm.mergeConfigDeployables" description="merge deployables configuration into the dar package" extends="lm.createDarPackage">
<property name="scriptLocation" default="lm/mergeConfigDeployables.py" hidden="true" />
<property name="configDeployables" category="input" label="Deployables configuration xml" kind="string" size="large" hidden="false" required="true" />
</type>
<type type="lm.mergeConfigDeployablesRTC" description="merge deployables configuration into the dar package from RTC" extends="lm.createDarPackage">
<property name="scriptLocation" default="lm/mergeConfigDeployablesRTC.py" hidden="true" />
<property name="configRTCServer" category="input" label="Target RTC Client Server" referenced-type="lm.RTCClientServer" kind="ci" />
<property name="configRTCRepo" category="input" label="Target RTC Repo" referenced-type="lm.RTCConfigRepo" kind="ci" />
</type>
<type type="lm.cleanDarPackageWorkspace" description="clean up the Dar workspace" extends="lm.createDarPackage">
<property name="scriptLocation" default="lm/cleanDarWorkspace.py" hidden="true" />
</type>