aboutsummaryrefslogtreecommitdiffstats
path: root/docker/exec_tests.sh
blob: 9aee240daad3a872cb67c0cc4b5a6a30ef6a4dca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

set -e

: ${YARDSTICK_REPO:='https://gerrit.opnfv.org/gerrit/yardstick'}
: ${YARDSTICK_REPO_DIR:='/home/opnfv/repos/yardstick'}
: ${YARDSTICK_BRANCH:='master'} # branch, tag, sha1 or refspec

: ${RELENG_REPO:='https://gerrit.opnfv.org/gerrit/releng'}
: ${RELENG_REPO_DIR:='/home/opnfv/repos/releng'}
: ${RELENG_BRANCH:='master'} # branch, tag, sha1 or refspec

git_checkout()
{
    if git cat-file -e $1^{commit} 2>/dev/null; then
        # branch, tag or sha1 object
        git checkout $1
    else
        # refspec / changeset
        git fetch --tags --progress $2 $1
        git checkout FETCH_HEAD
    fi
}

echo
echo "INFO: Updating releng -> $RELENG_BRANCH"
if [ ! -d $RELENG_REPO_DIR ]; then
    git clone $RELENG_REPO $RELENG_REPO_DIR
fi
cd $RELENG_REPO_DIR
git checkout master && git pull
git_checkout $RELENG_BRANCH $RELENG_REPO

echo
echo "INFO: Updating yardstick -> $YARDSTICK_BRANCH"
if [ ! -d $YARDSTICK_REPO_DIR ]; then
    git clone $YARDSTICK_REPO $YARDSTICK_REPO_DIR
fi
cd $YARDSTICK_REPO_DIR
git checkout master && git pull
git_checkout $YARDSTICK_BRANCH $YARDSTICK_REPO

# setup the environment
source $YARDSTICK_REPO_DIR/tests/ci/prepare_env.sh

# execute tests
$YARDSTICK_REPO_DIR/tests/ci/yardstick-verify $@
ht .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 */
- project:

    name: compass-project

    installer: 'compass'

    project: 'compass4nfv'

    slave-label: 'compass-virtual'

    stream:
        - master:
            branch: '{stream}'
            gs-pathname: ''
        - brahmaputra:
            branch: 'stable/{stream}'
            gs-pathname: '/{stream}'


    jobs:
        - 'compass-verify-{stream}'
        - 'compass-build-iso-{stream}'
        - 'compass-build-ppa-{stream}'
        - 'compass-verify-deploy-{stream}'


########################
# job templates
########################
- job-template:
    name: 'compass-verify-{stream}'

    disabled: false

    concurrent: true

    wrappers:
        - timeout:
            timeout: 120
            fail: true

    properties:
        - throttle:
            enabled: true
            max-per-node: 1
            option: 'project'
        - build-blocker:
            use-build-blocker: true
            blocking-jobs:
                - 'compass-verify-[^-]*'
                - 'compass-os-.*?-virtual-daily-.*?'
            block-level: 'NODE'

    parameters:
        - project-parameter:
            project: '{project}'
        - gerrit-parameter:
            branch: '{branch}'
        - compass-project-parameter:
            installer: '{installer}'
            gs-pathname: '{gs-pathname}'
        - '{installer}-defaults'
        - '{slave-label}-defaults'
        - string:
            name: DEPLOY_SCENARIO
            default: 'os-nosdn-nofeature-ha'

    triggers:
        - gerrit:
            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'
                - comment-added-contains-event:
                    comment-contains-value: 'reverify'
            projects:
              - project-compare-type: 'ANT'
                project-pattern: '{project}'
                branches:
                  - branch-compare-type: 'ANT'
                    branch-pattern: '**/{branch}'
                file-paths:
                  - compare-type: ANT
                    pattern: '**/*'
                forbidden-file-paths:
                  - compare-type: ANT
                    pattern: 'docs/**'

    builders:
        - trigger-builds:
            - project: 'compass-verify-deploy-{stream}'
              current-parameters: true
              same-node: true
              block: true
        - trigger-builds:
            - project: 'functest-{slave-label}-suite-{stream}'
              current-parameters: true
              predefined-parameters:
                FUNCTEST_SUITE_NAME=healthcheck
              same-node: true
              block: true
              block-thresholds:
                build-step-failure-threshold: 'never'
                failure-threshold: 'never'
                unstable-threshold: 'FAILURE'

