4 name: project-parameter
9 description: "JJB configured PROJECT parameter to identify an opnfv Gerrit project"
12 default: artifacts.opnfv.org/$PROJECT
13 description: "URL to Google Storage."
16 default: build.opnfv.org/artifacts.opnfv.org/$PROJECT
17 description: "URL to Google Storage proxy"
20 name: gerrit-parameter
25 description: "JJB configured GERRIT_BRANCH parameter"
27 name: SSH_CREDENTIAL_ID
28 default: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
29 description: "SSH Credential ID for git access"
32 name: ssh-agent-wrapper
34 - ssh-agent-credentials:
36 - '$SSH_CREDENTIAL_ID'
41 - git: &git-scm-defaults
42 credentials-id: '$SSH_CREDENTIAL_ID'
45 - 'origin/$GERRIT_BRANCH'
52 choosing-strategy: 'gerrit'
56 name: 'daily-trigger-disabled'
61 name: 'weekly-trigger-disabled'
66 name: gerrit-trigger-patch-submitted
69 server-name: 'gerrit.opnfv.org'
71 - patchset-created-event:
72 exclude-drafts: 'false'
73 exclude-trivial-rebase: 'false'
74 exclude-no-code-change: 'false'
75 - draft-published-event
76 - comment-added-contains-event:
77 comment-contains-value: 'recheck'
79 - project-compare-type: 'ANT'
80 project-pattern: '{name}'
82 - branch-compare-type: 'ANT'
83 branch-pattern: '**/{branch}'
86 name: gerrit-trigger-patch-merged
89 server-name: 'gerrit.opnfv.org'
92 - comment-added-contains-event:
93 comment-contains-value: 'remerge'
95 - project-compare-type: 'ANT'
96 project-pattern: '{name}'
98 - branch-compare-type: 'ANT'
99 branch-pattern: '**/{branch}'
102 name: archive-artifacts
105 artifacts: '{artifacts}'
113 name: build-html-and-pdf-docs-output
119 export PATH=$PATH:/usr/local/bin/
120 git clone ssh://gerrit.opnfv.org:29418/opnfvdocs docs_build/_opnfvdocs
121 GERRIT_COMMENT=gerrit_comment.txt ./docs_build/_opnfvdocs/scripts/docs-build.sh
124 name: upload-under-review-docs-to-opnfv-artifacts
131 export PATH=$PATH:/usr/local/bin/
133 [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
134 [[ -d docs_output ]] || exit 0
137 echo "###########################"
138 echo "UPLOADING DOCS UNDER REVIEW"
139 echo "###########################"
142 gs_base="artifacts.opnfv.org/$PROJECT/review"
143 gs_path="$gs_base/$GERRIT_CHANGE_NUMBER"
144 local_path="upload/$GERRIT_CHANGE_NUMBER"
147 mv docs_output "$local_path"
148 gsutil -m cp -r "$local_path" "gs://$gs_base"
151 -h "Content-Type:text/html" \
152 -h "Cache-Control:private, max-age=0, no-transform" \
153 "gs://$gs_path"/**.html > /dev/null 2>&1
155 echo "Document link(s):" >> gerrit_comment.txt
156 find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
157 sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt
160 name: upload-generated-docs-to-opnfv-artifacts
167 export PATH=$PATH:/usr/local/bin/
169 [[ -d docs_output ]] || exit 0
172 echo "########################"
173 echo "UPLOADING GENERATED DOCS"
174 echo "########################"
177 echo "gs_path="$GS_URL/docs""
178 echo "local_path="upload/docs""
180 gs_path="$GS_URL/docs"
181 local_path="upload/docs"
184 mv docs_output "$local_path"
187 echo "gsutil -m cp -r "$local_path"/* "gs://$gs_path""
188 gsutil -m cp -r "$local_path"/* "gs://$gs_path"
191 -h "Content-Type:text/html" \
192 -h "Cache-Control:private, max-age=0, no-transform" \
193 "gs://$gs_path"/**.html > /dev/null 2>&1
195 echo "Document link(s):" >> gerrit_comment.txt
196 find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
197 sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt
200 name: report-docs-build-result-to-gerrit
207 export PATH=$PATH:/usr/local/bin/
208 if [[ -e gerrit_comment.txt ]] ; then
210 echo "posting review comment to gerrit..."
212 cat gerrit_comment.txt
214 ssh -p 29418 gerrit.opnfv.org \
215 "gerrit review -p $GERRIT_PROJECT \
216 -m '$(cat gerrit_comment.txt)' \
217 $GERRIT_PATCHSET_REVISION \
222 name: remove-old-docs-from-opnfv-artifacts
229 export PATH=$PATH:/usr/local/bin/
231 [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
233 gs_path="artifacts.opnfv.org/$PROJECT/review/$GERRIT_CHANGE_NUMBER"
235 if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
237 echo "Deleting Out-of-dated Documents..."
238 gsutil -m rm -r "gs://$gs_path"
240 gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER"
242 if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
244 echo "Deleting Out-of-dated Documents..."
245 gsutil -m rm -r "gs://$gs_path"
249 name: build-and-upload-artifacts-json-api
255 export PATH=$PATH:/usr/local/bin/
257 virtualenv -p python2.7 $WORKSPACE/releng_artifacts
258 source $WORKSPACE/releng_artifacts/bin/activate
260 # install python packages
261 pip install google-api-python-client
263 # generate and upload index file
264 echo "Generating Artifacts API ..."
265 python $WORKSPACE/utils/opnfv-artifacts.py > index.json
266 gsutil cp index.json gs://artifacts.opnfv.org/index.json
271 name: lint-python-code
278 export PATH=$PATH:/usr/local/bin/
280 virtualenv -p python2.7 $WORKSPACE/releng_flake8
281 source $WORKSPACE/releng_flake8/bin/activate
283 # install python packages
284 pip install "flake8==2.6.2"
286 # generate and upload lint log
287 echo "Running flake8 code on $PROJECT ..."
289 # Get number of flake8 violations. If none, this will be an
291 FLAKE_COUNT="$(find . \
292 -path './releng_flake8' -prune -o \
293 -path './.tox' -prune -o \
294 -type f -name "*.py" -print | \
295 xargs flake8 --exit-zero -qq --count 2>&1)"
297 # Ensure we start with a clean environment
300 if [ ! -z $FLAKE_COUNT ]; then
301 echo "Flake8 Violations: $FLAKE_COUNT" > lint.log
303 -path './releng_flake8' -prune -o \
304 -path './.tox' -prune -o \
305 -type f -name "*.py" -print | \
306 xargs flake8 --exit-zero --first >> violation.log
307 SHOWN=$(wc -l violation.log | cut -d' ' -f1)
308 echo -e "First $SHOWN shown\n---" >> lint.log
309 cat violation.log >> lint.log
310 sed -r -i '4,$s/^/ /g' lint.log
317 name: report-lint-result-to-gerrit
324 export PATH=$PATH:/usr/local/bin/
326 # If no violations were found, no lint log will exist.
327 if [[ -e lint.log ]] ; then
328 echo -e "\nposting linting report to gerrit...\n"
333 ssh -p 29418 gerrit.opnfv.org \
334 "gerrit review -p $GERRIT_PROJECT \
335 -m \"$(cat lint.log)\" \
336 $GERRIT_PATCHSET_REVISION \
343 name: upload-review-docs
345 - build-html-and-pdf-docs-output
346 - upload-under-review-docs-to-opnfv-artifacts
347 - report-docs-build-result-to-gerrit
350 name: upload-merged-docs
352 - build-html-and-pdf-docs-output
353 - upload-generated-docs-to-opnfv-artifacts
354 - report-docs-build-result-to-gerrit
355 - remove-old-docs-from-opnfv-artifacts
358 name: check-bash-syntax
360 - shell: "find . -name '*.sh' | xargs bash -n"