summaryrefslogtreecommitdiffstats
path: root/jjb/vswitchperf/vswitchperf.yml
blob: 16b7d9e7528291f0d2b19030594236563a57aef5 (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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
- project:

    name: vswitchperf

    project: '{name}'

    jobs:
        - 'vswitchperf-verify-{stream}'
        - 'vswitchperf-merge-{stream}'
        - 'vswitchperf-daily-{stream}'

# only master branch is enabled at the moment to keep no of jobs sane
    stream:
        - master:
            branch: 'master'
            gs-pathname: ''
#        - brahmaputra:
#            branch: 'stable/brahmaputra'
#            gs-pathname: '/brahmaputra'

- job-template:

    name: 'vswitchperf-daily-{stream}'

    parameters:
        - project-parameter:
            project: '{project}'
        - 'intel-pod3-defaults'

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

    triggers:
        - pollscm: '@midnight'

    builders:
        - shell: |
            pwd
            cd src
            make clobber
            make
            # run basic sanity test
            make sanity
            cd ../ci
            scl enable python33 "source ~/vsperfenv/bin/activate ; ./build-vsperf.sh daily"

- job-template:
    name: 'vswitchperf-verify-{stream}'

    project-type: freestyle

    concurrent: true

    properties:
        - throttle:
            enabled: true
            max-total: 3
            max-per-node: 2

    parameters:
        - project-parameter:
            project: '{project}'
        - gerrit-parameter:
            branch: '{branch}'
        - 'opnfv-build-defaults'

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

    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}'
                forbidden-file-paths:
                  - compare-type: ANT
                    pattern: 'docs/**'

    builders:
        - shell: |
            pwd
            cd src
            make clobber
            make
            # run basic sanity test
            make sanity

- job-template:
    name: 'vswitchperf-merge-{stream}'

    project-type: freestyle

    concurrent: true

    properties:
        - throttle:
            enabled: true
            max-total: 3
            max-per-node: 2

    parameters:
        - project-parameter:
            project: '{project}'
        - gerrit-parameter:
            branch: '{branch}'
        - 'opnfv-build-defaults'

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

    triggers:
        - gerrit:
            trigger-on:
                - change-merged-event
                - comment-added-contains-event:
                    comment-contains-value: 'remerge'
            projects:
              - project-compare-type: 'ANT'
                project-pattern: '{project}'
                branches:
                    - branch-compare-type: 'ANT'
                      branch-pattern: '**/{branch}'
                forbidden-file-paths:
                  - compare-type: ANT
                    pattern: 'docs/**'

    builders:
        - shell: |
            pwd
            cd src
            make clobber
            make
YPE} [dispatcher_file] file_name = ${DISPATCHER_FILE_NAME} [dispatcher_http] timeout = 5 target = ${DISPATCHER_HTTP_TARGET} [dispatcher_influxdb] timeout = 5 target = ${DISPATCHER_INFLUXDB_TARGET} db_name = yardstick username = opnfv password = 0pnfv2015 EOF local failed=0 local start_date local stop_date if [ ${#SUITE_FILES[@]} -gt 0 ]; then start_date=$(date '+%Y-%m-%d %H:%M:%S') for suite in ${SUITE_FILES[*]}; do echo "---------------------------" echo "Running test suite: $suite" echo "---------------------------" if ! yardstick task start --suite $suite; then echo "test suite $suite FAILED"; # Mark the test suite failed but continue # running the remaining test suites. (( ++failed )) fi if [ ${DISPATCHER_TYPE} = file ]; then echo "---------------------------" echo "Dump test suite $suite result" echo "---------------------------" if [ -f ${DISPATCHER_FILE_NAME} ]; then cat ${DISPATCHER_FILE_NAME} else echo "Test result file ${DISPATCHER_FILE_NAME} is not exist" fi fi done stop_date=$(date '+%Y-%m-%d %H:%M:%S') local scenario_status="SUCCESS" if [ $failed -gt 0 ]; then scenario_status="FAILED" fi report "${scenario_status}" "${start_date}" "${stop_date}" if [ $failed -gt 0 ]; then echo "---------------------------" echo "$failed out of ${SUITE_FILES[*]} test suites FAILED" echo "---------------------------" exit 1 fi else echo "---------------------------" echo "Running samples/ping.yaml " echo "---------------------------" if ! yardstick task start samples/ping.yaml; then echo "Yardstick test FAILED" exit 1 fi if [ ${DISPATCHER_TYPE} = file ]; then echo "---------------------------" echo "Dump samples/ping.yaml test result" echo "---------------------------" if [ -f ${DISPATCHER_FILE_NAME} ]; then cat ${DISPATCHER_FILE_NAME} else echo "Test result file ${DISPATCHER_FILE_NAME} is not exist" fi fi fi } main() { GITROOT=$(cd $(dirname $0) && git rev-parse --show-toplevel) cd $GITROOT export YARDSTICK_VERSION=$(git rev-parse HEAD) SUITE_FILES=() # find the test suite files for suite in $TEST_SUITES; do if [ -f $suite ]; then SUITE_FILES+=($suite) else tsdir=$GITROOT/tests/opnfv/test_suites if [ ! -f $tsdir/$suite ]; then echo "Test suite \"$suite\" does not exist" exit 1 fi SUITE_FILES+=($tsdir/$suite) fi done echo echo "========== Running Yardstick CI with following parameters ==========" echo "Script options: ${SCRIPT} $SCRIPT_ARGS" echo "Dispatcher: ${DISPATCHER_TYPE} ${DISPATCHER_FILE_NAME}" echo "YARDSTICK_VERSION: ${YARDSTICK_VERSION}" echo "Number of test suites: ${#SUITE_FILES[@]}" for suite in ${SUITE_FILES[*]}; do echo " $suite" done echo # check if some necessary variables is set if [ -z "$OS_AUTH_URL" ]; then echo "OS_AUTH_URL is unset or empty" exit 1 fi echo "OS_AUTH_URL is $OS_AUTH_URL" echo # check OpenStack services if [[ $OS_INSECURE ]] && [[ "$(echo $OS_INSECURE | tr '[:upper:]' '[:lower:]')" = "true" ]]; then SECURE="--insecure" else SECURE="" fi echo "Checking OpenStack services:" for cmd in "openstack ${SECURE} image list" "openstack ${SECURE} server list" "openstack ${SECURE} stack list"; do echo " checking ${cmd} ..." if ! $cmd >/dev/null; then echo "error: command \"$cmd\" failed" exit 1 fi done echo echo "Checking for External network:" for net in $(openstack network list --external -c Name -f value); do echo " external network: $net" done source $YARDSTICK_REPO_DIR/tests/ci/clean_images.sh trap "error_exit" EXIT SIGTERM source $YARDSTICK_REPO_DIR/tests/ci/load_images.sh install_storperf run_test remove_storperf } main