It's all about the answers!

Ask a question

Perming an action on build output - writing a custom application

Chris Ryan (15732428) | asked Oct 11 '13, 10:26 a.m.
Hey folks,

I'm trying to write a user-facing application that will allow them to select a directory containing build output.  The action, specifically, is the automation of CD burning based upon the output.

Has anyone done anything like this previously?

What I was thinking is writing an PHP application that will run on the build server.  Workflow is as follows:

1) A list of the build directories is generated for the user
2) The user selects one of the directories
3) The application calls the CD burning application with parameters

This may not specifically Jazz-related, but let`s consider it a brainstorming session.  If I could utilize the CLM stack to perform this without custom application writing, it would be preferrably.

I`ve written a Java application to automate the CD burning; all I need is the `client` application to call it with appropriate parameters.

Any suggestions would be awesome possum


Accepted answer

permanent link
Scott Cowan (966310) | answered Oct 11 '13, 10:49 a.m.
Hi Chris,

Do you already have a build definition that creates these build directories?  Are you looking to add an option to an existing build definition?  If this is the case, creating a post-build option (like post-build deliver) is the best route, but it's not simple and requires extending RTC client, server and JBE.

Or, are the build directories already residing on the build machine and you want to just create a brand new build definition to burn the CD?  If this is the case, you could create an Ant or Command Line JBE build definition to call out to your application.  The build definition could require a property set by the requestor that points to the directory you want to burn.  This would just use the existing RTC client, server and JBE features.

Chris Ryan selected this answer as the correct answer

Chris Ryan commented Oct 11 '13, 12:05 p.m.

I never even considered designing and script, and calling it from a build definition.

My plan is now to create a Build Def`n, which passes parameters into a Shell script, which will then in turn pass the appropriate parameters to the Java application.

Seems pretty rad to me!
Thanks Scott,

Scott Cowan commented Oct 11 '13, 1:51 p.m.

Excellent Chris!  Glad to hear that option will work for you with the existing RTC features.  :-)

Nick Edgar commented Oct 14 '13, 7:53 a.m.

If the name(s) of the file(s) are well-known, and are uploaded to the build result as part of the build, e.g. using the artifactFilePublisher Ant task, you can retrieve them using the artifactFileRetriever Ant task.  

If that approach is prohibitive, e.g. due to size of files, you can put the files somewhere else, use artifactLinkPublisher to link to them from the build, then retrieve them from the other location when doing the burn step.  

If you include ${buildResultUUID} in the file name or grouping directory, that would give another implicit association with the RTC build.  buildResultUUID is an Ant property set by JBE to identify the build.  Could also use buildDefinitionId + buildLabel, but they're not guaranteed to be unique, or to not change.  They could be added in addition to buildResultUUID to make the mapping more human-readable though.

Nick Edgar commented Oct 14 '13, 7:55 a.m.

One advantage of publishing the files directly to the build, using artifactFilePublisher, is that they get cleaned up automatically when the build gets deleted (either manually or due to pruning settings on build definition).  If they're stored externally, that cleanup has to be managed externally, and can be tricky.

One other answer

permanent link
Lynn Sullivan (111) | answered Jan 29 '19, 12:12 p.m.
edited Jan 29 '19, 12:13 p.m.

Combination of sites with tips on the proper design of resumes and cartoons fill out our house. So far, I can advise you because I found this list to help my eldest son to geta proper resume and they wrote a wonderful one for him. And I will be glad if you tell me more about Essentials in Writing for kids <style type="text/css"> &amp;amp;amp;amp;lt;!--td {border: 1px solid #ccc;}br {mso-data-placement:same-cell;}--&amp;amp;amp;amp;gt; </style>

Your answer

Register or to post your answer.