summaryrefslogtreecommitdiffstats
path: root/jjb/releng-macros.yaml
blob: 5d95707054ff96d25e0063181fee5d961c9a9cef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
.. (c) Open Platform for NFV Project, Inc. and its contributors

.. _release:

===============
Releasing OPNFV
===============

.. toctree::
   :maxdepth: 2

   release-process
   release-automation
   stable-branch-guide
   versioning
227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307
# 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/$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}'

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

- trigger:
    name: 'brahmaputra-trigger-daily-disabled'
    triggers:
        - timed: ''

- trigger:
    name: 'brahmaputra-trigger-daily-enabled'
    triggers:
        - timed: '0 2 * * *'

- 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
            set -o errexit
            set -o xtrace
            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
            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/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"

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

            gs_path="$GS_URL/docs"
            local_path="upload/docs"

            mkdir -p upload
            mv docs_output "$local_path"
            gsutil -m cp -r "$local_path" "gs://$GS_URL"

            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
            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"
            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/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-generated-docs-to-opnfv-artifacts
        - report-docs-build-result-to-gerrit
        - remove-old-docs-from-opnfv-artifacts