Job for longbow documentation. 41/10541/6
authorMauro Sardara <msardara+fdio@cisco.com>
Wed, 14 Feb 2018 17:46:13 +0000 (18:46 +0100)
committerMauro Sardara <msardara+fdio@cisco.com>
Wed, 14 Feb 2018 18:07:52 +0000 (19:07 +0100)
Change-Id: Ic14a597d0a9d34d88d0a7b14d9b4644a3e797c45
Signed-off-by: Mauro Sardara <msardara+fdio@cisco.com>
jjb/cicn/cicn.yaml
jjb/cicn/include-raw-cicn-longbow-docs.sh [new file with mode: 0644]

index 5b5faba..2e8f5af 100644 (file)
@@ -3,6 +3,8 @@
     jobs:
         - 'cicn-longbow-verify-{stream}-{os}'
         - 'cicn-longbow-merge-{stream}-{os}'
+        - 'cicn-longbow-docs-verify-{stream}'
+        - 'cicn-longbow-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
@@ -22,6 +24,8 @@
     jobs:
         - 'cicn-libparc-verify-{stream}-{os}'
         - 'cicn-libparc-merge-{stream}-{os}'
+        # - 'cicn-libparc-docs-verify-{stream}'
+        # - 'cicn-libparc-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
@@ -41,6 +45,8 @@
     jobs:
         - 'cicn-libccnx-common-verify-{stream}-{os}'
         - 'cicn-libccnx-common-merge-{stream}-{os}'
+        # - 'cicn-libccnx-common-docs-verify-{stream}'
+        # - 'cicn-libccnx-common-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
@@ -60,6 +66,8 @@
     jobs:
         - 'cicn-libccnx-transport-rta-verify-{stream}-{os}'
         - 'cicn-libccnx-transport-rta-merge-{stream}-{os}'
+        # - 'cicn-libccnx-transport-rta-docs-verify-{stream}'
+        # - 'cicn-libccnx-transport-rta-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
@@ -79,6 +87,8 @@
     jobs:
         - 'cicn-libccnx-portal-verify-{stream}-{os}'
         - 'cicn-libccnx-portal-merge-{stream}-{os}'
+        # - 'cicn-libccnx-portal-docs-verify-{stream}'
+        # - 'cicn-libccnx-portal-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
     jobs:
         - 'cicn-libicnet-verify-{stream}-{os}'
         - 'cicn-libicnet-merge-{stream}-{os}'
+#        - 'cicn-libicnet-docs-verify-{stream}'
+#        - 'cicn-libicnet-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
     jobs:
         - 'cicn-metis-verify-{stream}-{os}'
         - 'cicn-metis-merge-{stream}-{os}'
+        # - 'cicn-metis-docs-verify-{stream}'
+        # - 'cicn-metis-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
     jobs:
         - 'cicn-http-server-verify-{stream}-{os}'
         - 'cicn-http-server-merge-{stream}-{os}'
+#        - 'cicn-http-server-docs-verify-{stream}'
+#        - 'cicn-http-server-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
     jobs:
         - 'cicn-vpp-plugin-verify-{stream}-{os}'
         - 'cicn-vpp-plugin-merge-{stream}-{os}'
+#        - 'cicn-vpp-plugin-docs-verify-{stream}'
+#        - 'cicn-vpp-plugin-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
     jobs:
         - 'cicn-viper-verify-{stream}-{os}'
         - 'cicn-viper-merge-{stream}-{os}'
+#        - 'cicn-viper-docs-verify-{stream}'
+#        - 'cicn-viper-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
     jobs:
         - 'cicn-radio-emulators-verify-{stream}-{os}'
         - 'cicn-radio-emulators-merge-{stream}-{os}'
+#        - 'cicn-radio-emulators-docs-verify-{stream}'
+#        - 'cicn-radio-emulators-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
     jobs:
         - 'cicn-android-sdk-verify-{stream}-{os}'
         - 'cicn-android-sdk-merge-{stream}-{os}'
+#        - 'cicn-android-sdk-docs-verify-{stream}'
+#        - 'cicn-android-sdk-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
     jobs:
         - 'cicn-vicn-verify-{stream}-{os}'
         - 'cicn-vicn-merge-{stream}-{os}'
+#        - 'cicn-vicn-docs-verify-{stream}'
+#        - 'cicn-vicn-docs-merge-{stream}'
     project: 'cicn'
     os:
         - ubuntu1604:
         - fdio-infra-shiplogs:
             maven-version: 'mvn33-new'
 
