Add publish.xml for CI publishing
https://wiki.eclipse.org/Milestone_and_Release_Builds
https://bugs.eclipse.org/bugs/show_bug.cgi?id=545157
diff --git a/development/org.eclipse.libra.repository/publish.xml b/development/org.eclipse.libra.repository/publish.xml
new file mode 100644
index 0000000..f7efd3d
--- /dev/null
+++ b/development/org.eclipse.libra.repository/publish.xml
@@ -0,0 +1,133 @@
+<!--
+ Copyright (c) 2019 Kiel University and others.
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License 2.0 which is available at
+ http://www.eclipse.org/legal/epl-2.0.
+
+ SPDX-License-Identifier: EPL-2.0
+
+ Assembles the distribution of the whole thing and publishes (fancy word for
+ "copies") it at a target directory. By using only the tasks publish and purge,
+ this script can also be used simply to delete directories or copy one directory
+ over to a target directory. Here's the available tasks:
+
+ * publish - The most important task. If only this task is called, the update
+ site (whose location is specified by ${sourceDir}) is published
+ at ${targetDir}.
+ * zipIt - Includes a zipped version of the update site in the published
+ version.
+ * docs - Builds the documentation website and includes a zipped version
+ of it.
+
+ * purge - A utility task not normally called. Simply removes the target
+ directory.
+
+ Mandatory properties:
+
+ * targetDir - The directory to publish everything at. This thing is emptied
+ before things get published, so be careful to lose everything.
+ This property MUST be set.
+
+ Important properties:
+
+ * version - The ELK version. This is used to assemble ZIP file names.
+ Defaults to "nightly".
+
+ Optional properties:
+
+ * sourceDir - The source directory where the update site was built. Defaults
+ to where Maven builds the thing and does not usually have to
+ be set.
+ * hugoPath - Path to the Hugo executable. If Hugo is on the path, this does
+ not need to be set at all. If it is not, the full path needs
+ to be supplied to this script. Only used to execute the docs
+ task.
+-->
+<project name="Webtools Libra" basedir=".">
+
+ <!-- ================================================================= -->
+ <!-- P R O P E R T I E S -->
+ <!-- ================================================================= -->
+
+ <!-- Important -->
+ <property name="version" value="nightly" />
+
+ <!-- Optional -->
+ <property name="sourceDir" value="target/repository/" />
+ <property name="hugo" value="hugo" />
+
+ <!-- Internal -->
+ <property name="updateSiteZipFileName" value="libra-${version}.zip" />
+ <property name="docsSiteZipFileName" value="libra-${version}-docs.zip" />
+
+
+ <!-- ================================================================= -->
+ <!-- P U B L I S H -->
+ <!-- ================================================================= -->
+ <target name="publish"
+ description="Publishes the content of a source directory in a target directory.">
+
+ <!-- Empty the target directory -->
+ <delete dir="${targetDir}" />
+
+ <!-- Recreate the target directory. It can happen that this task
+ fails seemingly at random. To be sure, we wrap it in a retry
+ task that repeats the mkdir call up to 10 times, with a pause
+ between each pair of attempts (the retrydelay is measured in
+ milliseconds). -->
+ <retry retrycount="10" retrydelay="1000">
+ <mkdir dir="${targetDir}" />
+ </retry>
+
+ <!-- Copy to target directory -->
+ <copy todir="${targetDir}">
+ <fileset dir="${sourceDir}" />
+ </copy>
+ </target>
+
+
+ <!-- ================================================================= -->
+ <!-- Z I P I T -->
+ <!-- ================================================================= -->
+ <target name="zipIt"
+ description="Produces a zip file from the update site directory.">
+
+ <!-- Produce a zip archive of the update site -->
+ <zip destfile="${sourceDir}/${updateSiteZipFileName}"
+ basedir="${sourceDir}"
+ excludes="${docsSiteZipFileName}"
+ />
+ </target>
+
+
+ <!-- ================================================================= -->
+ <!-- D O C S -->
+ <!-- ================================================================= -->
+ <target name="docs"
+ description="Compiles and zips the documentation website.">
+
+ <!-- Empty the compilation directory -->
+ <delete dir="../../docs/public/" />
+
+ <!-- Invoke hugo to compile our documentation website -->
+ <exec executable="${hugo}"
+ dir="../../docs/"
+ />
+
+ <!-- Produce a zip archive of the documentation site -->
+ <zip destfile="${sourceDir}/${docsSiteZipFileName}"
+ basedir="../../docs/public/"
+ />
+ </target>
+
+
+ <!-- ================================================================= -->
+ <!-- P U R G E -->
+ <!-- ================================================================= -->
+ <target name="purge"
+ description="Purges the target directory by removing it.">
+
+ <delete dir="${targetDir}" />
+ </target>
+
+</project>