| <project name="Signing_Targets" > |
| |
| <property name="archiveName" value="eclipse-master-${buildId}.zip" /> |
| <property name="signingArchive" value="${buildDirectory}/${buildLabel}/${archiveName}" /> |
| |
| <target name="createSigningArchive" > |
| <antcall target="_createSigningArchiveIncludes" /> |
| <antcall target="_createSigningArchiveNoIncludes" /> |
| </target> |
| |
| <target name="_createSigningArchiveIncludes" if="includesFile" > |
| <zip zipfile="${signingArchive}" basedir="${p2.repo}" includesFile="${includesFile}" /> |
| </target> |
| <target name="_createSigningArchiveNoIncludes" unless="includesFile" > |
| <zip zipfile="${signingArchive}" basedir="${p2.repo}" /> |
| </target> |
| |
| <target name="signMasterFeature" unless="skipSigning" > |
| <property name="packtmp" value="${buildDirectory}/packtmp" /> |
| <property name="stagingDirectoryOutput" value="/home/data/httpd/download-staging.priv/eclipse/e4/${buildId}-out" /> |
| <property name="stagingDirectory" value="/home/data/httpd/download-staging.priv/eclipse/e4" /> |
| |
| <property name="outputFile" value="${stagingDirectoryOutput}/${archiveName}" /> |
| <mkdir dir="${packtmp}" /> |
| <!--update pack.properties to exclude Orbit bundles from being signed and packed --> |
| <!--<antcall target="updatePackProperties" /> --> |
| <move file="${signingArchive}" tofile="${packtmp}/${archiveName}" /> |
| |
| <!--push drop to staging directory--> |
| <echo message="push drop to staging directory" /> |
| |
| <condition property="signcopy" value="cp"> |
| <equals arg1="${hudson}" arg2="true" /> |
| </condition> |
| <property name="signcopy" value="scp" /> |
| |
| <condition property="signexec" value="/bin/bash"> |
| <equals arg1="${hudson}" arg2="true" /> |
| </condition> |
| <property name="signexec" value="ssh" /> |
| |
| <condition property="signUser" value=""> |
| <equals arg1="${hudson}" arg2="true" /> |
| </condition> |
| <property name="signUser" value="pwebster@" /> |
| |
| <condition property="signhost" value=""> |
| <equals arg1="${hudson}" arg2="true" /> |
| </condition> |
| <property name="signhost" value="build.eclipse.org" /> |
| |
| <condition property="signdelimiter" value=""> |
| <equals arg1="${hudson}" arg2="true" /> |
| </condition> |
| <property name="signdelimiter" value=":" /> |
| |
| <condition property="signquote" value=""> |
| <equals arg1="${hudson}" arg2="true" /> |
| </condition> |
| <property name="signquote" value=""" /> |
| |
| <condition property="signpoll" value="ls"> |
| <equals arg1="${hudson}" arg2="true" /> |
| </condition> |
| <property name="signpoll" value="ssh" /> |
| |
| <exec dir="${packtmp}" executable="${signcopy}" output="signing.txt"> |
| <arg line="${archiveName} ${signUser}${signhost}${signdelimiter}${stagingDirectory}" /> |
| </exec> |
| |
| <exec dir="${buildDirectory}" executable="${signexec}" output="signing.txt" append="true"> |
| <arg line=" ${signUser}${signhost} /bin/chmod ugo+rw ${stagingDirectory}/${archiveName}" /> |
| </exec> |
| |
| <!--invoke sign script and wait--> |
| <echo message="invoke sign script and wait" /> |
| <exec dir="." executable="${signexec}" output="signing.txt" append="true"> |
| <arg line=" ${signUser}${signhost} ${signquote}/usr/local/bin/sign ${stagingDirectory}/${archiveName} nomail ${stagingDirectoryOutput}${signquote}" /> |
| </exec> |
| |
| <!--Wait for build to be available --> |
| <condition property="signpollline" value="${stagingDirectoryOutput}/${archiveName}"> |
| <equals arg1="${hudson}" arg2="true" /> |
| </condition> |
| <property name="signpollline" value="${signhost} ${signquote}cd ${stagingDirectoryOutput};ls ${archiveName}${signquote}" /> |
| |
| <antcall target="waitForChangedAttribs"> |
| <param name="signpoll" value="${signpoll}" /> |
| <param name="signpollline" value="${signpollline}" /> |
| </antcall> |
| |
| <!--copy zip back to build machine --> |
| <sleep minutes="2" /> |
| <echo message="copy zip back to build machine" /> |
| <exec dir="." executable="${signcopy}" output="signing.txt" append="true"> |
| <arg line=" ${signUser}${signhost}${signdelimiter}${stagingDirectory}/${buildId}-out/${archiveName} ${buildDirectory}/${buildLabel}" /> |
| </exec> |
| <antcall target="deletetempsigningfiles" /> |
| </target> |
| |
| <target name="deletetempsigningfiles" unless="hudson"> |
| <echo message="delete temp files on build.eclipse.org" /> |
| <property name="signdeleteline" value="${signUser}${signhost} ${signquote}/bin/rm -rf ${stagingDirectory}/${buildId}-out ${stagingDirectory}/${archiveName}${signquote}" /> |
| <exec dir="." executable="${signexec}" output="signing.txt" append="true"> |
| <arg line="${signdeleteline}" /> |
| </exec> |
| </target> |
| |
| <target name="waitForChangedAttribs" unless="attribs.changed"> |
| <antcall target="compareAttribs" inheritAll="false"> |
| <param name="buildDirectory" value="${buildDirectory}" /> |
| <param name="originalAttribs" value="${originalAttribs}" /> |
| <param name="signpoll" value="${signpoll}" /> |
| </antcall> |
| </target> |
| |
| <target name="compareAttribs"> |
| <!--poll file for change in attributes--> |
| <exec dir="${buildDirectory}" executable="${signpoll}" outputProperty="polledAttribs"> |
| <arg line="${signpollline}" /> |
| </exec> |
| <echo message="original: ${originalAttribs}" /> |
| <condition property="attribChanged"> |
| <and> |
| <not> |
| <contains string="${polledAttribs}" substring="Permission denied, please try again." casesensitive="no" /> |
| </not> |
| <not> |
| <contains string="${polledAttribs}" substring="Host key verification failed." casesensitive="no" /> |
| </not> |
| <not> |
| <contains string="${polledAttribs}" substring="Connection closed by UNKNOWN" casesensitive="no" /> |
| </not> |
| <or> |
| <not> |
| <contains string="${polledAttribs}" substring="No such file or directory" casesensitive="no" /> |
| </not> |
| <contains string="${polledAttribs}" substring="bash: line 0: cd:" casesensitive="no" /> |
| </or> |
| </and> |
| </condition> |
| <echo message="polled: ${polledAttribs}" /> |
| <antcall target="writeDiffResult" /> |
| <sleep seconds="120" /> |
| <available property="attribs.changed" file="${buildDirectory}/attribDiff.txt" /> |
| <antcall target="waitForChangedAttribs" /> |
| </target> |
| |
| <target name="writeDiffResult" if="attribChanged"> |
| <echo message="original: ${originalAttribs}" file="${buildDirectory}/attribDiff.txt" /> |
| <echo message="new: ${polledAttribs}" file="${buildDirectory}/attribDiff.txt" append="true" /> |
| </target> |
| |
| <target name="updatePackProperties"> |
| <!--exclude pre-built Orbit bundles from being signed and packed--> |
| <property name="packproperties" value="${buildDirectory}/updatePackProperties.txt" /> |
| <generateExcludeList mapFile="${buildDirectory}/maps/e4/releng/org.eclipse.e4.ui.releng/maps/orbit.map" outputFile="${packproperties}" /> |
| <loadfile property="pack.properties" srcFile="${packproperties}" /> |
| <delete file="${packproperties}" failonerror="false" /> |
| <replace file="${builder}/pack.properties" token="@excludejars@" value="${pack.properties}" /> |
| |
| <!-- add pack.properties file that specifies effort level --> |
| <exec dir="${builder}" executable="zip"> |
| <arg line="-r ${signingArchive} pack.properties" /> |
| </exec> |
| </target> |
| </project> |