Merge "CSIT-474: CSIT documentation auto generation"
authorVanessa Rene Valderrama <vvalderrama@linuxfoundation.org>
Fri, 16 Dec 2016 14:42:55 +0000 (14:42 +0000)
committerGerrit Code Review <gerrit@fd.io>
Fri, 16 Dec 2016 14:42:55 +0000 (14:42 +0000)
jjb/csit/csit.yaml
jjb/csit/include-raw-csit-docs.sh [new file with mode: 0644]

index cb2a9e1..4354bb0 100644 (file)
@@ -8,6 +8,8 @@
         - 'csit-vpp-verify-{stream_timed}-weekly'
         - 'csit-vpp-verify-{stream_timed}-semiweekly'
         - 'csit-vpp-verify-perf-master-nightly-all'
+        - 'csit-docs-merge-{stream}'
+        - 'csit-docs-verify-{stream}'
 
     project: 'csit'
     branch: 'master'
@@ -31,6 +33,7 @@
             branch: 'rls1609'
             branch-id: 'oper-rls1609'
 
+
 - job-template:
     name: 'csit-vpp-functional-{stream}-virl'
 
@@ -77,6 +80,7 @@
         - robot-report:
             output-path: ''
 
+
 - job-template:
     name: 'csit-vpp-perf-{stream}-{type}'
 
                     xpath-type: 'nodeset'
                     xpath: '//*[@framesize="78" and contains(@tags,"PDR") and @workerthreads="4"]'
 
+
 - job-template:
     name: 'csit-vpp-verify-{stream_timed}-weekly'
     description: 'Purpose of this job is to validate CSIT code of corresponding branch against verified vpp build from corresponding branch and create corresponding operational branch in case of success.'
         - robot-report:
             output-path: 'csit/archive'
 
+
 - job-template:
     name: 'csit-vpp-verify-perf-master-nightly-all'
     description: 'Purpose of this job is to validate latest vpp build from corresponding branch stored in nexus against verified CSIT codebase of corresponding branch.'
                     xpath-type: 'nodeset'
                     xpath: '//*[@framesize="78" and contains(@tags,"PDR") and @workerthreads="4"]'
 
+
+- job-template:
+    name: 'csit-docs-verify-{stream}'
+
+    project-type: freestyle
+    node: 'verify-ubuntu1604'
+    concurrent: true
+
+    logrotate:
+        daysToKeep: '{build-days-to-keep}'
+        numToKeep: '{build-num-to-keep}'
+        artifactDaysToKeep: '{build-artifact-days-to-keep}'
+        artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: 'jenkins-gerrit-credentials'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
+
+    wrappers:
+        - fdio-infra-wrappers:
+            build-timeout: '{build-timeout}'
+        - fdio-infra-wrappers-non-activity-timeout:
+            build-timeout: 360
+
+    triggers:
+        - gerrit-trigger-patch-submitted:
+            name: '{project}'
+            branch: '{branch}'
+
+    builders:
+        - maven-target:
+            maven-version: 'mvn33'
+            goals: '--version'
+            settings: 'csit-settings'
+            settings-type: cfp
+            global-settings: 'global-settings'
+            global-settings-type: cfp
+        - provide-maven-settings:
+            settings-file: 'csit-settings'
+            global-settings-file: 'global-settings'
+        - shell:
+            !include-raw-escape: include-raw-csit-docs.sh
+
+    publishers:
+        - archive:
+            artifacts: 'resources/tools/doc_gen/csit.docs.tar.gz'
+            allow-empty: 'true'
+            fingerprint: false
+            only-if-success: true
+            default-excludes: false
+
+
+- job-template:
+    name: 'csit-docs-merge-{stream}'
+
+    project-type: freestyle
+    node: 'verify-ubuntu1604'
+    concurrent: true
+
+    logrotate:
+        daysToKeep: '{build-days-to-keep}'
+        numToKeep: '{build-num-to-keep}'
+        artifactDaysToKeep: '{build-artifact-days-to-keep}'
+        artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: 'jenkins-gerrit-credentials'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
+
+    wrappers:
+        - fdio-infra-wrappers:
+            build-timeout: '{build-timeout}'
+        - fdio-infra-wrappers-non-activity-timeout:
+            build-timeout: 360
+
+    triggers:
+        - reverse:
+            jobs: 'csit-vpp-verify-master-weekly'
+            result: 'success'
+        - gerrit:
+            trigger-on:
+                - comment-added-contains-event:
+                    comment-contains-value: 'run-docs'
+            skip-vote:
+                successful: true
+                failed: true
+                unstable: true
+                notbuilt: true
+
+    builders:
+        - maven-target:
+            maven-version: 'mvn33'
+            goals: '--version'
+            settings: 'csit-settings'
+            settings-type: cfp
+            global-settings: 'global-settings'
+            global-settings-type: cfp
+        - provide-maven-settings:
+            settings-file: 'csit-settings'
+            global-settings-file: 'global-settings'
+        - shell:
+            !include-raw-escape: include-raw-csit-docs.sh
+
+    publishers:
+        - archive:
+            artifacts: 'resources/tools/doc_gen/csit.docs.tar.gz'
+            allow-empty: 'true'
+            fingerprint: false
+            only-if-success: true
+            default-excludes: false
+
+
 - parameter:
     name: test-type-parameter
     parameters:
diff --git a/jjb/csit/include-raw-csit-docs.sh b/jjb/csit/include-raw-csit-docs.sh
new file mode 100644 (file)
index 0000000..789af15
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+set -xe -o pipefail
+
+[ "$DOCS_REPO_URL" ] || DOCS_REPO_URL="https://nexus.fd.io/content/sites/site"
+[ "$PROJECT_PATH" ] || PROJECT_PATH=io/fd/csit
+[ "$DOC_FILE" ] || DOC_FILE=csit.docs.tar.gz
+[ "$DOC_DIR" ] || DOC_DIR=resources/tools/doc_gen
+[ "$SITE_DIR" ] || SITE_DIR=${DOC_DIR}/_build
+[ "$MVN" ] || MVN="/opt/apache/maven/bin/mvn"
+
+cd ${DOC_DIR}
+
+chmod +x ./run_doc.sh
+./run_doc.sh
+
+retval=$?
+if [ ${retval} -ne "0" ]; then
+  echo "Documentation generation failed!"
+exit ${retval}
+fi
+
+if [[ ${JOB_NAME} == *merge* ]]; then
+
+  cd ${SITE_DIR}
+
+  cat > pom.xml << EOF
+  <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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>io.fd.csit</groupId>
+    <artifactId>docs</artifactId>
+    <version>1.0.0</version>
+    <packaging>pom</packaging>
+    <properties>
+      <generateReports>false</generateReports>
+    </properties>
+    <build>
+      <extensions>
+        <extension>
+          <groupId>org.apache.maven.wagon</groupId>
+          <artifactId>wagon-webdav-jackrabbit</artifactId>
+          <version>2.9</version>
+        </extension>
+      </extensions>
+    </build>
+    <distributionManagement>
+      <site>
+        <id>fdio-site</id>
+        <url>dav:${DOCS_REPO_URL}/${PROJECT_PATH}/${STREAM}</url>
+      </site>
+    </distributionManagement>
+  </project>
+EOF
+
+  ${MVN} site:site site:deploy -gs "${GLOBAL_SETTINGS_FILE}" -s "${SETTINGS_FILE}" -T 4C
+
+  cd -
+
+fi