| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Copyright (c) 2016, 2018 IBM Corporation and others. |
| |
| This program and the accompanying materials |
| are made available under the terms of the Eclipse Public License 2.0 |
| which accompanies this distribution, and is available at |
| https://www.eclipse.org/legal/epl-2.0/ |
| |
| SPDX-License-Identifier: EPL-2.0 |
| |
| Contributors: |
| David Williams - initial API and implementation |
| --> |
| |
| <project |
| name="Publish Build" |
| default="default"> |
| |
| <!-- Properties that must be passed to this script: |
| buildDirectory: Path to perform the build in. (A working directory) |
| buildType: Type of build (nightly, integration etc.) |
| buildId: Build name |
| buildLabel: <buildType>-<buildName>-<timestamp> |
| --> |
| <fail |
| if="result" |
| message="the value result was passed in as publish.xml started. As if someone was overriding buildDirectory?" /> |
| <fail |
| if="dropDirectory" |
| message="the value dropDirectory was passed in as publish.xml started. But we expect to compute it." /> |
| |
| <fail |
| unless="buildDirectory" |
| message="buildDirectory must be defined for publish.xml " /> |
| |
| <fail |
| unless="buildLabel" |
| message="buildLabel must be defined for publish.xml" /> |
| <!-- this is the "top" of the drop directory |
| It is used internal to this script to define |
| the "real" dropDirecotry. Sometimes equal to this root, |
| but for tests, will be one level lower, such as testResult (for unit tests), |
| performance (for main stream performance tests). |
| --> |
| <property |
| name="dropDirectoryName" |
| value="${postingDirectory}/${buildLabel}" /> |
| |
| <condition property="notRedundantDir"> |
| <not> |
| <equals |
| arg1="${buildDirectory}" |
| arg2="${dropDirectoryName}" /> |
| </not> |
| </condition> |
| |
| <echo message="== buildDirectory: ${line.separator}==${buildDirectory}" /> |
| <echo message="== dropDirectoryName: ${line.separator}==${dropDirectoryName}" /> |
| |
| <fail |
| if="notRedundantDir" |
| message="buildDirectory and dropDirectoryName are surpisingly NOT equal. Caller has passed in wrong value." /> |
| |
| <target name="default"> |
| <antcall target="getStaticFiles" /> |
| <antcall target="generateIndex" /> |
| </target> |
| |
| <target name="generateIndex"> |
| |
| <property |
| name="class" |
| value="org.eclipse.releng.generators.TestResultsGenerator" /> |
| <taskdef |
| name="indexResults" |
| classname="${class}" /> |
| |
| <!-- |
| isBuildTested: true|false should JUnit plugin test results be used to generate index page |
| dropTokenList: comma separated list of strings which should be replaced by the fileName attribute settings in the testManifest.xml. |
| xmlDirectoryName: path to directory containing JUnit plugin test results in xml format (see doc is org.eclipse.test). |
| dropDirectoryName: path to directory containing the result of the build. |
| testResultsHtmlFileName: name of file which will be generated with links to JUnit test results |
| dropHtmlFileName: name of generated index page |
| hrefTestResultsTargetPath: relative path from index page to parent directory containing JUnit html and xml test results |
| for example, |
| if html is in |
| .../testResults/html/... |
| and xml is in |
| .../testResults/xml/... |
| then hrefTestResultsTargetPath would be set to testResults |
| if, that is, the "testResults.php" page is a peer of the 'testResults' |
| directory. If testResults.php page is under testResults directory, |
| then the value would be ".". |
| hrefCompileLogsTargetPath: relative path from index page directory containing compilelogs |
| testManifestFileName: name of xml file containing descriptions of zip types and log files |
| |
| --> |
| |
| <!-- This list is for Eclipse. Equinox overrides and provides their own list --> |
| <property |
| name="dropTokenList" |
| value="%sdk%,%tests%,%rcpruntime%,%rcpsdk%,%runtime%,%jdtc%,%swt%" /> |
| |
| <!-- xml results directory --> |
| <condition |
| property="xmlDirectoryName" |
| value="${buildDirectory}/performance/xml"> |
| <contains |
| string="${job}" |
| substring="-perf-" /> |
| </condition> |
| <!-- else standard default for unit tests --> |
| <property |
| name="xmlDirectoryName" |
| value="${buildDirectory}/testresults/xml" /> |
| |
| <condition |
| property="indexFileName" |
| value="performance/performance.php"> |
| <contains |
| string="${job}" |
| substring="-perf-" /> |
| </condition> |
| <condition |
| property="indexFileName" |
| value="testResults.php"> |
| <contains |
| string="${job}" |
| substring="-unit-" /> |
| </condition> |
| <!-- else standard default for download page --> |
| <property |
| name="indexFileName" |
| value="index.php" /> |
| |
| <condition |
| property="dropTemplateFileName" |
| value="${basedir}/templateFiles/performance.php"> |
| <contains |
| string="${job}" |
| substring="-perf-" /> |
| </condition> |
| <condition |
| property="dropTemplateFileName" |
| value="${basedir}/staticDropFiles/testResults.php"> |
| <contains |
| string="${job}" |
| substring="-unit-" /> |
| </condition> |
| <!-- else standard default for download index.php page --> |
| <property |
| name="dropTemplateFileName" |
| value="${basedir}/templateFiles/index.template.php" /> |
| |
| <condition |
| property="manifestFile" |
| value="${basedir}/performanceTestManifest.xml" |
| else="${basedir}/testManifest.xml"> |
| <contains |
| string="${job}" |
| substring="-perf-" /> |
| </condition> |
| |
| <condition |
| property="expectedConfigFilename" |
| value="perfLRTestConfigs.php"> |
| <contains |
| string="${job}" |
| substring="LR-perf-" /> |
| </condition> |
| <condition |
| property="expectedConfigFilename" |
| value="perfTestConfigs.php"> |
| <contains |
| string="${job}" |
| substring="-perf-" /> |
| </condition> |
| <property |
| name="expectedConfigFilename" |
| value="testConfigs.php"/> |
| |
| <condition |
| property="foundConfigFilename" |
| value="perfTestConfigsFound.php" |
| else="testConfigsFound.php"> |
| <contains |
| string="${job}" |
| substring="-perf-" /> |
| </condition> |
| |
| <condition |
| property="testResultsHtmlFileName" |
| value="performanceLRResultsTable.html"> |
| <contains |
| string="${job}" |
| substring="LR-perf-" /> |
| </condition> |
| <condition |
| property="testResultsHtmlFileName" |
| value="performanceResultsTable.html"> |
| <contains |
| string="${job}" |
| substring="-perf-" /> |
| </condition> |
| <property |
| name="testResultsHtmlFileName" |
| value="testResultsTables.html" /> |
| |
| <condition |
| property="hrefTestResultsTargetPath" |
| value="."> |
| <contains |
| string="${job}" |
| substring="-perf-" /> |
| </condition> |
| <property |
| name="hrefTestResultsTargetPath" |
| value="testresults" /> |
| |
| <!-- we should be able to do this now, and refine list in manifest. --> |
| <property |
| name="doMissingListValue" |
| value="true" /> |
| |
| <!-- it is surprising these are defined here? --> |
| <property |
| name="hrefCompileLogsTargetPath" |
| value="compilelogs/plugins/" /> |
| <property |
| name="compileLogsDirectoryName" |
| value="${buildDirectory}/${hrefCompileLogsTargetPath}" /> |
| |
| <property |
| name="testManifestFileName" |
| value="${manifestFile}" /> |
| <property |
| name="perfManifestFileName" |
| value="performanceTestManifest.xml" /> |
| <property |
| name="perfLRManifestFileName" |
| value="performanceLRTestManifest.xml" /> |
| |
| <!-- test configs: follows pattern of [job]_[OSGiTriplet]_[VM] |
| the underscores are significant. When we "select files" to group, |
| in a column, part of the selection is based on plugin unit test result files that *end with*: |
| '_' + [job]_[OSGiTriplet]_[VM] + ".xml" where what comes before the '_' is the plugin name. |
| Then later, for display, we break [job]_[OSGiTriplet]_[VM] at the first and last underscores. |
| (There can be other underscores besides "first and last", such as in 'x86_64'. |
| In other words, the "expected config" must match exactly what the unit tests produce as |
| the end of the filename. (Not sure of impact of "LR" on our |
| heuristics.) |
| --> |
| <fail unless="eclipseStreamMajor" message="This publish.xml script needs eclipseStreamMajor and eclipseStreamMinor" /> |
| <fail unless="eclipseStreamMinor" message="This publish.xml script needs eclipseStreamMajor and eclipseStreamMinor"/> |
| <condition |
| property="perfLRConfigExpected" |
| value="ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}LR-perf-lin64_linux.gtk.x86_64_8.0,ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}LR-perf-lin64-baseline_linux.gtk.x86_64_8.0"> |
| <contains |
| string="${job}" |
| substring="LR-perf-" /> |
| </condition> |
| <condition |
| property="perfConfigExpected" |
| value="ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-perf-lin64_linux.gtk.x86_64_8.0,ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-perf-lin64-baseline_linux.gtk.x86_64_8.0"> |
| <contains |
| string="${job}" |
| substring="-perf-" /> |
| </condition> |
| <!-- else normal unit tests configs --> |
| <property |
| name="testsConfigExpected" |
| value="ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-unit-mac64-java11_macosx.cocoa.x86_64_11,ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-unit-win32-java11_win32.win32.x86_64_11,ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-unit-cen64-gtk3-java11_linux.gtk.x86_64_11,ep${eclipseStreamMajor}${eclipseStreamMinor}${buildType}-unit-cen64-gtk3-java17_linux.gtk.x86_64_17" /> |
| |
| <echo message=" = = properties in publish.xml == " /> |
| <echo message=" job: ${job}" /> |
| <echo message=" buildDirectory: ${buildDirectory}" /> |
| <echo message=" xmlDirectoryName: ${xmlDirectoryName}" /> |
| <echo message=" dropDirectoryName ${dropDirectoryName}" /> |
| <echo message=" dropTemplateFileName: ${dropTemplateFileName}" /> |
| <echo message=" testResultsHtmlFileName: ${testResultsHtmlFileName}" /> |
| <echo message=" hrefTestResultsTargetPath: ${hrefTestResultsTargetPath}" /> |
| <echo message=" hrefCompileLogsTargetPath: ${hrefCompileLogsTargetPath}" /> |
| <echo message=" compileLogsDirectoryName: ${compileLogsDirectoryName}" /> |
| <echo message=" testManifestFileName: ${testManifestFileName}" /> |
| <echo message=" perfManifestFileName: ${perfManifestFileName}" /> |
| <echo message=" perfLRManifestFileName: ${perfLRManifestFileName}" /> |
| <echo message=" testsConfigExpected: ${testsConfigExpected}" /> |
| <echo message=" isBuildTested: ${isBuildTested}" /> |
| <echo message=" buildType: ${buildType}" /> |
| <echo message=" doMissingListValue: ${doMissingListValue}" /> |
| <echo message=" testsConfigExpected: ${testsConfigExpected}" /> |
| <echo message=" perfConfigExpected: ${perfConfigExpected}" /> |
| <echo message=" perfLRConfigExpected: ${perfLRConfigExpected}" /> |
| <echo message=" expectedConfigFilename: ${expectedConfigFilename}" /> |
| <echo message=" foundConfigFilename: ${foundConfigFilename}" /> |
| <indexResults |
| isBuildTested="${isBuildTested}" |
| buildType="${buildType}" |
| dropTokenList="${dropTokenList}" |
| dropHtmlFileName="${indexFileName}" |
| xmlDirectoryName="${xmlDirectoryName}" |
| dropDirectoryName="${dropDirectoryName}" |
| dropTemplateFileName="${dropTemplateFileName}" |
| testResultsHtmlFileName="${testResultsHtmlFileName}" |
| hrefTestResultsTargetPath="${hrefTestResultsTargetPath}" |
| hrefCompileLogsTargetPath="${hrefCompileLogsTargetPath}" |
| compileLogsDirectoryName="${compileLogsDirectoryName}" |
| testManifestFileName="${testManifestFileName}" |
| perfManifestFileName="${perfManifestFileName}" |
| perfLRManifestFileName="${perfLRManifestFileName}" |
| testsConfigExpected="${testsConfigExpected}" |
| perfConfigExpected="${perfConfigExpected}" |
| perfLRConfigExpected="${perfLRConfigExpected}" |
| expectedConfigFilename="${expectedConfigFilename}" |
| foundConfigFilename="${foundConfigFilename}" |
| doMissingList="${doMissingListValue}" /> |
| </target> |
| |
| <target name="getStaticFiles"> |
| <!--get static files required in the buildLabel directory --> |
| <copy todir="${buildDirectory}"> |
| <fileset dir="staticDropFiles" /> |
| </copy> |
| </target> |
| </project> |