From 1df5076a99b5b74a0e8500d4e69fdc109a8213bc Mon Sep 17 00:00:00 2001 From: Aric Gardner Date: Wed, 26 Aug 2015 16:00:02 -0400 Subject: Adding initial docs, script and logic for releng project Change-Id: Ie5bebf61b5f539d31c4c270b3f86b68b7a3ff2c9 Signed-off-by: Aric Gardner --- docs/etc/conf.py | 34 ++++++ docs/jenkins-job-builder/index.rst | 23 ++++ docs/jenkins-job-builder/opnfv-jjb-usage.rst | 171 +++++++++++++++++++++++++++ jjb/releng/docu-build-new.sh | 31 +++++ jjb/releng/releng.yml | 4 +- 5 files changed, 261 insertions(+), 2 deletions(-) create mode 100644 docs/etc/conf.py create mode 100644 docs/jenkins-job-builder/index.rst create mode 100644 docs/jenkins-job-builder/opnfv-jjb-usage.rst create mode 100755 jjb/releng/docu-build-new.sh diff --git a/docs/etc/conf.py b/docs/etc/conf.py new file mode 100644 index 000000000..486983f19 --- /dev/null +++ b/docs/etc/conf.py @@ -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 index 000000000..c3dbbb811 --- /dev/null +++ b/docs/jenkins-job-builder/index.rst @@ -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 index 000000000..aabfda7ae --- /dev/null +++ b/docs/jenkins-job-builder/opnfv-jjb-usage.rst @@ -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 index 000000000..0062f8e17 --- /dev/null +++ b/jjb/releng/docu-build-new.sh @@ -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 + diff --git a/jjb/releng/releng.yml b/jjb/releng/releng.yml index 40e5b6650..c24fcb065 100644 --- a/jjb/releng/releng.yml +++ b/jjb/releng/releng.yml @@ -77,5 +77,5 @@ pattern: 'jjb/**' builders: - - shell: | - echo "Documentation generation logic goes here" + - shell: + !include-raw docu-build-new.sh -- cgit 1.2.3-korg