# OLD Releng macros - parameter: name: project-parameter parameters: - string: 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 parameters: - string: name: GERRIT_BRANCH default: '{branch}' description: "JJB configured GERRIT_BRANCH parameter" - scm: name: git-scm scm: - git: credentials-id: '{credentials-id}' url: '$GIT_BASE' refspec: '' branches: - 'origin/{branch}' skip-tag: true wipe-workspace: true - scm: name: gerrit-trigger-scm scm: - git: credentials-id: '{credentials-id}' url: '$GIT_BASE' refspec: '{refspec}' branches: - 'origin/$GERRIT_BRANCH' skip-tag: true choosing-strategy: '{choosing-strategy}' timeout: 15 - trigger: name: 'daily-trigger-disabled' triggers: - timed: '' - trigger: name: 'weekly-trigger-disabled' triggers: - timed: '' - trigger: name: gerrit-trigger-patch-submitted triggers: - gerrit: server-name: 'gerrit.opnfv.org' 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' projects: - project-compare-type: 'ANT' project-pattern: '{name}' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' - trigger: name: gerrit-trigger-patch-merged triggers: - gerrit: server-name: 'gerrit.opnfv.org' trigger-on: - change-merged-event - comment-added-contains-event: comment-contains-value: 'remerge' projects: - project-compare-type: 'ANT' project-pattern: '{name}' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' - publisher: name: archive-artifacts publishers: - archive: artifacts: '{artifacts}' allow-empty: true fingerprint: true latest-only: true # New Releng macros - builder: name: build-html-and-pdf-docs-output builders: - 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: upload-under-review-docs-to-opnfv-artifacts builders: - shell: | #!/bin/bash set -o errexit set -o pipefail set -o xtrace export PATH=$PATH:/usr/local/bin/ [[ $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: upload-generated-docs-to-opnfv-artifacts builders: - shell: | #!/bin/bash set -o errexit set -o pipefail set -o xtrace export PATH=$PATH:/usr/local/bin/ [[ -d docs_output ]] || exit 0 echo echo "########################" echo "UPLOADING GENERATED DOCS" echo "########################" echo echo "gs_path="$GS_URL/docs"" echo "local_path="upload/docs"" gs_path="$GS_URL/docs" local_path="upload/docs" mkdir -p upload mv docs_output "$local_path" ls "$local_path" echo "gsutil -m cp -r "$local_path" "gs://$gs_path"" gsutil -m cp -r "$local_path" "gs://$gs_path" 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: 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 - builder: name: remove-old-docs-from-opnfv-artifacts builders: - shell: | #!/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/$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" 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 - builder: name: build-and-upload-artifacts-json-api builders: - shell: | #!/bin/bash set -o errexit set -o pipefail export PATH=$PATH:/usr/local/bin/ virtualenv -p python2.7 $WORKSPACE/releng_artifacts source $WORKSPACE/releng_artifacts/bin/activate # install python packages pip install google-api-python-client # 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 - builder: name: lint-python-code builders: - shell: | #!/bin/bash set -o errexit set -o pipefail set -o xtrace export PATH=$PATH:/usr/local/bin/ 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 deactivate - builder: name: report-lint-result-to-gerrit builders: - shell: | #!/bin/bash set -o errexit set -o pipefail set -o xtrace export PATH=$PATH:/usr/local/bin/ # If no violations were found, no lint log will exist. if [[ -e lint.log ]] ; then echo -e "\nposting linting report to gerrit...\n" cat lint.log echo 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"