aboutsummaryrefslogtreecommitdiffstats
path: root/ci/build-auto.sh
blob: 96588b9011f83627a68b463dda7dd2f72bd773ab (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
#!/bin/bash
#
# Copyright 2015-2018 Intel Corporation., Tieto
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# CI helper script for execution of AUTO project jenkins jobs.
# This script is based on the file ci/build-vsperf.sh from OPNFV vswitchperf
# project.

# Usage:
#       build-auto.sh job_type
#   where job_type is one of "verify", "merge", "daily"
#
# Example:
#       ./ci/build-auto.sh daily

#
# exit codes
#
EXIT=0
EXIT_UNKNOWN_JOB_TYPE=1
EXIT_LINT_FAILED=2

#
# configuration
#
AUTOENV_DIR="$HOME/autoenv"

#
# functions
#
# execute pylint and yamllint to check code quality
function execute_auto_lint_check() {
    if ! ./check -b ; then
        EXIT=$EXIT_LINT_FAILED
    fi
}

#
# main
#
echo

# enter workspace dir
cd $WORKSPACE

# create virtualenv if needed
if [ ! -e $AUTOENV_DIR ] ; then
    echo "Create AUTO environment"
    echo "======================="
    virtualenv "$AUTOENV_DIR"
    echo
fi

# activate and update virtualenv
echo "Update AUTO environment"
echo "======================="
source "$AUTOENV_DIR"/bin/activate
pip install -r ./requirements.txt
echo

# execute job based on passed parameter
case $1 in
    "verify")
        echo "==============="
        echo "AUTO verify job"
        echo "==============="

        # Example of verify job body. Functions can call
        # external scripts, etc.

        execute_auto_lint_check
        #execute_auto_doc_check
        #install_opnfv MCP
        #install_onap
        #execute_sanity_check
        #execute_tests $1

        # Everything went well, so report SUCCESS to Jenkins
        exit $EXIT
        ;;
    "merge")
        echo "=============="
        echo "AUTO merge job"
        echo "=============="

        # Example of merge job body. Functions can call
        # external scripts, etc.

        execute_auto_lint_check
        #execute_auto_doc_check
        #install_opnfv MCP
        #install_onap
        #execute_sanity_check
        #execute_tests $1

        # propagate result to the Jenkins job
        exit $EXIT
        ;;
    "daily")
        echo "=============="
        echo "AUTO daily job"
        echo "=============="

        # Example of daily job body. Functions can call
        # external scripts, etc.

        #install_opnfv MCP
        #install_onap
        #execute_sanity_check
        #execute_tests $1
        #push_results_and_logs_to_artifactory

        # propagate result to the Jenkins job
        exit $EXIT
        ;;
    *)
        echo
        echo "ERRROR: Unknown job type \"$1\""
        echo
        exit $EXIT_UNKNOWN_JOB_TYPE
        ;;
esac

exit $EXIT_UNKNOWN_JOB_TYPE

#
# end
#