blob: 34e729d8613fb0cdca9364bed2d6692ce9102579 [file] [log] [blame]
<?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>