Adding initial docs, script and logic for releng project 20/1320/4
authorAric Gardner <agardner@linuxfoundation.org>
Wed, 26 Aug 2015 20:00:02 +0000 (16:00 -0400)
committerAric Gardner <agardner@linuxfoundation.org>
Wed, 26 Aug 2015 20:07:17 +0000 (16:07 -0400)
Change-Id: Ie5bebf61b5f539d31c4c270b3f86b68b7a3ff2c9
Signed-off-by: Aric Gardner <agardner@linuxfoundation.org>
docs/etc/conf.py [new file with mode: 0644]
docs/jenkins-job-builder/index.rst [new file with mode: 0644]
docs/jenkins-job-builder/opnfv-jjb-usage.rst [new file with mode: 0644]
jjb/releng/docu-build-new.sh [new file with mode: 0755]
jjb/releng/releng.yml

diff --git a/docs/etc/conf.py b/docs/etc/conf.py
new file mode 100644 (file)
index 0000000..486983f
--- /dev/null
@@ -0,0 +1,34 @@
+import datetime
+import sys
+import os
+
+try:
+    __import__('imp').find_module('sphinx.ext.numfig')
+    extensions = ['sphinx.ext.numfig']
+except ImportError:
+    # 'pip install sphinx_numfig'
+    extensions = ['sphinx_numfig']
+
+# numfig:
+number_figures = True
+figure_caption_prefix = "Fig."
+
+source_suffix = '.rst'
+master_doc = 'index'
+pygments_style = 'sphinx'
+html_use_index = False
+
+pdf_documents = [('index', u'Copper', u'Copper Project', u'OPNFV')]
+pdf_fit_mode = "shrink"
+pdf_stylesheets = ['sphinx','kerning','a4']
+#latex_domain_indices = False
+#latex_use_modindex = False
+
+latex_elements = {
+    'printindex': '',
+}
+
+project = u'Copper: Virtual Infrastructure Deployment Policies'
+copyright = u'%s, OPNFV' % datetime.date.today().year
+version = u'1.0.0'
+release = u'1.0.0'
\ No newline at end of file
diff --git a/docs/jenkins-job-builder/index.rst b/docs/jenkins-job-builder/index.rst
new file mode 100644 (file)
index 0000000..c3dbbb8
--- /dev/null
@@ -0,0 +1,23 @@
+.. OPNFV Release Engineering documentation, created by
+   sphinx-quickstart on Tue Jun  9 19:12:31 2015.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Release Engineering Project
+==================
+
+Contents:
+
+.. toctree::
+   :numbered:
+   :maxdepth: 8
+
+   opnfv-jjb-usage.rst
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
diff --git a/docs/jenkins-job-builder/opnfv-jjb-usage.rst b/docs/jenkins-job-builder/opnfv-jjb-usage.rst
new file mode 100644 (file)
index 0000000..aabfda7
--- /dev/null
@@ -0,0 +1,171 @@
+Creating/Configuring/Verifying Jenkins Jobs
+============================================
+
+Clone the repo::
+
+ git clone ssh://YOU@gerrit.opnfv.org:29418/releng
+
+make changes::
+
+ git commit -sv
+ git review
+ remote: Resolving deltas: 100% (3/3)
+ remote: Processing changes: new: 1, refs: 1, done
+ remote:
+ remote: New Changes:
+ remote:   https://gerrit.opnfv.org/gerrit/51
+ remote:
+ To ssh://agardner@gerrit.opnfv.org:29418/releng.git
+  * [new branch]      HEAD -> refs/publish/master
+
+Follow the link to gerrit https://gerrit.opnfv.org/gerrit/51 in a few moments the verify job will have completed and you will see Verified +1 jenkins-ci in the gerrit ui.
+
+If the changes pass the verify job https://build.opnfv.org/ci/view/builder/job/builder-verify-jjb/ The patch can be submitited by a committer.
+
+Job Types
+
+* Verify Job
+
+ * Trigger: **recheck** or **reverify**
+
+* Merge Job
+
+ * Trigger: **remerge**
+
+The verify and merge jobs are retriggerable in Gerrit by simply leaving a comment with one of the keywords listed above. This is useful in case you need to re-run one of those jobs in case if build issues or something changed with the environment.
+
+You can add below persons as reviewers to your patch in order to get it reviewed and submitted.
+
+* Ulrich Kleber (Ulrich.Kleber@huawei.com)
+* Fatih Degirmenci (fatih.degirmenci@ericsson.com)
+* Xinyu Zhao(Jerry) (zhaoxinyu@huawei.com)
+
+Or just email a request for submission to opnfv-helpdesk@rt.linuxfoundation.org
+
+The Current merge and verify jobs for jenkins job builder as pulled from the repo::
+
+ - project:
+    name: builder-jobs
+    jobs:
+        - 'builder-verify-jjb'
+        - 'builder-merge'
+
+    project: 'releng'
+
+ - job-template:
+    name: builder-verify-jjb
+
+    project-type: freestyle
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: 'master'
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
+
+    wrappers:
+        - ssh-agent-credentials:
+            user: '{ssh-credentials}'
+
+    triggers:
+        - gerrit:
+            trigger-on:
+                - patchset-created-event:
+                    exclude-drafts: 'false'
+                    exclude-trivial-rebase: 'false'
+                    exclude-no-code-change: 'false'
+                - draft-published-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'recheck'
+                - comment-added-contains-event:
+                    comment-contains-value: 'reverify'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: 'releng'
+                branches:
+                  - branch-compare-type: 'ANT'
+                    branch-pattern: '**/master'
+                file-paths:
+                    - compare-type: ANT
+                      pattern: jjb/**
+                    - compare-type: ANT
+                      pattern: jjb-templates/**
+
+
+    builders:
+        - shell: |
+            source /opt/virtualenv/jenkins-job-builder/bin/activate
+            jenkins-jobs test /opt/jenkins-ci/builder/
+
+ - job-template:
+    name: 'builder-merge'
+
+    # 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}'
+        - gerrit-parameter:
+            branch: 'master'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    wrappers:
+        - ssh-agent-credentials:
+            user: '{ssh-credentials}'
+
+    triggers:
+        - gerrit:
+            trigger-on:
+                - change-merged-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'remerge'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: 'releng'
+                branches:
+                    - branch-compare-type: 'ANT'
+                      branch-pattern: '**/master'
+                file-paths:
+                    - compare-type: ANT
+                      pattern: jjb/**
+
+    builders:
+        - shell: |
+                source /opt/virtualenv/jenkins-job-builder/bin/activate
+                cd /opt/jenkins-ci/releng
+                git pull
+                jenkins-jobs update --delete-old jjb/
+
+
+
+**Documentation tracking**
+
+Revision: _sha1_
+
+Build date:  _date_
diff --git a/jjb/releng/docu-build-new.sh b/jjb/releng/docu-build-new.sh
new file mode 100755 (executable)
index 0000000..0062f8e
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/bash 
+
+clean() {{
+if [[ -d docs/output ]]; then
+rm -rf docs/output
+echo "cleaning up output directory"
+fi
+}} 
+
+trap clean EXIT TERM INT SIGTERM SIGHUP
+
+directories=()
+while read -d $'\n'; do
+        directories+=("$REPLY")
+done < <(find docs/ -name 'index.rst' -printf '%h\n' | sort -u )
+
+for dir in "${{directories[@]}}"; do
+echo
+echo "#############################"
+echo "Building DOCS in ${{dir##*/}}"
+echo "#############################"
+echo
+
+if [[ ! -d docs/output/"${{dir##*/}}/" ]]; then
+  mkdir -p docs/output/"${{dir##*/}}/"
+fi
+
+sphinx-build -b html -E -c docs/etc/ ""$dir"/" docs/output/"${{dir##*/}}/"
+
+done
+
index 40e5b66..c24fcb0 100644 (file)
@@ -77,5 +77,5 @@
                     pattern: 'jjb/**'
 
     builders:
-       - shell: |
-            echo "Documentation generation logic goes here"
+       - shell: 
+           !include-raw docu-build-new.sh