You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2019/06/10 16:50:15 UTC

[royale-asjs] branch release_practice updated (d466a19 -> a2f66c8)

This is an automated email from the ASF dual-hosted git repository.

aharui pushed a change to branch release_practice
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.


    from d466a19  [maven-release-plugin] prepare for next development iteration
     new 6f1e84b  ensure AIR_HOME so build SWF artifacts and add swcs and jars to validate
     new f629d52  fix script
     new a2f66c8  more validation of ant artifacts

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 releasesteps.xml | 665 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 662 insertions(+), 3 deletions(-)


[royale-asjs] 02/03: fix script

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch release_practice
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit f629d52e9b89d7bd5f76aa407e44a85a5ca3dbcd
Author: Alex Harui <ah...@apache.org>
AuthorDate: Sun Jun 9 20:07:51 2019 -0700

    fix script
---
 releasesteps.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/releasesteps.xml b/releasesteps.xml
index 6911915..81c50e5 100644
--- a/releasesteps.xml
+++ b/releasesteps.xml
@@ -956,7 +956,7 @@
           <arg value="-Dreproducible.outputDirectory=${artifactfolder}/sources/royale-asjs/js/lib" />
           <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
       </exec>
-      <antcall name="compare-ant-jars" />
+      <antcall target="compare-ant-jars" />
     </target>
     
     <target name="compare-ant-jars">


[royale-asjs] 03/03: more validation of ant artifacts

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch release_practice
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit a2f66c82812102935d5e52dc7b66cc668cc5666d
Author: Alex Harui <ah...@apache.org>
AuthorDate: Mon Jun 10 09:35:58 2019 -0700

    more validation of ant artifacts
---
 releasesteps.xml | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 89 insertions(+), 1 deletion(-)

diff --git a/releasesteps.xml b/releasesteps.xml
index 81c50e5..d6c1f42 100644
--- a/releasesteps.xml
+++ b/releasesteps.xml
@@ -862,7 +862,7 @@
     <target name="Release_Step_013_Generate_Artifacts" depends="get-maven-source-artifacts, ant-artifacts">
     </target>
     
-    <target name="Release_Step_013" depends="get-temp-folder,download-ant-artifacts,unzip-ant-artifacts,build-ant-source,validate-ant-bits">
+    <target name="Release_Step_013" depends="get-temp-folder,download-ant-artifacts,unzip-ant-artifacts,validate-ant-artifacts">
     </target>
     
     <target name="download-ant-artifacts" if="artifactfolder">
@@ -874,6 +874,7 @@
             <cutdirsmapper dirs="1" />
         </unzip>
     </target>
+    
     <target name="build-ant-source" depends="check-air-home,check-playerglobal-home,check-runtime-env" >
         <mkdir dir="${artifactfolder}/sources" />
         <unzip src="${artifactfolder}/artifacts/apache-royale-${releaseversion}-src.zip" dest="${artifactfolder}/sources" >
@@ -882,6 +883,93 @@
         <ant dir="${artifactfolder}/sources/royale-asjs" target="all" />
     </target>
 
