We are 99% a Java shop, and we use Jenkins as a CI tool. Recently, there have been some .NET project that we needed to compile and build, and I was able to setup a Jenkins slave to do that.
There's one project that as part of the build process compiles Flash applications. It comes with a build.xml
and runs under Ant. There were two targets, one called buildandpost
and another called buildandpost_withFlash
. It runs this compile task:
<target name="compile" description="compile flash and copy to dist" >
<exec dir="src/flash"
executable="C:/Program Files/Adobe/Adobe Flash CS3/flash.exe"
searchpath="true" >
<arg line="compileProject.jsfl"/>
</exec>
<echo message="Flash exited" />
<fail message="Flash Compile produced errors">
<condition>
<isfileselected file="src/flash/compile_log.txt">
<and>
<contains text="Error" casesensitive="no"/>
<contains text="Warning" casesensitive="no"/>
</and>
</isfileselected>
</condition>
</fail>
</target>
When running Jenkins with the buildandpost_withFlash
target, I noticed that Jenkins would start the compile task and then sit there without doing anything until I kill the job. Nothing was being printed in the log. Running the buildandpost
task which does everything that buildandpost_withFlash
does without the compile worked.
I opened the build server, ran the Ant buildandpost_withFlash
target and to my surprise, a GUI opened up while the compile was taking place. I didn't have to do anything. The GUI closed after the compile, and Ant continued, but I now realize that Jenkins was not able to run the compile
task because there's no terminal associated with its tasks.
Is there a way to run this compile without opening up the GUI? I can compile VisualStudio projects without opening VisualStudio. Can I do this with Flash? This is CS3. Otherwise, I won't be able to do builds with Jenkins.