new Isabelle component for CI infastructure
authorLars Hupel <lars.hupel@mytum.de>
Tue, 24 May 2016 22:46:23 +0200
changeset 63143 ef72b104fa32
parent 63142 4cf6726eb85e
child 63144 76130b7cc450
child 63145 703edebd1d92
new Isabelle component for CI infastructure
Admin/components/ci-extras
Admin/jenkins/ci-extras/README
Admin/jenkins/ci-extras/etc/settings
Admin/jenkins/ci-extras/package
Admin/jenkins/ci-extras/pom.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/components/ci-extras	Tue May 24 22:46:23 2016 +0200
@@ -0,0 +1,2 @@
+#components required for the CI infrastructure
+ci-extras-1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/jenkins/ci-extras/README	Tue May 24 22:46:23 2016 +0200
@@ -0,0 +1,11 @@
+This contains a Maven project which assembles all third-party dependencies for
+the Jenkins build script and packages them up as an Isabelle component.
+
+To produce the Isabelle component, run './package'. This will create a tarball
+in the 'dist' folder.
+
+The constituent packages, including sources and individual copyright notices,
+can be found in the 'contrib' folder.
+
+
+Lars Hupel, 24-May-2016
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/jenkins/ci-extras/etc/settings	Tue May 24 22:46:23 2016 +0200
@@ -0,0 +1,1 @@
+classpath "$COMPONENT/lib/ci-extras.jar"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/jenkins/ci-extras/package	Tue May 24 22:46:23 2016 +0200
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+set -e
+
+VERSION=1
+
+# Build JAR and fetch sources
+mvn package
+
+# Copy to correct location
+mkdir -p lib
+cp "target/ci-extras-1.0-SNAPSHOT-jar-with-dependencies.jar" "lib/ci-extras.jar"
+
+# Clean up
+mvn clean
+
+# Package component
+rm -rf dist && mkdir -p dist
+tar czf "dist/ci-extras-${VERSION}.tar.gz" --exclude dist --transform "s/^\\./ci-extras-${VERSION}/" .
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/jenkins/ci-extras/pom.xml	Tue May 24 22:46:23 2016 +0200
@@ -0,0 +1,76 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>edu.tum.cs.isabelle</groupId>
+  <artifactId>ci-extras</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>ci-extras</name>
+  <url>http://maven.apache.org</url>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-configuration2</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>javax.mail</groupId>
+      <artifactId>mail</artifactId>
+      <version>1.4.7</version>
+    </dependency>
+    <dependency>
+      <groupId>javax.activation</groupId>
+      <artifactId>activation</artifactId>
+      <version>1.1.1</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>jar-with-dependencies</descriptorRef>
+          </descriptorRefs>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+              <goals>
+                <goal>single</goal>
+              </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>2.10</version>
+        <executions>
+          <execution>
+            <id>copy-dependencies-sources</id>
+            <phase>package</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.basedir}/contrib</outputDirectory>
+              <classifier>sources</classifier>
+            </configuration>
+          </execution>
+          <execution>
+            <id>copy-dependencies</id>
+            <phase>package</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.basedir}/contrib</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>