Merge "remove test_cases info in project description"
authorMorgan Richomme <morgan.richomme@orange.com>
Wed, 2 Dec 2015 16:35:09 +0000 (16:35 +0000)
committerGerrit Code Review <gerrit@172.30.200.206>
Wed, 2 Dec 2015 16:35:09 +0000 (16:35 +0000)
45 files changed:
.gitignore
docs/etc/conf.py
docs/how-to-use-docs/documentation-example.rst
docs/how-to-use-docs/index.rst
docs/jenkins-job-builder/index.rst
docs/jenkins-job-builder/opnfv-jjb-usage.rst
jjb/apex/apex.yml
jjb/armband/armband.yml
jjb/availability/availability.yml
jjb/bottlenecks/bottlenecks.yml
jjb/compass4nfv/compass4nfv.yml
jjb/conductor/conductor.yml
jjb/copper/copper.yml
jjb/doctor/doctor.yml
jjb/dpacc/dpacc.yml
jjb/fastpathmetrics/fastpathmetrics.yml
jjb/fuel/fuel-deploy-virtual.sh
jjb/fuel/fuel-upload-artifact.sh
jjb/fuel/fuel.yml
jjb/functest/functest.yml
jjb/genesis/genesis-docs.yml
jjb/genesis/genesis-foreman.yml
jjb/genesis/genesis-fuel-att.yml
jjb/genesis/genesis-fuel-dell.yml
jjb/genesis/genesis-fuel.yml
jjb/genesis/genesis-juju.yml
jjb/ipv6/ipv6.yml
jjb/kvmfornfv/kvmfornfv.yml
jjb/octopus/octopus.yml
jjb/opnfv/opnfv-docker.yml
jjb/opnfv/opnfv-docs.yml
jjb/oscar/oscar.yml
jjb/ovsnfv/ovsnfv.yml
jjb/parser/parser.yml
jjb/pharos/pharos.yml
jjb/prediction/prediction.yml
jjb/qtip/qtip.yml
jjb/releng-defaults.yaml
jjb/releng-jobs.yaml
jjb/releng-macros.yaml
jjb/storperf/storperf.yml
jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
jjb/vswitchperf/vswitchperf.yml
jjb/yardstick/yardstick.yml
utils/docs-build.sh [new file with mode: 0755]

index 1377554..c23a0d6 100644 (file)
@@ -1 +1,4 @@
 *.swp
+/build/
+/output/
+/releng/
index f42b110..147c50b 100644 (file)
@@ -1,15 +1,13 @@
 '''
-Base configuration file for sphinx-build.
+Base configuration file for building OPNFV docs
 
 You can override this configuration by putting 'conf.py' in the document
-directory (e.g. how-to-use-docs/conf.py). If there is no 'conf.py' in the
-document directory, this file will be copied to that directory before the
-document builder jobs in 'opnfv-docs-verify' and 'opnfv-docs-merge'.
-The logo image (opnfv-logo.png) will be also copied from
-docs/etc/opnfv-logo.png during the build jobs.
-'''
+directory (e.g. docs/how-to-use-docs/conf.py). If there is no 'conf.py'
+in the document directory, this file will be copied to that directory
+before the document builder jobs ('opnfv-docs-verify' and 'opnfv-docs-merge').
 