+- job-template:
+    name: 'cicn-longbow-docs-merge-{stream}'
+
+    project-type: freestyle
+    node: ubuntu1604-basebuild-8c-32g
+    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}'
+        - os-parameter:
+            os: 'ubuntu1604'
+        - maven-exec:
+            maven-version: 'mvn33-new'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: 'jenkins-gerrit-credentials'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    wrappers:
+        - fdio-infra-wrappers:
+            build-timeout: '{build-timeout}'
+
+    triggers:
+        - reverse:
+            jobs: 'cicn-longbow-merge-{stream}-ubuntu1604'
+            result: 'success'
+        - gerrit:
+            server-name: 'Primary'
+            trigger-on:
+                - comment-added-contains-event:
+                    comment-contains-value: 'run-docs'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: '{project}'
+                branches:
+                  - branch-compare-type: 'ANT'
+                    branch-pattern: '**/{branch}'
+            skip-vote:
+                successful: true
+                failed: true
+                unstable: true
+                notbuilt: true
+
+    builders:
+        - maven-target:
+            maven-version: 'mvn33-new'
+            goals: '--version'
+            settings: 'vpp-settings'
+            settings-type: cfp
+            global-settings: 'global-settings'
+            global-settings-type: cfp
+        - provide-maven-settings:
+            settings-file: 'cicn-settings'
+            global-settings-file: 'global-settings'
+        - shell:
+            !include-raw-escape:
+                - include-raw-cicn-longbow-docs.sh
+    publishers:
+        - archive:
+            artifacts: 'build/documentation/*.tar'
+            allow-empty: 'true'
+            fingerprint: false
+            only-if-success: true
+            default-excludes: false
+        - fdio-infra-shiplogs:
+            maven-version: 'mvn33-new'
+
+- job-template:
+    name: 'cicn-longbow-docs-verify-{stream}'
+
+    project-type: freestyle
+    node: ubuntu1604-basebuild-8c-32g
+    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}'
+        - os-parameter:
+            os: 'ubuntu1604'
+        - maven-exec:
+            maven-version: 'mvn33-new'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: 'jenkins-gerrit-credentials'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    wrappers:
+        - fdio-infra-wrappers:
+            build-timeout: '{build-timeout}'
+
+    triggers:
+        - gerrit-trigger-patch-submitted:
+            name: '{project}'
+            branch: '{branch}'
+
+    builders:
+        - maven-target:
+            maven-version: 'mvn33-new'
+            goals: '--version'
+            settings: 'vpp-settings'
+            settings-type: cfp
+            global-settings: 'global-settings'
+            global-settings-type: cfp
+        - provide-maven-settings:
+            settings-file: 'cicn-settings'
+            global-settings-file: 'global-settings'
+        - shell:
+            !include-raw-escape:
+                - include-raw-cicn-longbow-docs.sh
+    publishers:
+        - archive:
+            artifacts: 'build/documentation/*.tar'
+            allow-empty: 'true'
+            fingerprint: false
+            only-if-success: true
+            default-excludes: false
+        - fdio-infra-shiplogs:
+            maven-version: 'mvn33-new'
+
 - job-template:
     name: 'cicn-libparc-merge-{stream}-{os}'
 
diff --git a/jjb/cicn/include-raw-cicn-longbow-docs.sh b/jjb/cicn/include-raw-cicn-longbow-docs.sh
new file mode 100644 (file)
index 0000000..1d8215f
--- /dev/null
@@ -0,0 +1,73 @@
+#!/bin/bash
+set -xe -o pipefail
+
+SCRIPT_PATH=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P )
+
+update_cmake_repo() {
+    cat /etc/resolv.conf
+    echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf
+    cat /etc/resolv.conf
+
+    CMAKE_INSTALL_SCRIPT_URL="https://cmake.org/files/v3.8/cmake-3.8.0-Linux-x86_64.sh"
+    CMAKE_INSTALL_SCRIPT="/tmp/install_cmake.sh"
+    curl ${CMAKE_INSTALL_SCRIPT_URL} > ${CMAKE_INSTALL_SCRIPT}
+
+    sudo mkdir -p /opt/cmake
+    sudo bash ${CMAKE_INSTALL_SCRIPT} --skip-license --prefix=/opt/cmake
+    export PATH=/opt/cmake/bin:$PATH
+}
+
+[ "$DOCS_REPO_URL" ] || DOCS_REPO_URL="https://nexus.fd.io/content/sites/site"
+[ "$PROJECT_PATH" ] || PROJECT_PATH="io/fd/cicn/longbow"
+[ "$DOC_FILE" ] || DOC_FILE="cicn.longbow.docs.zip"
+[ "$DOC_DIR" ] || DOC_DIR="build/documentation/generated-documentation/html"
+[ "$SITE_DIR" ] || SITE_DIR="build/documentation/deploy-site/"
+[ "$RESOURCES_DIR" ] || RESOURCES_DIR=${SITE_DIR}/src/site/resources
+[ "$MVN" ] || MVN="/opt/apache/maven/bin/mvn"
+[ "$VERSION" ] || VERSION=$(bash scripts/version rpm-version)
+
+update_cmake_repo
+mkdir -p build
+pushd build
+cmake ..
+make documentation
+popd
+
+if [[ ${JOB_NAME} == *merge* ]]; then
+  mkdir -p $(dirname ${RESOURCES_DIR})
+  mv -f ${DOC_DIR} ${RESOURCES_DIR}
+  cd ${SITE_DIR}
+  find . -type f '(' -name '*.md5' -o -name '*.dot' -o -name '*.map' ')' -delete
+  cat > pom.xml <<EOF
+ 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.vpp</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}/${VERSION}</url>
+      </site>
+    </distributionManagement>
+  </project>
+EOF
+  ${MVN} site:site site:deploy -gs "${GLOBAL_SETTINGS_FILE}" -s "${SETTINGS_FILE}" -T 4C
+  cd -
+fi