- job-template:
    name: 'compass-verify-deploy-{stream}'

    concurrent: true

    properties:
        - throttle:
            enabled: true
            max-per-node: 1
            option: 'project'
        - build-blocker:
            use-build-blocker: true
            blocking-jobs:
                - 'compass-deploy-virtual-daily-.*?'
            block-level: 'NODE'

    scm:
        - gerrit-trigger-scm:
            credentials-id: '{ssh-credentials}'
            refspec: '$GERRIT_REFSPEC'
            choosing-strategy: 'gerrit'

    builders:
        - shell:
            !include-raw-escape: ./compass-build.sh
        - shell:
            !include-raw-escape: ./compass-deploy.sh

    publishers:
        - archive:
            artifacts: 'ansible.log'
            allow-empty: 'true'
            fingerprint: true

- job-template:
    name: 'compass-build-iso-{stream}'

    concurrent: true

    properties:
        - throttle:
            enabled: true
            max-total: 1
            max-per-node: 1
            option: 'project'

    parameters:
        - project-parameter:
            project: '{project}'
        - compass-project-parameter:
            installer: '{installer}'
            gs-pathname: '{gs-pathname}'
        - 'opnfv-build-ubuntu-defaults'
        - '{installer}-defaults'

    scm:
        - git-scm:
            credentials-id: '{ssh-credentials}'
            refspec: ''
            branch: '{branch}'

    triggers:
        - timed: 'H 8 * * *'

    builders:
        - shell:
            !include-raw-escape: ./compass-build.sh
        - shell:
            !include-raw-escape: ./compass-upload-artifact.sh
        - shell:
            !include-raw-escape: ./compass-workspace-cleanup.sh

- job-template:
    name: 'compass-build-ppa-{stream}'

    description: "build ppa(using docker) in huawei lab"

    node: huawei-build

    concurrent: true

    properties:
        - throttle:
            enabled: true
            max-total: 1
            max-per-node: 1
            option: 'project'

    parameters:
        - project-parameter:
            project: '{project}'
        - compass-project-parameter:
            installer: '{installer}'
            gs-pathname: '{gs-pathname}'
        - '{node}-defaults'
        - '{installer}-defaults'
    scm:
        - git-scm:
            credentials-id: '{ssh-credentials}'
            refspec: ''
            branch: '{branch}'

    builders:
        - shell:
            !include-raw-escape: ./compass-makeppa.sh



########################
# parameter macros
########################
- parameter:
    name: compass-project-parameter
    parameters:
        - string:
            name: BUILD_DIRECTORY
            default: $WORKSPACE/build_output
            description: "Directory where the build artifact will be located upon the completion of the build."
        - string:
            name: CACHE_DIRECTORY
            default: "$HOME/opnfv/cache/$PROJECT{gs-pathname}"
            description: "Directory where the cache to be used during the build is located."
        - string:
            name: GS_URL
            default: '$GS_BASE{gs-pathname}'
            description: "URL to Google Storage."
        - string:
            name: PPA_REPO
            default: "http://205.177.226.237:9999{gs-pathname}"
        - string:
            name: PPA_CACHE
            default: "$WORKSPACE/work/repo/"
        - choice:
            name: COMPASS_OPENSTACK_VERSION
            choices:
                - 'mitaka'
                - 'liberty'
        - choice:
            name: COMPASS_OS_VERSION
            choices:
                - 'trusty'
                - 'centos7'