+    <target name="validate-ant-artifacts">
+        <mkdir dir="${artifactfolder}/sources" />
+        <exec executable="git" dir="${artifactfolder}/sources" failonerror="true" >
+            <arg value="clone" />
+            <arg value="--branch" />
+            <arg value="org.apache.royale.compiler-${releaseversion}-rc${rc}" />
+            <arg value="https://github.com/apache/royale-compiler.git" />
+            <arg value="royale-compiler" />
+        </exec>
+        <exec executable="git" dir="${artifactfolder}/sources" failonerror="true" >
+            <arg value="clone" />
+            <arg value="--branch" />
+            <arg value="org.apache.royale.typedefs-${releaseversion}-rc${rc}" />
+            <arg value="https://github.com/apache/royale-typedefs.git" />
+            <arg value="royale-typedefs" />
+        </exec>
+        <exec executable="git" dir="${artifactfolder}/sources" failonerror="true" >
+            <arg value="clone" />
+            <arg value="--branch" />
+            <arg value="org.apache.royale.framework-${releaseversion}-rc${rc}" />
+            <arg value="https://github.com/apache/royale-asjs.git" />
+            <arg value="royale-asjs" />
+        </exec>
+        <antcall target="validate-ant-source"/>
+        <antcall target="validate-ant-bits"/>
+    </target>
+    
+    <target name="validate-ant-source" description="do some tweaks so the clone is the same as maven source file set"  >
+        <!-- unpack ant src which was generated from maven source package -->
+        <mkdir dir="${artifactfolder}/artifacts/source" />
+        <unzip src="${artifactfolder}/artifacts/apache-royale-${releaseversion}-src.zip" dest="${artifactfolder}/artifacts/source" />
+        <property name="artifactfolder" value="${artifactfolder}" />
+        <!-- get the build date from flex-sdk-description and use it -->
+        <xmlproperty file="${artifactfolder}/artifacts/source/royale-asjs/flex-sdk-description.xml" prefix="desc" />
+        <property name="build.number.date" value="${desc.flex-sdk-description.build}" />
+        <echo message="build.number is ${build.number.date}"/>
+        <!-- delete all .project files -->
+        <delete dir="${artifactfolder}/sources/royale-asjs" failonerror="false">
+            <include name="**/.project"/>
+        </delete>
+
+        <!-- copy Maven-generated DEPENDENCIES files -->
+        <copy file="${artifactfolder}/artifacts/source/royale-asjs/DEPENDENCIES"
+        tofile="${artifactfolder}/sources/royale-asjs/DEPENDENCIES" />
+        <copy file="${artifactfolder}/artifacts/source/royale-typedefs/DEPENDENCIES"
+        tofile="${artifactfolder}/sources/royale-typedefs/DEPENDENCIES" />
+        
+        <!-- build compiler and typedefs via "all" target -->
+        <ant dir="${artifactfolder}/sources/royale-asjs" target="all" />
+        <!-- delete all royale-asjs stuff -->
+        <ant dir="${artifactfolder}/sources/royale-asjs" target="super-clean" />
+        <!-- delete frameworks/libs empty folder -->
+        <delete dir="${artifactfolder}/sources/royale-asjs/frameworks/libs" failonerror="false" />
+        <delete dir="${artifactfolder}/sources/royale-asjs/temp/royale-asjs/frameworks/libs" failonerror="false" />
+        <!-- delete history empty folder -->
+        <delete dir="${artifactfolder}/sources/royale-asjs/templates/swfobject/history" failonerror="false" />
+        <!-- build release artifacts -->
+        <ant dir="${artifactfolder}/sources/royale-asjs" target="release" />
+        <antcall target="compare-src-zips" />
+    </target>
+    
+    <target name="compare-src-zips" >
+        <echo>releaseversion: ${releaseversion}</echo>
+        <echo>copy src-zip file to a separate folder</echo>
+        <mkdir dir="${artifactfolder}/artifacts/srczip" />
+        <copy file="${artifactfolder}/artifacts/apache-royale-${releaseversion}-src.zip"
+            tofile="${artifactfolder}/artifacts/srczip/apache-royale-${releaseversion}-src.zip" />
+        <mkdir dir="${artifactfolder}/sources/srczip" />
+        <copy file="${artifactfolder}/sources/royale-asjs/out/apache-royale-${releaseversion}-src.zip"
+            tofile="${artifactfolder}/sources/srczip/apache-royale-${releaseversion}-src.zip" />
+        <echo>running reproducible build plugin on ${artifactfolder}/artifacts/srczip</echo>
+        <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+            <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+            <arg value="-Dreproducible.outputDirectory=${artifactfolder}/artifacts/srczip" />
+        </exec>
+        <echo>running reproducible build plugin on ${artifactfolder}/sources/srczip</echo>
+        <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+            <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+            <arg value="-Dreproducible.outputDirectory=${artifactfolder}/sources/srczip" />
+        </exec>
+        <condition property="filesmatch" value="true">
+            <filesmatch file1="${artifactfolder}/artifacts/srczip/apache-royale-${releaseversion}-src.zip"
+            file2="${artifactfolder}/sources/srczip/apache-royale-${releaseversion}-src.zip" />
+        </condition>
+        <fail message="apache-royale-${releaseversion}-src.zip does not match" unless="filesmatch" />
+    </target>
+    
     <target name="validate-ant-bits">
         <mkdir dir="${artifactfolder}/artifacts/tar/js" />
         <mkdir dir="${artifactfolder}/artifacts/tar/swf" />


