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"
28 name: ssh-agent-wrapper
30 - ssh-agent-credentials:
32 - 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
37 - git: &git-scm-defaults
38 credentials-id: '$SSH_CREDENTIAL_ID'
41 - 'origin/$GERRIT_BRANCH'
48 choosing-strategy: 'gerrit'
52 name: 'daily-trigger-disabled'
57 name: 'weekly-trigger-disabled'
62 name: gerrit-trigger-patch-submitted
65 server-name: 'gerrit.opnfv.org'
67 - patchset-created-event:
68 exclude-drafts: 'false'
69 exclude-trivial-rebase: 'false'
70 exclude-no-code-change: 'false'
71 - draft-published-event
72 - comment-added-contains-event:
73 comment-contains-value: 'recheck'
75 - project-compare-type: 'ANT'
76 project-pattern: '{name}'
78 - branch-compare-type: 'ANT'
79 branch-pattern: '**/{branch}'
82 name: gerrit-trigger-patch-merged
85 server-name: 'gerrit.opnfv.org'
88 - comment-added-contains-event:
89 comment-contains-value: 'remerge'
91 - project-compare-type: 'ANT'
92 project-pattern: '{name}'
94 - branch-compare-type: 'ANT'
95 branch-pattern: '**/{branch}'
98 name: archive-artifacts
101 artifacts: '{artifacts}'
109 name: build-html-and-pdf-docs-output
115 export PATH=$PATH:/usr/local/bin/
116 git clone ssh://gerrit.opnfv.org:29418/opnfvdocs docs_build/_opnfvdocs
117 GERRIT_COMMENT=gerrit_comment.txt ./docs_build/_opnfvdocs/scripts/docs-build.sh
120 name: upload-under-review-docs-to-opnfv-artifacts
127 export PATH=$PATH:/usr/local/bin/
129 [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
130 [[ -d docs_output ]] || exit 0
133 echo "###########################"
134 echo "UPLOADING DOCS UNDER REVIEW"
135 echo "###########################"
138 gs_base="artifacts.opnfv.org/$PROJECT/review"
139 gs_path="$gs_base/$GERRIT_CHANGE_NUMBER"
140 local_path="upload/$GERRIT_CHANGE_NUMBER"
143 mv docs_output "$local_path"
144 gsutil -m cp -r "$local_path" "gs://$gs_base"
147 -h "Content-Type:text/html" \
148 -h "Cache-Control:private, max-age=0, no-transform" \
149 "gs://$gs_path"/**.html > /dev/null 2>&1
151 echo "Document link(s):" >> gerrit_comment.txt
152 find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
153 sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt
156 name: upload-generated-docs-to-opnfv-artifacts
163 export PATH=$PATH:/usr/local/bin/
165 [[ -d docs_output ]] || exit 0
168 echo "########################"
169 echo "UPLOADING GENERATED DOCS"
170 echo "########################"
173 echo "gs_path="$GS_URL/docs""
174 echo "local_path="upload/docs""
176 gs_path="$GS_URL/docs"
177 local_path="upload/docs"
180 mv docs_output "$local_path"
183 echo "gsutil -m cp -r "$local_path"/* "gs://$gs_path""
184 gsutil -m cp -r "$local_path"/* "gs://$gs_path"
187 -h "Content-Type:text/html" \
188 -h "Cache-Control:private, max-age=0, no-transform" \
189 "gs://$gs_path"/**.html > /dev/null 2>&1
191 echo "Document link(s):" >> gerrit_comment.txt
192 find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
193 sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt
196 name: report-docs-build-result-to-gerrit
203 export PATH=$PATH:/usr/local/bin/
204 if [[ -e gerrit_comment.txt ]] ; then
206 echo "posting review comment to gerrit..."
208 cat gerrit_comment.txt
210 ssh -p 29418 gerrit.opnfv.org \
211 "gerrit review -p $GERRIT_PROJECT \
212 -m '$(cat gerrit_comment.txt)' \
213 $GERRIT_PATCHSET_REVISION \
218 name: remove-old-docs-from-opnfv-artifacts
225 export PATH=$PATH:/usr/local/bin/
227 [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
229 gs_path="artifacts.opnfv.org/$PROJECT/review/$GERRIT_CHANGE_NUMBER"
231 if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
233 echo "Deleting Out-of-dated Documents..."
234 gsutil -m rm -r "gs://$gs_path"
236 gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER"
238 if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
240 echo "Deleting Out-of-dated Documents..."
241 gsutil -m rm -r "gs://$gs_path"
245 name: build-and-upload-artifacts-json-api
251 export PATH=$PATH:/usr/local/bin/
253 virtualenv -p python2.7 $WORKSPACE/releng_artifacts
254 source $WORKSPACE/releng_artifacts/bin/activate
256 # install python packages
257 pip install google-api-python-client
259 # generate and upload index file
260 echo "Generating Artifacts API ..."
261 python $WORKSPACE/utils/opnfv-artifacts.py > index.json
262 gsutil cp index.json gs://artifacts.opnfv.org/index.json
267 name: lint-python-code
274 export PATH=$PATH:/usr/local/bin/
276 virtualenv -p python2.7 $WORKSPACE/releng_flake8
277 source $WORKSPACE/releng_flake8/bin/activate
279 # install python packages
280 pip install "flake8==2.6.2"
282 # generate and upload lint log
283 echo "Running flake8 code on $PROJECT ..."
285 # Get number of flake8 violations. If none, this will be an
287 FLAKE_COUNT="$(find . \
288 -path './releng_flake8' -prune -o \
289 -path './.tox' -prune -o \
290 -type f -name "*.py" -print | \
291 xargs flake8 --exit-zero -qq --count 2>&1)"
293 # Ensure we start with a clean environment
296 if [ ! -z $FLAKE_COUNT ]; then
297 echo "Flake8 Violations: $FLAKE_COUNT" > lint.log
299 -path './releng_flake8' -prune -o \
300 -path './.tox' -prune -o \
301 -type f -name "*.py" -print | \
302 xargs flake8 --exit-zero --first >> violation.log
303 SHOWN=$(wc -l violation.log | cut -d' ' -f1)
304 echo -e "First $SHOWN shown\n---" >> lint.log
305 cat violation.log >> lint.log
306 sed -r -i '4,$s/^/ /g' lint.log
313 name: report-lint-result-to-gerrit
320 export PATH=$PATH:/usr/local/bin/
322 # If no violations were found, no lint log will exist.
323 if [[ -e lint.log ]] ; then
324 echo -e "\nposting linting report to gerrit...\n"
329 ssh -p 29418 gerrit.opnfv.org \
330 "gerrit review -p $GERRIT_PROJECT \
331 -m \"$(cat lint.log)\" \
332 $GERRIT_PATCHSET_REVISION \
339 name: upload-review-docs
341 - build-html-and-pdf-docs-output
342 - upload-under-review-docs-to-opnfv-artifacts
343 - report-docs-build-result-to-gerrit
346 name: upload-merged-docs
348 - build-html-and-pdf-docs-output
349 - upload-generated-docs-to-opnfv-artifacts
350 - report-docs-build-result-to-gerrit
351 - remove-old-docs-from-opnfv-artifacts
354 name: check-bash-syntax
356 - shell: "find . -name '*.sh' | xargs bash -n"