-import datetime
+See https://wiki.opnfv.org/documentation/tools .
+'''
 
 needs_sphinx = '1.3'
 master_doc = 'index'
@@ -19,9 +17,5 @@ html_use_index = False
 numfig = True
 html_logo = 'opnfv-logo.png'
 
-latex_elements = {'printindex': ''}
+latex_domain_indices = False
 latex_logo = 'opnfv-logo.png'
-
-copyright = u'%s, OPNFV' % datetime.date.today().year
-version = u'1.0.0'
-release = u'1.0.0'
index e18ce59..5fc2b14 100644 (file)
+==================================================
 How to create documentation for your OPNFV project
 ==================================================
 
-this is the directory structure of the docs/ directory that can be found in the root of your project directory
+Directory Structure
+===================
+
+This is the directory structure of the docs/ directory which have to be placed
+in the root of your project directory.
 
 .. code-block:: bash
 
-    ./etc
-    ./etc/opnfv-logo.png
-    ./etc/conf.py
-    ./how-to-use-docs
     ./how-to-use-docs/documentation-example.rst
     ./how-to-use-docs/index.rst
 
-To create your own documentation, Create any number of directories (depending on your need) and place in each of them an index.rst.
-This index file must refence your other rst files.
+To create your own document, create any number of directories (depending
+on your need, e.g. manual) under the docs/ and place an index.rst in each
+directories.
+The depth of all directory should be one, so that you can make sure that
+all directory names are unique. If you want to have set of all documents in
+your repo, create new ``docs/all/index.rst`` and list document links in OPNFV
+artifact server (artifact.opnfv.org) instead of including all other rst files
+or having ``docs/index.rst``, in order to avoid having duplicated contents in
+your documents.
+
+Note:
+You may have "docs/how-to-use-docs/" in you project repo. You can delete it,
+since it is sample and master version is stored in releng repo.
+
+Index File
+==========
+
+This index file must refence your other rst files in that directory.
+
+Here is an example index.rst :
+
+.. code-block:: bash
+
+    *******************
+    Documentation Title
+    *******************
+
+    .. toctree::
+       :numbered:
+       :maxdepth: 2
+
+       documentation-example.rst
 
-* Here is an example index.rst
+Source Files
+============
+
+Document source files have to be written in reStructuredText format (rst).
+Each file would be build as an html page and a chapter in PDF.
+
+Here is an example source rst file :
 
 .. code-block:: bash
 
-  =====================
-  Example Documentation
-  =====================
+    =============
+    Chapter Title
+    =============
 
-  Contents:
+    Section Title
+    =============
 
-  .. toctree::
-     :numbered:
-     :maxdepth: 4
+    Hello!
 
-     documentation-example.rst
+Writing RST Markdown
+====================
 
-  ..
-      Leave these at the bottom of 'index.rst' file
+See http://sphinx-doc.org/rest.html .
 
-  Revision: _sha1_
+You can add dedicated contents by using 'only' directive with build type
+('html' and 'pdf') for OPNFV document
 
-  Build date: |today|
+Example :
 
+.. code-block:: bash
 
-The Sphinx Build
-================
+    .. only:: html
+        This line will be shown only in html version.
 
-When you push documentation changes to gerrit a jenkins job will create html documentation.
+Configuration
+=============
 
-* Verify Jobs
+If you need to change the default configuration for document build, create
+new conf.py in the document directory (e.g. 'docs/how-to-use-docs/conf.py')
+that will be used in build process instead of default for OPNFV document
+build. The OPNFV default configuration can be found in releng repo
+(see `conf.py`_).
 
-For verify jobs a link to the documentation will show up as a comment in gerrit for you to see the result.
+.. _conf.py:
+    https://gerrit.opnfv.org/gerrit/gitweb?p=releng.git;a=blob;f=docs/etc/conf.py;
 
-* Merge jobs
+In the build process, the following parameters are automatically added if they
+are not set in the conf.py .
 
-Once you are happy with the look of your documentation you can submit the patchset the merge job will
-copy the output of each documentation directory to http://artifacts.opnfv.org/$project/docs/$name_of_your_folder/index.html
+* **release**, **version** : ``git last tag name`` (``git last commit hash``)
+* **project** : ``git repo name``
+* **copyright** : ``year``, OPNFV
+* **latex_documents** (set of pdf configuration) :
+  [('index', '``document directory name``.tex',
+  '``document title in index.rst``', 'OPNFV', 'manual'),]
 
-Here are some quick examples of how to use rst markup
+See http://sphinx-doc.org/config.html to learn sphinx configuration.
 
-This is a headline::
+Note: you can leave the file path for OPNFV logo image which will be prepared
+before each document build.
 
-  here is some code, note that it is indented
+Versioning
+==========
 
-links are easy to add: Here is a link to sphinx, the tool that we are using to generate documetation http://sphinx-doc.org/
+The relevant release and version information will be added to your documents
+by using tags from your project's git repository.
+The tags will be applied by Releng Project.
 
-* Bulleted Items
+Testing
+=======
 
-  **this will be bold**
+You can test document build in your laptop by using build script which is
+used in document build jobs:
 
 .. code-block:: bash
 
-  echo "Heres is a code block with bash syntax highlighting"
+    $ cd /loacal/repo/path/to/project
+    $ git clone ssh://gerrit.opnfv.org:29418/releng
+    $ ./releng/utils/docs-build.sh
+
+Then, you can see docs in output directory if build succeeded.
+
+This script will generate files in 'build' and 'output'. You should consider
+to add the following entries in '.gitignore' file, so that git can ignore
+built files.
+
+.. code-block:: bash
+
+    /build/
+    /output/
+    /releng/
+
+Verify Jobs
+===========
+
+The verify job name is **opnfv-docs-verify**.
+
+When you send document changes to gerrit, jenkins will create your documents
+in HTML and PDF formats to verify that new document can be built successfully.
+Please check the jenkins log and artifact carefully.
+You can improve your document even though if the build job succeeded.
+
+Documents will be uploaded to
+``http://artifacts.opnfv.org/review/<Change Number>/`` for review.
+Those documents will be replaced if you update the change by sending new
+patch set to gerrit, and deleted after the change is merged.
+Document link(s) can be found in your change page on gerrit as a review
+comment.
+
+Note:
+Currently, the job reports 'SUCCESS' as result of document build even if the
+PDF creation failed. This is a provisional workaround, since many projects are
+not ready for PDF creation yet.
+
+Merge Jobs
+==========
+
+The merge job name is **opnfv-docs-merge**.
+
+Once you are happy with the look of your documentation, you can submit the
+change. Then, the merge job will upload latest build documents to
+``http://artifacts.opnfv.org/<Project Name>/docs/`` .
+You can put links in your project wiki page, so that everyone can see the
+latest document always.
index 0965eb3..8e4dbd2 100644 (file)
@@ -1,19 +1,12 @@
 ..
-    This is new template created on Thu Nov 26 16:18:09 JST 2015
+    This is new template created on Nov 27, 2015.
 
-=====================
+*********************
 Example Documentation
-=====================
+*********************
 
 .. toctree::
    :numbered:
-   :maxdepth: 4
+   :maxdepth: 2
 
    documentation-example.rst
-
-..
-    Leave these at the bottom of 'index.rst' file
-
-Revision: _sha1_
-
-Build date: |today|
index f8f5683..b85b132 100644 (file)
@@ -1,13 +1,9 @@
-===========================
+***************************
 Release Engineering Project
-===========================
+***************************
 
 .. toctree::
    :numbered:
-   :maxdepth: 8
+   :maxdepth: 2
 
    opnfv-jjb-usage.rst
-
-Revision: _sha1_
-
-Build date: |today|
index 4aecc6d..7daacaf 100644 (file)
@@ -1,5 +1,6 @@
+===========================================
 Creating/Configuring/Verifying Jenkins Jobs
-============================================
+===========================================
 
 Clone the repo::
 
index cb0a0f3..b00674b 100644 (file)
@@ -3,6 +3,9 @@
     jobs:
         - 'apex-verify-{stream}'
         - 'apex-merge-{stream}'
+        - 'apex-build-{stream}'
+        - 'apex-deploy-virtual-{stream}'
+        - 'apex-deploy-baremetal-{stream}'
         - 'apex-daily-{stream}'
 
     # stream:    branch with - in place of / (eg. stable-arno)
@@ -21,8 +24,6 @@
 
     node: opnfv-jump-1
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
                   - compare-type: ANT
                     pattern: 'docs/**'
 
+    properties:
+        - build-blocker:
+            use-build-blocker: true
+            blocking-jobs:
+                - "apex-daily.*"
+
     builders:
         - 'apex-build'
         - 'apex-deploy-virtual'
 
     node: opnfv-jump-1
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - apex-parameter:
             gs-pathname: '{gs-pathname}'
         - 'apex-workspace-cleanup'
 
 - job-template:
-    name: 'apex-daily-{stream}'
+    name: 'apex-build-{stream}'
 
-    # Job template for daily builders
+    # Job template for builds
     #
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
 
     disabled: false
 
-    project-type: freestyle
-
-    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}'
         - 'apex-deploy-virtual'
         - 'apex-upload-artifact'
         - 'apex-workspace-cleanup'
+
+- job-template:
+    name: 'apex-deploy-virtual-{stream}'
+
+    # Job template for virtual deployment
+    #
+    # Required Variables:
+    #     stream:    branch with - in place of / (eg. stable)
+    #     branch:    branch (eg. stable)
+    node: opnfv-jump-1
+
+    disabled: false
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - apex-parameter:
+            gs-pathname: '{gs-pathname}'
+            flags: '{flags}'
+
+    builders:
+        - 'apex-deploy-virtual'
+        - 'apex-workspace-cleanup'
+
+- job-template:
+    name: 'apex-deploy-baremetal-{stream}'
+
+    # Job template for baremetal deployment
+    #
+    # Required Variables:
+    #     stream:    branch with - in place of / (eg. stable)
+    #     branch:    branch (eg. stable)
+    node: opnfv-jump-1
+
+    disabled: true
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - apex-parameter:
+            gs-pathname: '{gs-pathname}'
+            flags: '{flags}'
+
+    builders:
+        - 'apex-workspace-cleanup'
+
+- job-template:
+    name: 'apex-daily-{stream}'
+
+    # Job template for daily build
+    #
+    # Required Variables:
+    #     stream:    branch with - in place of / (eg. stable)
+    #     branch:    branch (eg. stable)
+    node: opnfv-jump-1
+
+    disabled: false
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - apex-parameter:
+            gs-pathname: '{gs-pathname}'
+            flags: '{flags}'
+
+    properties:
+        - build-blocker:
+            use-build-blocker: true
+            blocking-jobs:
+                - "apex-daily.*"
+    builders:
+        - trigger-builds:
+          - project: 'apex-build-{stream}'
+            git-revision: true
+            block: true
+        - trigger-builds:
+          - project: 'apex-deploy-virtual-{stream}'
+            git-revision: true
+            block: true
+        - trigger-builds:
+          - project: 'apex-deploy-baremetal-{stream}'
         - trigger-builds:
           - project: 'functest-apex-{stream}'
             block: true
 - parameter:
     name: apex-parameter
     parameters:
+        - string:
+            name: ARTIFACT_NAME
+            default: ''
+            description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact"
         - string:
             name: BUILD_DIRECTORY
             default: $WORKSPACE/build_output
             echo "--------------------------------------------------------"
             echo
 
-            # source the file so we get OPNFV vars
+            if [[ -z "$ARTIFACT_NAME" ]]; then
+                # if artifact name is passed the pull a
+                # specific artifact from artifacts.opnfv.org
+                RPM_INSTALL_PATH=$GS_URL/$ARTIFACT_NAME
+            else
+                if [[ -f opnfv.properties ]]; then
+                    # if opnfv.properties exists then use the
+                    # local build. Source the file so we get local OPNFV vars
+                    source opnfv.properties
+                    RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL)
+                else
+                    # no opnfv.properties means use the latest from artifacts.opnfv.org
+                    # get the latest.properties to get the link to the latest artifact
+                    curl -s -o $WORKSPACE/opnfv.properties http://$GS_URL/latest.properties
+                    [[ -f opnfv.properties ]] || exit 1
+                    # source the file so we get OPNFV vars
+                    source opnfv.properties
+                    RPM_INSTALL_PATH=$RPM_URL
+                fi
+            fi
+
             source opnfv.properties
             RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL)
 
index 81710d2..cb5dc95 100644 (file)
@@ -18,8 +18,6 @@
 - job-template:
     name: armband-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'armband-daily-{stream}'
 
-    node: master
-
     # Job template for daily builders
     #
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
@@ -80,8 +69,6 @@
 
     node: ericsson-build
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'armband-merge'
 
-    node: master
-
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
index 6bb068b..741fd82 100644 (file)
@@ -18,8 +18,6 @@
 - job-template:
     name: availability-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
-    node: master
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
 - job-template:
     name: 'availability-verify'
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #
     # This job's purpose is to update all the JJB
 
-    node: master
-
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
         - shell:
              !include-raw docu-build.sh
 
-
-
-
-
-
index 049a51e..b2d74eb 100644 (file)
@@ -6,11 +6,20 @@
     jobs:
         - 'bottlenecks-test'
         - 'bottlenecks-verify'
-        - 'bottlenecks-daily-{stream}'
         - 'bottlenecks-merge'
+        - 'bottlenecks-daily-{installer}-{pod}-{stream}'
 
     # stream:    branch with - in place of / (eg. stable-arno)
     # branch:    branch (eg. stable/arno)
+    pod:
+        - lf:
+            node: 'opnfv-jump-2'
+            installer_type: 'fuel'
+            installer_ip: '10.20.0.2'
+
+    installer:
+        -fuel
+
     stream:
         - master:
             branch: 'master'
@@ -23,8 +32,6 @@
 - job-template:
     name: 'bottlenecks-test'
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
             echo "Hello world from bottlenecks"
 
 - job-template:
-    name: 'bottlenecks-daily-{stream}'
-
-    node: master
-
-    # Job template for daily builders
-    #
-    # Required Variables:
-    #     stream:    branch with - in place of / (eg. stable)
-    #     branch:    branch (eg. stable)
-
-    project-type: freestyle
-    varsetabove: '{somevar}'
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: '{branch}'
-
-    triggers:
-        - timed: 'H H * * *'
-
-    prebuilders:
-        - test-macro
-
-    builders:
-        - shell: |
-            echo "hello world"
-
-    postbuilders:
-        - test-macro
-
-- job-template:
     name: 'bottlenecks-verify'
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'bottlenecks-merge'
 
-    node: master
-
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 40
         - shell: |
             echo "hello world"
 
+- job-template:
+    name: 'bottlenecks-daily-{installer}-{pod}-{stream}'
+
+    disabled: false
+
+    node: '{node}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - '{pod}-parameters'
+        - string:
+            name: POD_NAME
+            default: '{pod}'
+            description: "POD where the job runs"
+        - string:
+            name: INSTALLER_TYPE
+            default: '{installer_type}'
+            description: "Installer name that is used for deployment."
+        - string:
+            name: INSTALLER_IP
+            default: '{installer_ip}'
+            description: "Installer IP."
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    triggers:
+        - 'bottlenecks-trigger-{pod}'
+
+    builders:
+        - 'bottlenecks-fetch-os-creds'
+        - 'run-rubbos-env-preparation'
+        - 'run-rubbos-tools-installation'
+        - 'rubbos-exec'
+
+    publishers:
+        - email:
+            recipients: hongbo.tianhongbo@huawei.com matthew.lijun@huawei.com
+
+###################################
+#builders for bottlenecks project
+###################################
+- builder:
+    name: bottlenecks-fetch-os-creds
+    builders:
+        - shell:
+            !include-raw ../../utils/fetch_os_creds.sh
+
+- builder:
+    name: run-rubbos-env-preparation
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+
+            echo "Bottlenecks: export openstack parameters before rubbos running"
+
+            cd $WORKSPACE
+            ./rubbos/rubbos_scripts/1-1-1/scripts/env_preparation.sh
+
+- builder:
+    name: run-rubbos-tools-installation
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+
+            echo "Bottlenecks: to install tools to run rubbos"
+
+            cd $WORKSPACE
+            ./rubbos/rubbos_scripts/1-1-1/scripts/run.sh
+
+- builder:
+    name: rubbos-exec
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+
+            echo "Bottlenecks: rubbos execution"
+
+            cd $WORKSPACE
+            cd ./rubbos/rubbos_scripts/1-1-1
+            source set_bottlenecks_rubbos_env.sh
+            ssh $CONTROL_HOST
+            ./tmp/CONTROL_rubbos_exec.sh
+
+#######################
+#trigger macros
+#######################
+- trigger:
+    name: 'bottlenecks-trigger-lf'
+    triggers:
+        - timed: '@midnight'
index 0e41e1b..74f9a45 100644 (file)
@@ -39,8 +39,6 @@
 - job-template:
     name: 'compass-verify'
 
-    project-type: freestyle
-
     disabled: false
 
     node: 'huawei-deploy-vm'
@@ -76,7 +74,6 @@
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-
     triggers:
         - gerrit:
             trigger-on:
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
     node: huawei-build
 
     concurrent: true
             max-total: 3
             max-per-node: 1
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
 - job-template:
     name: 'compass-daily-{stream}'
 
-    project-type: freestyle
-
     node: huawei-build
 
     concurrent: true
 - job-template:
     name: 'compass-build-iso'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     concurrent: true
 
     description: "build ppa(using docker) in huawei lab"
 
-    project-type: freestyle
-
     node: huawei-build
 
     concurrent: true
 - job-template:
     name: 'compass-deploy-virtual-{flavor}'
 
-    project-type: freestyle
-
     disabled: false
 
     node: '{node}'
             default: '{conf}'
             description: ""
 
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
         artifactDaysToKeep: -1
         artifactNumToKeep: -1
 
-
     builders:
         - 'builder-compass-ci-preclean-workspace'
         - 'builder-compass-download-artifact'
             allow-empty: 'true'
             fingerprint: true
 
-
 - job-template:
     name: 'compass-deploy-bare-huawei-us'
 
-    project-type: freestyle
-
     disabled: false
 
     node: 'huawei-us-deploy-bare-1'
             allow-empty: 'true'
             fingerprint: true
 
-
 ########################
 # parameter macros
 ########################
             gsutil cp $BUILD_DIRECTORY/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
             gsutil cp $BUILD_DIRECTORY/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
 
-
             echo
             echo "--------------------------------------------------------"
             echo "Done!"
index 01ccdaf..5d1e578 100644 (file)
@@ -18,8 +18,6 @@
 - job-template:
     name: conductor-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
@@ -76,8 +67,6 @@
 - job-template:
     name: 'conductor-verify'
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
index 04d9074..47651b2 100644 (file)
@@ -15,8 +15,6 @@
 - job-template:
     name: copper-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
index ddc6efd..d356b2c 100644 (file)
 
 - job_defaults: &job_defaults
     name: job_defaults
-    node: master
-    project-type: freestyle
-    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}'
index d027f47..0a4e6e4 100644 (file)
@@ -18,8 +18,6 @@
 - job-template:
     name: dpacc-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
@@ -76,8 +67,6 @@
 - job-template:
     name: 'dpacc-verify'
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
index 6c7edaa..1915976 100644 (file)
@@ -18,8 +18,6 @@
 - job-template:
     name: fastpathmetrics-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
@@ -76,8 +67,6 @@
 - job-template:
     name: 'fastpathmetrics-verify'
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
             find .
             echo "merge logic goes here"
 
-
-
-
-
-
index a65395b..626a650 100755 (executable)
@@ -18,7 +18,7 @@ chmod a+x $HOME
 chmod a+x $TMPDIR
 
 # set CONFDIR, BRIDGE
-CONFDIR=$WORKSPACE/deploy/templates/virtual_environment/conf
+CONFDIR=$WORKSPACE/deploy/templates/virtual_environment_noha/conf
 BRIDGE=pxebr
 
 # log info to console
index 2783f2c..b998e6a 100755 (executable)
@@ -14,7 +14,7 @@ source $WORKSPACE/opnfv.properties
 # upload artifact and additional files to google storage
 gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
-if [[ "$JOB_NAME" =~ "daily" ]]; then
+if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
     gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
 elif [[ "$JOB_NAME" =~ "merge" ]]; then
     echo "Uploaded Fuel ISO for a merged change"
index c0ba580..97fc9ed 100644 (file)
@@ -30,8 +30,6 @@
 - job-template:
     name: 'fuel-verify-build-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     concurrent: true
@@ -98,8 +96,6 @@
 - job-template:
     name: 'fuel-merge-build-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     concurrent: true
             enabled: true
             max-total: 2
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
 - job-template:
     name: 'fuel-merge-deploy-virtual-{stream}'
 
-    project-type: freestyle
-
     node: fuel-deploy-virtual
 
     concurrent: true
             max-total: 2
             max-per-node: 1
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
 - job-template:
     name: 'fuel-daily-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     disabled: false
             refspec: ''
             branch: '{branch}'
 
-    logrotate:
-        daysToKeep: '{build-days-to-keep}'
-        numToKeep: '{build-num-to-keep}'
-        artifactDaysToKeep: '{build-artifact-days-to-keep}'
-        artifactNumToKeep: '{build-artifact-num-to-keep}'
-
     builders:
         - trigger-builds:
           - project: 'fuel-build-{stream}'
                 build-step-failure-threshold: 'never'
                 failure-threshold: 'never'
                 unstable-threshold: 'FAILURE'
+        - trigger-builds:
+          - project: 'bottlenecks-daily-fuel-lf-{stream}'
+            block: true
+            block-thresholds:
+                build-step-failure-threshold: 'never'
+                failure-threshold: 'never'
+                unstable-threshold: 'FAILURE'
 
     triggers:
         - 'fuel-{stream}-daily-trigger'
 - job-template:
     name: 'fuel-build-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     logrotate:
 - job-template:
     name: 'fuel-deploy-{stream}'
 
-    project-type: freestyle
-
     disabled: false
 
     node: opnfv-jump-2
 - job-template:
     name: 'fuel-lab-reconfig-{stream}'
 
-    project-type: freestyle
-
     disabled: true
 
-    node: master
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
index 47024e2..53da3ee 100644 (file)
@@ -57,8 +57,6 @@
 - job-template:
     name: set-functest-env-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
     builders:
         - 'set-functest-env'
 
-
-
 - job-template:
     name: clean-functest-env-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
     builders:
         - 'functest-cleanup'
 
-
 - job-template:
     name: set-functest-env-{installer}-{stream}
 
-    project-type: freestyle
-
     node: '{node}'
 
     logrotate:
     builders:
         - 'set-functest-env'
 
-
 - job-template:
     name: clean-functest-env-{installer}-{stream}
 
-    project-type: freestyle
-
     node: '{node}'
 
     logrotate:
 - job-template:
     name: functest-openstack-bench-test-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
     builders:
         - 'functest-rally-bench'
 
-
 - job-template:
     name: functest-openstack-tempest-smoke-test-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
 - job-template:
     name: functest-odl-test-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
         - shell: |
         - 'functest-odl'
 
-
 - job-template:
     name: functest-vping-test-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
     builders:
         - 'functest-vping'
 
-
 - job-template:
     name: functest-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     parameters:
 - job-template:
     name: functest-{installer}-{stream}
 
-    project-type: freestyle
-
     node: '{node}'
 
     parameters:
 - job-template:
     name: functest-vims-{installer}-{stream}
 
-    project-type: freestyle
-
     node: '{node}'
 
     parameters:
 - job-template:
     name: 'functest-daily-{stream}'
 
-    node: master
-
     # Job template for daily builders
     #
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
 - job-template:
     name: 'functest-verify-{stream}'
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'functest-merge-{stream}'
 
-    node: master
-
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
             docker exec $container_id $cmd
 
-
 - builder:
     name: set-functest-env
     builders:
             envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP}"
             docker pull opnfv/functest:latest_stable
             echo "Functest: Running docker run command: docker run -i -e $envs opnfv/functest /bin/bash &"
-            docker run -i -e $envs opnfv/functest /bin/bash &
+            docker run -i -e $envs opnfv/functest:latest_stable /bin/bash &
             docker ps -a
             sleep 5
-            container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
+            container_id=$(docker ps | grep 'opnfv/functest:latest_stable' | awk '{print $1}' | head -1)
             echo "Container ID=${container_id}"
             if [ -z ${container_id} ]; then
                 echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing."
             docker start ${container_id}
             sleep 5
             docker ps
-            if [ $(docker ps | grep opnfv/functest | wc -l) == 0 ]; then
+            if [ $(docker ps | grep 'opnfv/functest:latest_stable' | wc -l) == 0 ]; then
                 echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
                 exit 1
             fi
             echo "Executing command inside the docker: ${cmd}"
             docker exec ${container_id} ${cmd}
 
-
 - builder:
     name: functest-vping
     builders:
             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
             docker exec $container_id $cmd
 
-
-
 - builder:
     name: functest-rally-bench
     builders:
             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
             docker exec $container_id $cmd
 
-
 - builder:
     name: functest-vims
     builders:
             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
             docker exec $container_id $cmd
 
-
-
 - builder:
     name: functest-store-results
     builders:
                 docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm
             fi
 
-
             # Remove existing images if exist
             if [[ ! -z $(docker images | grep opnfv/functest) ]]; then
                 echo "Docker images to remove:"
index 7f78337..fa8b35a 100644 (file)
 
     node: gce-opnfv-docker-1
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
 
     node: gce-opnfv-docker-1
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-
     triggers:
         - gerrit:
             trigger-on:
index 69a69d3..1d0bce9 100644 (file)
@@ -37,8 +37,6 @@
 - job-template:
     name: 'genesis-foreman-verify-build-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     concurrent: true
 - job-template:
     name: 'genesis-foreman-merge-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     concurrent: true
             enabled: true
             max-total: 2
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
 - job-template:
     name: 'genesis-foreman-daily-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     disabled: '{obj:disabled}'
 - job-template:
     name: 'genesis-foreman-deploy-runner-{stream}'
 
-    project-type: freestyle
-
     disabled: false
 
-    node: master
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'genesis-foreman-build-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     logrotate:
 - job-template:
     name: 'genesis-foreman-deploy-{stream}'
 
-    project-type: freestyle
-
     disabled: false
 
     node: opnfv-jump-2
 - job-template:
     name: 'genesis-foreman-lab-reconfig-{stream}'
 
-    project-type: freestyle
-
     disabled: false
 
-    node: master
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'genesis-foreman-verify-deploy-virtual-{stream}'
 
-    project-type: freestyle
-
     node: opnfv-jump-1
 
     disabled: true
                     pattern: '{installer}/docs/**'
             dependency-jobs: 'genesis-foreman-verify-build-{stream}'
 
-
     builders:
         - 'foreman-deploy-virtual'
 
index 889bf11..785a569 100644 (file)
@@ -21,8 +21,6 @@
 - job-template:
     name: 'genesis-{installer}-daily-att-{stream}'
 
-    project-type: freestyle
-
     node: att-build
 
     parameters:
     builders:
       - '{installer}-daily-master-att'
 
-
-
 ########################
 # builder macros
 ########################
 
-
 - builder:
     name: fuel-daily-master-att
     builders:
index 7783499..1696529 100644 (file)
@@ -21,8 +21,6 @@
 - job-template:
     name: 'genesis-{installer}-daily-dell-{stream}'
 
-    project-type: freestyle
-
     node: dell-build
 
     parameters:
     builders:
       - '{installer}-daily-master-dell'
 
-
-
 ########################
 # builder macros
 ########################
 
-
 - builder:
       name: fuel-daily-master-dell
       builders:
index 04dcfcd..2ae748d 100644 (file)
@@ -38,8 +38,6 @@
 - job-template:
     name: 'genesis-fuel-verify-build-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     concurrent: true
 - job-template:
     name: 'genesis-fuel-merge-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     concurrent: true
             enabled: true
             max-total: 2
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
 - job-template:
     name: 'genesis-fuel-daily-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     disabled: '{obj:disabled}'
 - job-template:
     name: 'genesis-fuel-deploy-runner-{stream}'
 
-    project-type: freestyle
-
     disabled: false
 
-    node: master
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'genesis-fuel-build-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     logrotate:
 - job-template:
     name: 'genesis-fuel-deploy-{stream}'
 
-    project-type: freestyle
-
     disabled: false
 
     node: opnfv-jump-2
 - job-template:
     name: 'genesis-fuel-lab-reconfig-{stream}'
 
-    project-type: freestyle
-
     disabled: false
 
-    node: master
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'genesis-fuel-verify-deploy-virtual-{stream}'
 
-    project-type: freestyle
-
     disabled: true
 
     node: ericsson-build
index 3ecb74c..3867d4e 100644 (file)
@@ -25,8 +25,6 @@
 - job-template:
     name: 'genesis-juju-verify'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     logrotate:
@@ -77,7 +75,6 @@
                   - compare-type: ANT
                     pattern: 'juju/**'
 
-
     builders:
         - 'juju-verify'
 
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
     node: ericsson-build
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - string:
             name: BUILD_DIRECTORY
 - job-template:
     name: 'genesis-juju-daily-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     parameters:
index 7d19830..cfab891 100644 (file)
@@ -18,8 +18,6 @@
 - job-template:
     name: ipv6-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
@@ -76,8 +67,6 @@
 - job-template:
     name: 'ipv6-verify'
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
             find .
             echo "merge logic goes here"
 
-
-
-
-
-
index 69dad77..41718ac 100644 (file)
@@ -17,8 +17,6 @@
 
     node: ericsson-build
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 
     node: ericsson-build
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
index 5f77e8a..3e8bf69 100644 (file)
@@ -28,8 +28,6 @@
 - job-template:
     name: octopus-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'octopus-daily-{stream}'
 
-    node: master
-
     # Job template for daily builders
     #
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
 - job-template:
     name: 'octopus-verify-{stream}'
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'octopus-merge-{stream}'
 
-    node: master
-
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
             refspec: ''
             choosing-strategy: 'default'
 
-
     triggers:
         - gerrit:
             trigger-on:
         - shell:
             !include-raw ../opnfvdocs/docu-build.sh
 
-
 ########################
 ## parameter macros
 #########################
index dfff050..46a0523 100644 (file)
@@ -23,8 +23,6 @@
 - job-template:
     name: '{project}-docker-build-push-{stream}'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     disabled: false
             refspec: ''
             branch: '{branch}'
 
-    logrotate:
-        daysToKeep: '{build-days-to-keep}'
-        numToKeep: '{build-num-to-keep}'
-        artifactDaysToKeep: '{build-artifact-days-to-keep}'
-        artifactNumToKeep: '{build-artifact-num-to-keep}'
-
     builders:
         - shell:
             !include-raw ./opnfv-docker.sh
index f7e4c5b..bae9c40 100644 (file)
 - job-template:
     name: 'opnfv-docs-verify'
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'opnfv-docs-merge'
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
@@ -97,7 +89,6 @@
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-
     triggers:
         - gerrit:
             trigger-on:
index 9beb575..fb8a23d 100644 (file)
@@ -18,8 +18,6 @@
 - job-template:
     name: oscar-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
@@ -76,8 +67,6 @@
 - job-template:
     name: 'oscar-verify'
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
index 1c5810a..224a81f 100644 (file)
@@ -16,8 +16,6 @@
 
     node: opnfv-build
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 
     node: opnfv-build
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
             cd $WORKSPACE/ci
             ./build.sh
 
-
 - job-template:
     name: 'ovsnfv-daily-{stream}'
 
 
     disabled: true
 
-    project-type: freestyle
-
-    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}'
index 22324c5..05addcb 100644 (file)
@@ -18,8 +18,6 @@
 - job-template:
     name: parser-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'parser-daily-{stream}'
 
-    node: master
-
     # Job template for daily builders
     #
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
     logrotate:
 - job-template:
     name: 'parser-verify'
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'parser-merge'
 
-    node: master
-
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
             refspec: ''
             choosing-strategy: 'default'
 
-
     triggers:
         - gerrit:
             trigger-on:
index ab6705b..f596d6a 100644 (file)
@@ -4,10 +4,10 @@
 - project:
     name: pharos
     jobs:
-        - 'pharos-test'
         - 'pharos-daily-{stream}'
         - 'pharos-merge-{stream}'
         - 'pharos-verify-{stream}'
+        - 'pharos-maas-pilot-{stream}'
 
     # stream:    branch with - in place of / (eg. stable-arno)
     # branch:    branch (eg. stable/arno)
 ##############################
 # job template
 ##############################
-- job-template:
-    name: pharos-test
-
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
-
-    builders:
-        - shell: |
-            echo "Hello world from pharos"
-
 - job-template:
     name: 'pharos-daily-{stream}'
 
-    node: master
-
     # Job template for daily builders
     #
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
 - job-template:
     name: 'pharos-verify-{stream}'
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'pharos-merge-{stream}'
 
-    node: master
-
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
         - shell:
             !include-raw ../opnfvdocs/docu-build.sh
 
+- job-template:
+    name: 'pharos-maas-pilot-{stream}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    triggers:
+       - pollscm: '@midnight'
+
+    builders:
+        - shell:
+            echo "Hello World"
 ########################
 # parameter macros
 ########################
index 072affd..d47392c 100644 (file)
@@ -18,8 +18,6 @@
 - job-template:
     name: prediction-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'prediction-daily-{stream}'
 
-    node: master
-
     # Job template for daily builders
     #
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
     logrotate:
 - job-template:
     name: 'prediction-verify'
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'prediction-merge'
 
-    node: master
-
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
             refspec: ''
             choosing-strategy: 'default'
 
-
     triggers:
         - gerrit:
             trigger-on:
index 0b863f7..8abde90 100644 (file)
@@ -8,18 +8,15 @@
         - 'qtip-dhrystone-serial-{pod}'
         - 'qtip-ssl-parallel-{pod}'
 
-
     # stream:    branch with - in place of / (eg. stable-helium)
     # branch:    branch (eg. stable/helium)
 
-
     pod:
         - dell-build:
            node: 'dell-us-testing-bm-1'
            installer_type: 'fuel'
            installer_ip: '10.20.0.2'
 
-
     stream:
         - master:
             branch: 'master'
@@ -30,8 +27,6 @@
 - job-template:
     name: qtip-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
 
-
     scm:
         - git-scm:
             credentials-id: '{ssh-credentials}'
@@ -89,8 +76,6 @@
 - job-template:
     name: 'qtip-verify'
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
 - job-template:
     name: 'qtip-dhrystone-serial-{pod}'
 
-    project-type: freestyle
-
     disabled: false
 
     node: '{node}'
 - job-template:
     name: 'qtip-ssl-parallel-{pod}'
 
-
-    project-type: freestyle
-
     disabled: false
 
     node: '{node}'
             echo "Running QTIP dhrystone with First Test case"
             python qtip.py -s compute -b dhrystone_serial.yaml
 
-
 - builder:
     name: qtip-ssl-parallel
 
             echo "Running QTIP dhrystone with Second Test case"
             python qtip.py -s compute -b ssl_parallel.yaml
 
-
 - builder:
     name: qtip-fetch-os-cred
     builders:
index 3ba2a23..3771472 100644 (file)
@@ -3,13 +3,18 @@
 - defaults:
     name: global
 
-    build-days-to-keep: 30
-    build-num-to-keep: 40
-    build-artifact-days-to-keep: -1
-    build-artifact-num-to-keep: 5
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 40
+        artifactDaysToKeep: -1
+        artifactNumToKeep: 5
 
     ssh-credentials: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
     wrappers:
         - ssh-agent-credentials:
             users:
                 - '{ssh-credentials}'
+
+    project-type: freestyle
+
+    node: master
index 6194bcd..bd300fd 100644 (file)
@@ -9,10 +9,6 @@
 - job-template:
     name: builder-verify-jjb
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 - job-template:
     name: 'builder-merge'
 
-    node: master
-
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 40
index 3afe848..f9cb952 100644 (file)
     builders:
         - shell: |
             #!/bin/bash -e
-            set -o pipefail
             export PATH=$PATH:/usr/local/bin/
-
-            [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
-
-            _get_title_script="
-            import os
-            from docutils import core, nodes
-            with open('index.rst', 'r') as file:
-                data = file.read()
-            doctree = core.publish_doctree(data,
-                settings_overrides={'report_level': 5,
-                                    'halt_level': 5})
-            if isinstance(doctree[0], nodes.title):
-                title = doctree[0]
-            else:
-                for c in doctree.children:
-                    if isinstance(c, nodes.section):
-                        title = c[0]
-                        break
-            print title.astext()"
-            _git_sha1="$(git rev-parse HEAD)"
-
             git clone ssh://gerrit.opnfv.org:29418/releng
-            [[ -d releng ]]
-
-            find docs/ -name 'index.rst' -printf '%h\n' | while read dir
-            do
-                _name="${dir##*/}"
-                _build="$dir/build"
-                _output="docs/output/$_name"
-
-                echo
-                echo "#################${dir//?/#}"
-                echo "Building DOCS in $dir"
-                echo "#################${dir//?/#}"
-                echo
-
-                sed -i "s/_sha1_/$_git_sha1/g" "$dir/index.rst"
-
-                if [[ ! -f "$dir/conf.py" ]] ; then
-                    cp releng/docs/etc/conf.py "$dir/conf.py"
-                    _title=$(cd $dir; python -c "$_get_title_script")
-                    echo "latex_documents = [('index', '$_name.tex', \"$_title\", 'OPNFV', 'manual'),]" >> "$dir/conf.py"
-                fi
-                cp -f releng/docs/etc/opnfv-logo.png "$dir/opnfv-logo.png"
-
-                mkdir -p "$_output"
-
-                sphinx-build -b html -E "$dir" "$_output"
-
-                # Note: PDF creation may fail in project doc builds.
-                #       We allow this test to be marked as succeeded with
-                #       failure in PDF creation, but leave message to fix it.
-                #       Any failure has to be fixed before B release.
-                {
-                    sphinx-build -b latex -E "$dir" "$_build"
-                    make -C "$_build" LATEXOPTS='--interaction=nonstopmode' all-pdf
-                    mv "$_build/$_name.pdf" "$_output"
-                } || {
-                    _msg="Error: PDF creation for $dir has failed, please fix source rst file(s)."
-                    echo
-                    echo "$_msg"
-                    echo
-                    echo "$_msg" >> gerrit_comment.txt
-                }
-            done
+            GERRIT_COMMENT=gerrit_comment.txt ./releng/utils/docs-build.sh
 
 - builder:
     name: upload-under-review-docs-to-opnfv-artifacts
             export PATH=$PATH:/usr/local/bin/
 
             [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
-            [[ -d docs/output ]]
+            [[ -d output ]]
 
             echo
             echo "###########################"
 
             gs_base="artifacts.opnfv.org/review"
             gs_path="$gs_base/$GERRIT_CHANGE_NUMBER"
-            local_path="docs/$GERRIT_CHANGE_NUMBER"
+            local_path="upload/$GERRIT_CHANGE_NUMBER"
 
-            mv docs/output "$local_path"
+            mkdir -p upload
+            mv output "$local_path"
             gsutil -m cp -r "$local_path" "gs://$gs_base"
 
             if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then
             set -o pipefail
             export PATH=$PATH:/usr/local/bin/
 
-            [[ -d docs/output ]]
+            [[ -d output ]]
 
             echo
             echo "#####################"
                 gs_base="artifacts.opnfv.org/$GERRIT_PROJECT/$GERRIT_BRANCH"
             fi
             gs_path="$gs_base/docs"
-            local_path="docs/docs"
+            local_path="upload/docs"
 
-            mv docs/output "$local_path"
+            mkdir -p upload
+            mv output "$local_path"
             gsutil -m cp -r "$local_path" "gs://$gs_base"
 
             if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then
index 2a3c42a..1b2d406 100644 (file)
@@ -16,9 +16,7 @@
 - job-template:
     name: 'storperf-verify-{stream}'
 
-    node: intel-jp-build-1
-
-    project-type: freestyle
+    node: opnfv-build
 
     logrotate:
         daysToKeep: 30
@@ -65,7 +63,6 @@
         - shell: |
             $WORKSPACE/ci/verify.sh
 
-
 - job-template:
     name: 'storperf-merge-{stream}'
 
     #
     # This job's purpose is to update all the JJB
 
-    node: intel-jp-build-1
-
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
+    node: opnfv-build
 
     parameters:
         - project-parameter:
         - junit:
             results: nosetests.xml
 
-
 - job-template:
     name: 'storperf-daily-{stream}'
 
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
-    node: intel-jp-build-1
+    node: opnfv-build
 
     disabled: true
 
-    project-type: freestyle
-
-    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}'
index 0d7e8b7..1083c3c 100644 (file)
@@ -18,8 +18,6 @@
 - job-template:
     name: vnf_forwarding_graph-test
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
-    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}'
@@ -76,8 +67,6 @@
 - job-template:
     name: 'vnf_forwarding_graph-verify'
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
             find .
             echo "merge logic goes here"
 
-
-
-
-
-
index 9f767ce..9630cdb 100644 (file)
@@ -14,7 +14,6 @@
     project: 'vswitchperf'
     somevar: 'foo'
 
-
 - job-template:
     name: 'vswitchperf-daily-{stream}'
 
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
     node: opnfv-build
 
-    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}'
             max-total: 3
             max-per-node: 2
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
index 5afaaf7..25c16ce 100644 (file)
@@ -30,8 +30,6 @@
 - job-template:
     name: 'yardstick-verify'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     logrotate:
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
     node: ericsson-build
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
 - job-template:
     name: 'yardstick-{installer}-{pod}-{stream}'
 
-    project-type: freestyle
-
     disabled: false
 
     node: '{node}'
diff --git a/utils/docs-build.sh b/utils/docs-build.sh
new file mode 100755 (executable)
index 0000000..bf9ab5b
--- /dev/null
@@ -0,0 +1,124 @@
+#!/bin/bash -e
+
+export PATH=$PATH:/usr/local/bin/
+
+
+SRC_DIR=${SRC_DIR:-docs}
+INDEX_RST=${INDEX_RST:-index.rst}
+BUILD_DIR=${BUILD_DIR:-build}
+OUTPUT_DIR=${OUTPUT_DIR:-output}
+RELENG_DIR=${RELENG_DIR:-releng}
+GERRIT_COMMENT=${GERRIT_COMMENT:-}
+
+get_title_script="
+import os
+from docutils import core, nodes
+
+try:
+    with open('index.rst', 'r') as file:
+        data = file.read()
+    doctree = core.publish_doctree(data,
+        settings_overrides={'report_level': 5,
+                            'halt_level': 5})
+    if isinstance(doctree[0], nodes.title):
+        title = doctree[0]
+    else:
+        for c in doctree.children:
+            if isinstance(c, nodes.section):
+                title = c[0]
+                break
+    print title.astext()
+except:
+    print 'None'"
+revision="$(git rev-parse --short HEAD)"
+rev_full="$(git rev-parse HEAD)"
+version="$(git describe --abbrev=0 2> /dev/null || echo draft) ($revision)"
+project="$(basename $(git rev-parse --show-toplevel))"
+html_notes="\n    Revision: $rev_full\n\n    Build date: |today|"
+default_conf='releng/docs/etc/conf.py'
+opnfv_logo='releng/docs/etc/opnfv-logo.png'
+
+function add_html_notes() {
+    _src="$1"
+    _dir="$2"
+
+    if grep -q -e ' _sha1_' "$_src"/*.rst ; then
+        # TODO: remove this, once old templates were removed from all repos.
+        echo
+        echo "Warn: '_sha1_' was found in $_dir , use the latest document template."
+        echo "      See https://wiki.opnfv.org/documentation/tools ."
+        echo
+        sed -i "s/ _sha1_/ $git_sha1/g" "$_src"/*.rst
+    fi
+    sed -i -e "\$a\\\n.. only:: html\n$html_notes" "$_src"/*.rst
+}
+
+function add_config() {
+    _conf="$1"
+    _param="$2"
+    _val="$3"
+
+    if ! grep -q -e "^$_param = " "$_conf" ; then
+        echo "Adding '$_param' into $_conf ..."
+        echo "$_param = $_val" >> "$_conf"
+    fi
+}
+
+
+if [[ ! -d "$RELENG_DIR" ]] ; then
+    echo "Error: $RELENG_DIR dir not found. See https://wiki.opnfv.org/documentation/tools ."
+    exit 1
+fi
+
+find $SRC_DIR -name $INDEX_RST -printf '%h\n' | while read dir
+do
+    name="${dir##*/}"
+    src="$BUILD_DIR/src/$name"
+    build="$BUILD_DIR/$name"
+    output="$OUTPUT_DIR/$name"
+    conf="$src/conf.py"
+
+    echo
+    echo "#################${dir//?/#}"
+    echo "Building DOCS in $dir"
+    echo "#################${dir//?/#}"
+    echo
+
+    mkdir -p "$BUILD_DIR/src"
+    [[ -e "$src" ]] && rm -rf "$src"
+    cp -r "$dir" "$src"
+
+    add_html_notes "$src" "$dir"
+
+    [[ ! -f "$conf" ]] && cp "$default_conf" "$conf"
+    title=$(cd $src; python -c "$get_title_script")
+    latex_conf="[('index', '$name.tex', \"$title\", 'OPNFV', 'manual'),]"
+    add_config "$conf" 'latex_documents' "$latex_conf"
+    add_config "$conf" 'release' "u'$version'"
+    add_config "$conf" 'version' "u'$version'"
+    add_config "$conf" 'project' "u'$project'"
+    add_config "$conf" 'copyright' "u'$(date +%Y), OPNFV'"
+    cp -f $opnfv_logo "$src/opnfv-logo.png"
+
+    mkdir -p "$output"
+
+    sphinx-build -b html -t html -E "$src" "$output"
+
+    # Note: PDF creation may fail in project doc builds.
+    #       We allow this build job to be marked as succeeded with
+    #       failure in PDF creation, but leave message to fix it.
+    #       Any failure has to be fixed before OPNFV B release.
+    {
+        sphinx-build -b latex -t pdf -E "$src" "$build" && \
+            make -C "$build" LATEXOPTS='--interaction=nonstopmode' all-pdf
+    } && {
+        mv "$build/$name.pdf" "$output"
+    } || {
+        msg="Error: PDF creation for $dir has failed, please fix source rst file(s)."
+        echo
+        echo "$msg"
+        echo
+        [[ -n "$GERRIT_COMMENT" ]] && echo "$msg" >> "$GERRIT_COMMENT"
+    }
+
+done