# OLD Releng macros

- parameter:
    name: project-parameter
    parameters:
        - string:
            name: PROJECT
            default: '{project}'
            description: "JJB configured PROJECT parameter to identify an opnfv Gerrit project"

- 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}'

- wrapper:
    name: build-timeout
    wrappers:
        - timeout:
            type: absolute
            timeout: 360
            fail: true

- 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

- 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


- builder:
    name: test-macro
    builders:
        - shell: 'echo testing macro "test-macro"'

- builder:
    name: wipe-org-opendaylight-repo
    builders:
        - shell: 'if [ -d /tmp/r/org/opendaylight ]; then rm -rf /tmp/r/org/opendaylight; fi'

- builder:
    name: jacoco-nojava-workaround
    builders:
        - shell: 'mkdir -p $WORKSPACE/target/classes'


# New Releng macros

- builder:
    name: build-html-and-pdf-docs-output
    builders:
        - shell: |
            #!/bin/bash -e
            export PATH=$PATH:/usr/local/bin/
            git clone ssh://gerrit.opnfv.org:29418/releng
            GERRIT_COMMENT=gerrit_comment.txt ./releng/utils/docs-build.sh

- builder:
    name: upload-under-review-docs-to-opnfv-artifacts
    builders:
        - shell: |
            #!/bin/bash -e
            set -o pipefail
            export PATH=$PATH:/usr/local/bin/

            [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
            [[ -d output ]]

            echo
            echo "###########################"
            echo "UPLOADING DOCS UNDER REVIEW"
            echo "###########################"
            echo

            gs_base="artifacts.opnfv.org/review"
            gs_path="$gs_base/$GERRIT_CHANGE_NUMBER"
            local_path="upload/$GERRIT_CHANGE_NUMBER"

            mkdir -p upload
            mv output "$local_path"
            gsutil -m cp -r "$local_path" "gs://$gs_base"

            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
            fi

            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-merged-docs-to-opnfv-artifacts
    builders:
        - shell: |
            #!/bin/bash -e
            set -o pipefail
            export PATH=$PATH:/usr/local/bin/

            [[ -d output ]]

            echo
            echo "#####################"
            echo "UPLOADING MERGED DOCS"
            echo "#####################"
            echo

            if [[ "$GERRIT_BRANCH" == "master" ]] ; then
                gs_base="artifacts.opnfv.org/$GERRIT_PROJECT"
            else
                gs_base="artifacts.opnfv.org/$GERRIT_PROJECT/$GERRIT_BRANCH"
            fi
            gs_path="$gs_base/docs"
            local_path="upload/docs"

            mkdir -p upload
            mv output "$local_path"
            gsutil -m cp -r "$local_path" "gs://$gs_base"

            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
            fi

            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 -e
            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"
            fi

- builder:
    name: remove-old-docs-from-opnfv-artifacts
    builders:
        - shell: |
            #!/bin/bash -e
            export PATH=$PATH:/usr/local/bin/

            [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]

            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: 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-merged-docs-to-opnfv-artifacts
        - report-docs-build-result-to-gerrit
        - remove-old-docs-from-opnfv-artifacts