[royale-asjs] 01/03: ensure AIR_HOME so build SWF artifacts and add swcs and jars to validate

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch release_practice
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 6f1e84b04fcf51a2d6ddc1e1da04759929095cb7
Author: Alex Harui <ah...@apache.org>
AuthorDate: Sun Jun 9 18:57:54 2019 -0700

    ensure AIR_HOME so build SWF artifacts and add swcs and jars to validate
---
 releasesteps.xml | 575 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 573 insertions(+), 2 deletions(-)

diff --git a/releasesteps.xml b/releasesteps.xml
index e058351..6911915 100644
--- a/releasesteps.xml
+++ b/releasesteps.xml
@@ -89,7 +89,63 @@
     <fail message="The release version number is not set.  Specify -Drelease.version=&lt;release version (e.g. 0.9.0, 1.0.0, etc)&gt;"
         unless="release.version"/>
         
-	<target name="install-rat" depends="install-rat.jar,install-rat.tasks.jar" />
+    <target name="check-air-home" unless="env.AIR_HOME"
+        description="Check that AIR_HOME is a directory">
+        
+        <echo message="AIR_HOME is ${env.AIR_HOME}"/>
+        
+        <condition property="AIR_HOME.set">
+            <and>
+                <length string="${env.AIR_HOME}" when="greater" length="0" />
+                <available file="${env.AIR_HOME}" type="dir"/>
+                <!--available file="${env.AIR_HOME}/bin/adt" type="file"/-->
+            </and>
+        </condition>
+        
+        <fail message="The environment variable AIR_HOME must be set to the AIR SDK Kit directory"
+        unless="AIR_HOME.set"/>
+    </target>
+    
+    <target name="check-playerglobal-home" unless="env.PLAYERGLOBAL_HOME"
+        description="Check PLAYERGLOBAL_HOME for both a directory and a swc file">
+        
+        <echo message="PLAYERGLOBAL_HOME is ${env.PLAYERGLOBAL_HOME}"/>
+        <echo message="playerglobal.version is ${playerglobal.version}"/>
+        
+        <available file="${env.PLAYERGLOBAL_HOME}"
+        type="dir"
+        property="PLAYERGLOBAL_HOME.set"/>
+        
+        <fail message="The environment variable PLAYERGLOBAL_HOME is not set to a directory"
+        unless="PLAYERGLOBAL_HOME.set"/>
+        
+        <property name="playerglobal.swc"
+        value="${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc"/>
+        
+        <available file="${playerglobal.swc}"
+        type="file"
+        property="playerglobal.swc.exists"/>
+        
+        <fail message="The file ${playerglobal.swc} does not exist"
+        unless="playerglobal.swc.exists"/>
+        
+        <echo message="playerglobal.swc is ${playerglobal.swc}"/>
+    </target>
+    
+    <!-- To run the checkintests as well as any mustella tests need AIR for the adl and
+     a flash player content debugger.
+     -->
+    <target name="check-runtime-env" depends="check-air-home"
+        description="Check for the required runtime environment variables for the checkintests">
+        
+        <available file="${env.FLASHPLAYER_DEBUGGER}" property="FLASHPLAYER_DEBUGGER.set"/>
+        <fail message="FLASHPLAYER_DEBUGGER is ${env.FLASHPLAYER_DEBUGGER} which is not an Adobe Flash Player content debugger"
+        unless="FLASHPLAYER_DEBUGGER.set"/>
+    </target>
+    
+
+
+    <target name="install-rat" depends="install-rat.jar,install-rat.tasks.jar" />
 	<target name="install-rat.jar" unless="apache.rat.found">
 		<get src="${apache.rat.url}/${apache.rat.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.jar}" />
 	</target>
