name: PROJECT
default: '{project}'
description: "JJB configured PROJECT parameter to identify an opnfv Gerrit project"
+ - string:
+ name: GS_BASE
+ default: artifacts.opnfv.org/$PROJECT
+ description: "URL to Google Storage."
+ - string:
+ name: GS_BASE_PROXY
+ default: build.opnfv.org/artifacts.opnfv.org/$PROJECT
+ description: "URL to Google Storage proxy"
- parameter:
name: gerrit-parameter
- 'origin/$GERRIT_BRANCH'
skip-tag: true
choosing-strategy: '{choosing-strategy}'
+ timeout: 15
-- wrapper:
- name: build-timeout
- wrappers:
- - timeout:
- type: absolute
- timeout: 360
- fail: true
+- trigger:
+ name: 'daily-trigger-disabled'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'weekly-trigger-disabled'
+ triggers:
+ - timed: ''
- trigger:
name: gerrit-trigger-patch-submitted
fingerprint: true
latest-only: true
-- publisher:
- name: email-notification
- publishers:
- - email-ext:
- recipients: 'jenkins@lists.opnfv.org'
- reply-to:
- content-type: default
- subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
- body: |
- $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
-
- Check console output at $BUILD_URL to view the results.
- unstable: true
- fixed: true
- send-to:
- - developers
- - recipients
-
-- publisher:
- name: jacoco-report
- publishers:
- - jacoco:
- exec-pattern: "**/**.exec"
- class-pattern: "**/classes"
- source-pattern: "**/src/main/java"
- exclusion-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**"
- status-update: true
- targets:
- - branch:
- healthy: 10
- unhealthy: 20
- - method:
- healthy: 50
- unhealthy: 40
-
+# New Releng macros
- builder:
- name: test-macro
+ name: build-html-and-pdf-docs-output
builders:
- - shell: 'echo testing macro "test-macro"'
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o xtrace
+ export PATH=$PATH:/usr/local/bin/
+ git clone ssh://gerrit.opnfv.org:29418/opnfvdocs docs_build/_opnfvdocs
+ GERRIT_COMMENT=gerrit_comment.txt ./docs_build/_opnfvdocs/scripts/docs-build.sh
- builder:
- name: wipe-org-opendaylight-repo
+ name: upload-under-review-docs-to-opnfv-artifacts
builders:
- - shell: 'if [ -d /tmp/r/org/opendaylight ]; then rm -rf /tmp/r/org/opendaylight; fi'
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o pipefail
+ set -o xtrace
+ export PATH=$PATH:/usr/local/bin/
-- builder:
- name: jacoco-nojava-workaround
- builders:
- - shell: 'mkdir -p $WORKSPACE/target/classes'
+ [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
+ [[ -d docs_output ]] || exit 0
+
+ echo
+ echo "###########################"
+ echo "UPLOADING DOCS UNDER REVIEW"
+ echo "###########################"
+ echo
+
+ gs_base="artifacts.opnfv.org/$PROJECT/review"
+ gs_path="$gs_base/$GERRIT_CHANGE_NUMBER"
+ local_path="upload/$GERRIT_CHANGE_NUMBER"
+
+ mkdir -p upload
+ mv docs_output "$local_path"
+ gsutil -m cp -r "$local_path" "gs://$gs_base"
+
+ gsutil -m setmeta \
+ -h "Content-Type:text/html" \
+ -h "Cache-Control:private, max-age=0, no-transform" \
+ "gs://$gs_path"/**.html > /dev/null 2>&1
+
+ echo "Document link(s):" >> gerrit_comment.txt
+ find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
+ sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt
- builder:
- name: build-html-and-pdf-docs-output
+ name: upload-generated-docs-to-opnfv-artifacts
builders:
- shell: |
- #!/bin/bash -e
+ #!/bin/bash
+ set -o errexit
set -o pipefail
+ set -o xtrace
export PATH=$PATH:/usr/local/bin/
- [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
-
- git_sha1="$(git rev-parse HEAD)"
+ [[ -d docs_output ]] || exit 0
- find docs/ -type f -iname '*.rst' -print0 | while read file
- do
- sed -i "s/_sha1_/$git_sha1/g" "$file"
- done
+ echo
+ echo "########################"
+ echo "UPLOADING GENERATED DOCS"
+ echo "########################"
+ echo
- find docs/ -name 'index.rst' -printf '%h\n' | while read dir
- do
- _name="${dir##*/}"
- _build="$dir/build"
- _output="docs/output/$_name"
+ gs_path="$GS_URL/docs"
+ local_path="upload/docs"
- echo
- echo "#################${dir//?/#}"
- echo "Building DOCS in $dir"
- echo "#################${dir//?/#}"
- echo
+ mkdir -p upload
+ mv docs_output "$local_path"
+ gsutil -m cp -r "$local_path" "gs://$GS_URL"
- mkdir -p "$_output"
+ gsutil -m setmeta \
+ -h "Content-Type:text/html" \
+ -h "Cache-Control:private, max-age=0, no-transform" \
+ "gs://$gs_path"/**.html > /dev/null 2>&1
- sphinx-build -b html -E -c docs/etc "$dir" "$_output"
+ echo "Document link(s):" >> gerrit_comment.txt
+ find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
+ sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt
- sphinx-build -b latex -E -c docs/etc --project=$_name "$dir" "$_build"
- make -C "$_build" LATEXOPTS='--interaction=nonstopmode' all-pdf
- mv "$_build"/*.pdf "$_output"
- done
+- builder:
+ name: report-docs-build-result-to-gerrit
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o pipefail
+ set -o xtrace
+ export PATH=$PATH:/usr/local/bin/
+ if [[ -e gerrit_comment.txt ]] ; then
+ echo
+ echo "posting review comment to gerrit..."
+ echo
+ cat gerrit_comment.txt
+ echo
+ ssh -p 29418 gerrit.opnfv.org \
+ "gerrit review -p $GERRIT_PROJECT \
+ -m '$(cat gerrit_comment.txt)' \
+ $GERRIT_PATCHSET_REVISION \
+ --notify NONE"
+ fi
-- publisher:
- name: upload-under-review-docs-to-opnfv-artifacts
- publishers:
+- builder:
+ name: remove-old-docs-from-opnfv-artifacts
+ builders:
- shell: |
- #!/bin/bash -e
+ #!/bin/bash
+ set -o errexit
set -o pipefail
+ set -o xtrace
export PATH=$PATH:/usr/local/bin/
[[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
- [[ -d docs/output ]]
- echo
- echo "##########################"
- echo "UPLOADING DOCS UNER REVIEW"
- echo "##########################"
- echo
+ gs_path="artifacts.opnfv.org/$PROJECT/review/$GERRIT_CHANGE_NUMBER"
+ if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
+ echo
+ echo "Deleting Out-of-dated Documents..."
+ gsutil -m rm -r "gs://$gs_path"
+ fi
gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER"
- gsutil -m cp -r docs/output/* "gs://$gs_path"
-
- if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then
- gsutil -m setmeta \
- -h "Content-Type:text/html" \
- -h "Cache-Control:private, max-age=0, no-transform" \
- "gs://$gs_path"/**.html
+ if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
+ echo
+ echo "Deleting Out-of-dated Documents..."
+ gsutil -m rm -r "gs://$gs_path"
fi
- gerrit_comment="Document link(s):
- $(gsutil ls "gs://$gs_path" | grep -e 'index.html$' -e 'pdf$' | sed 's/^gs/http/')"
- echo
- echo "$gerrit_comment"
- echo
- {gerrit-review} -p {project} -m "$gerrit_comment" $GERRIT_PATCHSET_REVISION
-
-- publisher:
- name: upload-merged-docs-to-opnfv-artifacts
- publishers:
+- builder:
+ name: build-and-upload-artifacts-json-api
+ builders:
- shell: |
- #!/bin/bash -e
+ #!/bin/bash
+ set -o errexit
set -o pipefail
export PATH=$PATH:/usr/local/bin/
- [[ -d docs/output ]]
+ virtualenv -p python2.7 $WORKSPACE/releng_artifacts
+ source $WORKSPACE/releng_artifacts/bin/activate
- echo
- echo "#####################"
- echo "UPLOADING MERGED DOCS"
- echo "#####################"
- echo
+ # install python packages
+ pip install google-api-python-client
- if [[ "{branch}" == "master" ]] ; then
- gs_path="artifacts.opnfv.org/{project}/docs"
- else
- gs_path="artifacts.opnfv.org/{project}/{branch}/docs"
- fi
+ # generate and upload index file
+ echo "Generating Artifacts API ..."
+ python $WORKSPACE/utils/opnfv-artifacts.py > index.json
+ gsutil cp index.json gs://artifacts.opnfv.org/index.json
+
+ deactivate
- gsutil -m cp -r docs/output/* "gs://$gs_path"
+- builder:
+ name: lint-python-code
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o pipefail
+ set -o xtrace
+ export PATH=$PATH:/usr/local/bin/
- if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then
- gsutil -m setmeta \
- -h "Content-Type:text/html" \
- -h "Cache-Control:private, max-age=0, no-transform" \
- "gs://$gs_path"/**.html
+ virtualenv -p python2.7 $WORKSPACE/releng_flake8
+ source $WORKSPACE/releng_flake8/bin/activate
+
+ # install python packages
+ pip install "flake8==2.6.2"
+
+ # generate and upload lint log
+ echo "Running flake8 code on $PROJECT ..."
+
+ # Get number of flake8 violations. If none, this will be an
+ # empty string: ""
+ FLAKE_COUNT="$(find . \
+ -path './releng_flake8' -prune -o \
+ -path './.tox' -prune -o \
+ -type f -name "*.py" -print | \
+ xargs flake8 --exit-zero -qq --count 2>&1)"
+
+ # Ensure we start with a clean environment
+ rm -f lint.log
+
+ if [ ! -z $FLAKE_COUNT ]; then
+ echo "Flake8 Violations: $FLAKE_COUNT" > lint.log
+ find . \
+ -path './releng_flake8' -prune -o \
+ -path './.tox' -prune -o \
+ -type f -name "*.py" -print | \
+ xargs flake8 --exit-zero --first >> violation.log
+ SHOWN=$(wc -l violation.log | cut -d' ' -f1)
+ echo -e "First $SHOWN shown\n---" >> lint.log
+ cat violation.log >> lint.log
+ sed -r -i '4,$s/^/ /g' lint.log
+ rm violation.log
fi
- gerrit_comment="Document link(s):
- $(gsutil ls "gs://$gs_path" | grep -e 'index.html$' -e 'pdf$' | sed 's/^gs/http/')"
- echo
- echo "$gerrit_comment"
- echo
- {gerrit-review} -p {project} -m "$gerrit_comment" $GERRIT_PATCHSET_REVISION
+ deactivate
-- publisher:
- name: remove-old-docs-from-opnfv-artifacts
- publishers:
+- builder:
+ name: report-lint-result-to-gerrit
+ builders:
- shell: |
- #!/bin/bash -e
+ #!/bin/bash
+ set -o errexit
+ set -o pipefail
+ set -o xtrace
export PATH=$PATH:/usr/local/bin/
- [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
-
- gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER"
+ # If no violations were found, no lint log will exist.
+ if [[ -e lint.log ]] ; then
+ echo -e "\nposting linting report to gerrit...\n"
- if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
+ cat lint.log
echo
- echo "Deleting Out-of-dated Documents..."
- gsutil -m rm -r "gs://$gs_path_review"
+
+ ssh -p 29418 gerrit.opnfv.org \
+ "gerrit review -p $GERRIT_PROJECT \
+ -m \"$(cat lint.log)\" \
+ $GERRIT_PATCHSET_REVISION \
+ --notify NONE"
+
+ exit 1
fi
+
+- builder:
+ name: upload-review-docs
+ builders:
+ - build-html-and-pdf-docs-output
+ - upload-under-review-docs-to-opnfv-artifacts
+ - report-docs-build-result-to-gerrit
+
+- builder:
+ name: upload-merged-docs
+ builders:
+ - build-html-and-pdf-docs-output
+ - upload-generated-docs-to-opnfv-artifacts
+ - report-docs-build-result-to-gerrit
+ - remove-old-docs-from-opnfv-artifacts
+
+- builder:
+ name: check-bash-syntax
+ builders:
+ - shell: "find . -name '*.sh' | xargs bash -n"