Merge "openci: Add OPNFV scenario composition and test jobs for the demo"
[releng.git] / utils / push-test-logs.sh
1 #!/bin/bash
2 # SPDX-license-identifier: Apache-2.0
3 ##############################################################################
4 # Copyright (c) 2016 Orange and others.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
10 set -e
11 set -o pipefail
12
13 export PATH=$PATH:/usr/local/bin/
14
15 git_sha1="$(git rev-parse HEAD)"
16 res_build_date=${1:-$(date -u +"%Y-%m-%d_%H-%M-%S")}
17 project=$PROJECT
18 branch=${BRANCH##*/}
19 testbed=$NODE_NAME
20 dir_result="${HOME}/opnfv/$project/results/${branch}"
21 # src: https://wiki.opnfv.org/display/INF/Hardware+Infrastructure
22 # + intel-pod12 (vsperf)
23 node_list=(\
24 'lf-pod1' 'lf-pod2' 'intel-pod2' 'intel-pod12' \
25 'lf-virtual2' 'lf-virtual3' \
26 'intel-pod5' 'intel-pod6' 'intel-pod7' 'intel-pod8' 'intel-pod18' \
27 'ericsson-pod1' 'ericsson-pod2' \
28 'ericsson-virtual1' 'ericsson-virtual2'  'ericsson-virtual3' \
29 'ericsson-virtual4' 'ericsson-virtual5' 'ericsson-virtual12' \
30 'arm-pod1' 'arm-pod5' 'arm-pod6' \
31 'huawei-pod1' 'huawei-pod2' 'huawei-pod3' 'huawei-pod4' 'huawei-pod5' \
32 'huawei-pod6' 'huawei-pod7' 'huawei-pod12' \
33 'huawei-virtual1' 'huawei-virtual2' 'huawei-virtual3' 'huawei-virtual4' \
34 'huawei-virtual5' 'huawei-virtual8' 'huawei-virtual9' \
35 'zte-pod2' 'zte-pod3' 'zte-pod9' \
36 'zte-virtual1')
37
38
39 if [[ ! " ${node_list[@]} " =~ " ${testbed} " ]]; then
40     echo "This is not a CI POD. Aborting pushing the logs to artifacts."
41     exit 0
42 fi
43
44 if [[ "$branch" == "master" ]]; then
45     project_artifact=logs/$project/$testbed/$res_build_date
46 else
47     project_artifact=logs/$project/$testbed/$branch/$res_build_date
48 fi
49
50 # create the folder to store the results
51 mkdir -p $dir_result
52
53 # copy folder to artifact
54 if [ -d "$dir_result" ]; then
55     if [ "$(ls -A $dir_result)" ]; then
56         set +e
57         gsutil&>/dev/null
58         if [ $? != 0 ]; then
59             echo "Not possible to push results to artifact: gsutil not installed";
60         else
61             gsutil ls gs://artifacts.opnfv.org/"$project"/ &>/dev/null
62             if [ $? != 0 ]; then
63                 echo "Not possible to push results to artifact: some error happened when using gsutil";
64             else
65                 echo "Uploading logs to artifact $project_artifact"
66                 gsutil -m cp -r "$dir_result"/* gs://artifacts.opnfv.org/"$project_artifact"/ >/dev/null 2>&1
67                 echo "Logs can be found in http://artifacts.opnfv.org/logs_${project}_${testbed}.html"
68                 cd $dir_result
69                 files=($(find . -name \* -print|sed 's/^\.//'|sed '/^\s*$/d'))
70                 for f in ${files[@]}; do
71                     echo "http://artifacts.opnfv.org/${project_artifact}${f}"
72                 done
73             fi
74         fi
75     else
76           echo "Result folder is empty"
77     fi
78 fi