@@ -818,7 +874,7 @@
             <cutdirsmapper dirs="1" />
         </unzip>
     </target>
-    <target name="build-ant-source" >
+    <target name="build-ant-source" depends="check-air-home,check-playerglobal-home,check-runtime-env" >
         <mkdir dir="${artifactfolder}/sources" />
         <unzip src="${artifactfolder}/artifacts/apache-royale-${releaseversion}-src.zip" dest="${artifactfolder}/sources" >
         </unzip>
@@ -827,6 +883,521 @@
     </target>
 
     <target name="validate-ant-bits">
+        <mkdir dir="${artifactfolder}/artifacts/tar/js" />
+        <mkdir dir="${artifactfolder}/artifacts/tar/swf" />
+        <mkdir dir="${artifactfolder}/artifacts/tar/src" />
+        <mkdir dir="${artifactfolder}/artifacts/zip/js" />
+        <mkdir dir="${artifactfolder}/artifacts/zip/swf" />
+        <mkdir dir="${artifactfolder}/artifacts/zip/src" />
+        <unzip src="${artifactfolder}/artifacts/apache-royale-${releaseversion}-src.zip" dest="${artifactfolder}/artifacts/zip/src" />
+        <untar src="${artifactfolder}/artifacts/apache-royale-${releaseversion}-src.tar.gz" dest="${artifactfolder}/artifacts/tar/src" compression="gzip">
+            <cutdirsmapper dirs="1" />
+        </untar>
+        <unzip src="${artifactfolder}/artifacts/apache-royale-${releaseversion}-bin-js.zip" dest="${artifactfolder}/artifacts/zip/js" />
+        <untar src="${artifactfolder}/artifacts/apache-royale-${releaseversion}-bin-js.tar.gz" dest="${artifactfolder}/artifacts/tar/js" compression="gzip">
+            <cutdirsmapper dirs="1" />
+        </untar>
+        <unzip src="${artifactfolder}/artifacts/apache-royale-${releaseversion}-bin-js-swf.zip" dest="${artifactfolder}/artifacts/zip/swf" />
+        <untar src="${artifactfolder}/artifacts/apache-royale-${releaseversion}-bin-js-swf.tar.gz" dest="${artifactfolder}/artifacts/tar/swf" compression="gzip">
+            <cutdirsmapper dirs="1" />
+        </untar>
+        <antcall target="validate-ant-jars" />
+        <antcall target="validate-ant-swcs" />
+    </target>
+
+    <target name="validate-ant-jars" >
+      <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+        <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+        <arg value="-Dreproducible.outputDirectory=${artifactfolder}/artifacts/zip/js/royale-asjs/lib" />
+        <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
+      </exec>
+      <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+          <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+          <arg value="-Dreproducible.outputDirectory=${artifactfolder}/artifacts/zip/js/royale-asjs/js/lib" />
+          <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
+      </exec>
+      <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+          <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+          <arg value="-Dreproducible.outputDirectory=${artifactfolder}/artifacts/zip/swf/royale-asjs/lib" />
+          <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
+      </exec>
+      <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+          <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+          <arg value="-Dreproducible.outputDirectory=${artifactfolder}/artifacts/zip/swf/royale-asjs/js/lib" />
+          <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
+      </exec>
+      <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+          <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+          <arg value="-Dreproducible.outputDirectory=${artifactfolder}/artifacts/tar/js/royale-asjs/lib" />
+          <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
+      </exec>
+      <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+          <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+          <arg value="-Dreproducible.outputDirectory=${artifactfolder}/artifacts/tar/js/royale-asjs/js/lib" />
+          <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
+      </exec>
+      <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+          <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+          <arg value="-Dreproducible.outputDirectory=${artifactfolder}/artifacts/tar/swf/royale-asjs/lib" />
+          <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
+      </exec>
+      <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+          <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+          <arg value="-Dreproducible.outputDirectory=${artifactfolder}/artifacts/tar/swf/royale-asjs/js/lib" />
+          <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
+      </exec>
+      <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+          <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+          <arg value="-Dreproducible.outputDirectory=${artifactfolder}/sources/royale-asjs/lib" />
+          <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
+      </exec>
+      <exec executable="${mvn}" dir="${artifactfolder}" failonerror="true" >
+          <arg value="io.github.zlika:reproducible-build-maven-plugin:0.10:strip-jar" />
+          <arg value="-Dreproducible.outputDirectory=${artifactfolder}/sources/royale-asjs/js/lib" />
+          <arg value="-Dreproducible.newLineTextFiles=META-INF/NOTICE,META-INF/LICENSE" />
+      </exec>
+      <antcall name="compare-ant-jars" />
+    </target>
+    
+    <target name="compare-ant-jars">
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="compiler-asc.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="compiler-common.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="compiler-compc.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="compiler-mxmlc.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="compiler-optimizer.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="compiler-swfdump.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="compiler.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="compc.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="fdb.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="flex-compiler-oem.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="mxmlc.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/lib" />
+          <param name="fileName" value="swfutils.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/js/lib" />
+          <param name="fileName" value="asdoc.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/js/lib" />
+          <param name="fileName" value="asdoc.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/js/lib" />
+          <param name="fileName" value="compc.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/js/lib" />
+          <param name="fileName" value="compiler-royaletasks.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/js/lib" />
+          <param name="fileName" value="externc.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/js/lib" />
+          <param name="fileName" value="mxmlc.jar"/>
+      </antcall>
+      <antcall target="compare-jar">
+          <param name="folderName" value="royale-asjs/js/lib" />
+          <param name="fileName" value="jsc.jar"/>
+      </antcall>
+    </target>
+    
+    <target name="compare-jar">
+        <condition property="filesmatch" value="true">
+            <filesmatch file1="${artifactfolder}/tar/js/${folderPath}/${filename}"
+            file2="${artifactfolder}/sources/${folderPath}/${filename}" />
+        </condition>
+        <fail message="${folderPath}/${filename} does not match tar/js" unless="filesmatch" />
+        <condition property="filesmatch1" value="true">
+            <filesmatch file1="${artifactfolder}/tar/swf/${folderPath}/${filename}"
+            file2="${artifactfolder}/sources/${folderPath}/${filename}" />
+        </condition>
+        <fail message="${folderPath}/${filename} does not match tar/swf" unless="filesmatch1" />
+        <condition property="filesmatch2" value="true">
+            <filesmatch file1="${artifactfolder}/zip/swf/${folderPath}/${filename}"
+            file2="${artifactfolder}/sources/${folderPath}/${filename}" />
+        </condition>
+        <fail message="${folderPath}/${filename} does not match zip/swf" unless="filesmatch2" />
+        <condition property="filesmatch3" value="true">
+            <filesmatch file1="${artifactfolder}/zip/js/${folderPath}/${filename}"
+            file2="${artifactfolder}/sources/${folderPath}/${filename}" />
+        </condition>
+        <fail message="${folderPath}/${filename} does not match zip/js" unless="filesmatch3" />
+    </target>
+
+    <target name="compare-swf-swc">
+        <condition property="filesmatch" value="true">
+            <filesmatch file1="${artifactfolder}/tar/js/${folderPath}/${filename}"
+            file2="${artifactfolder}/sources/${folderPath}/${filename}" />
+        </condition>
+        <fail message="${folderPath}/${filename} does not match tar/js" unless="filesmatch" />
+        <condition property="filesmatch1" value="true">
+            <filesmatch file1="${artifactfolder}/tar/swf/${folderPath}/${filename}"
+            file2="${artifactfolder}/sources/${folderPath}/${filename}" />
+        </condition>
+        <fail message="${folderPath}/${filename} does not match tar/swf" unless="filesmatch1" />
+        <condition property="filesmatch2" value="true">
+            <filesmatch file1="${artifactfolder}/zip/swf/${folderPath}/${filename}"
+            file2="${artifactfolder}/sources/${folderPath}/${filename}" />
+        </condition>
+        <fail message="${folderPath}/${filename} does not match zip/swf" unless="filesmatch2" />
+        <condition property="filesmatch3" value="true">
+            <filesmatch file1="${artifactfolder}/zip/js/${folderPath}/${filename}"
+            file2="${artifactfolder}/sources/${folderPath}/${filename}" />
+        </condition>
+        <fail message="${folderPath}/${filename} does not match zip/js" unless="filesmatch3" />
+    </target>
+    
+    <target name="compare-js-swc">
+        <condition property="filesmatch" value="true">
+            <filesmatch file1="${artifactfolder}/tar/js/${folderPath}/${filename}"
+            file2="${artifactfolder}/sources/${folderPath}/${filename}" />
+        </condition>
+        <fail message="${folderPath}/${filename} does not match tar/js" unless="filesmatch" />
+        <condition property="filesmatch3" value="true">
+            <filesmatch file1="${artifactfolder}/zip/js/${folderPath}/${filename}"
+            file2="${artifactfolder}/sources/${folderPath}/${filename}" />
+        </condition>
+        <fail message="${folderPath}/${filename} does not match zip/js" unless="filesmatch3" />
+    </target>
+
+    <target name="validate-ant-swcs">
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Basic.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Binding.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Charts.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Collections.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Core.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="CreateJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="DragDrop.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Effects.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Express.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Flat.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="FontAwesome.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Formatters.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="GoogleMaps.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Graphics.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="HTML.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="HTML5.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Icons.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Jewel.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="JewelTheme.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Language.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="MXRoyale.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="MaterialDesignLite.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Mobile.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Network.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Reflection.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="RoyaleSite.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="RoyaleUnit.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="SparkRoyale.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Storage.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="TLF.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="Text.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="XML.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/libs" />
+            <param name="fileName" value="jQuery.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="AceJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="BasicJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="BindingJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="ChartsJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="CollectionsJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="CoreJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="CreateJSJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="DragDropJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="EffectsJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="ExpressJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="FlatJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="FontAwesomeJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="FormattersJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="GoogleMapsJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="GraphicsJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="HTMLJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="HTML5JS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="IconsJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="JewelJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="LanguageJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="MXRoyaleJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="MaterialDesignLiteJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="MobileJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="NetworkJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="ReflectionJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="RoyaleSiteJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="RoyaleUnitJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="SparkRoyaleJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="StorageJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="TLFJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="TextJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="XMLJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/frameworks/js/libs" />
+            <param name="fileName" value="jQueryJS.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/js/libs" />
+            <param name="fileName" value="ace-1.2.3.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/js/libs" />
+            <param name="fileName" value="cordova.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/js/libs" />
+            <param name="fileName" value="createjs.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/js/libs" />
+            <param name="fileName" value="GCL.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/js/libs" />
+            <param name="fileName" value="google_maps.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/js/libs" />
+            <param name="fileName" value="jasmine.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/js/libs" />
+            <param name="fileName" value="jquery.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/js/libs" />
+            <param name="fileName" value="js.swc"/>
+        </antcall>
+        <antcall target="compare-swf-swc">
+            <param name="folderName" value="royale-asjs/js/libs" />
+            <param name="fileName" value="node.swc"/>
+        </antcall>
     </target>
 
     <target name="Release_Step_013_Sign" depends="get-artifact-folder">