-
Notifications
You must be signed in to change notification settings - Fork 401
/
run.sh
executable file
·135 lines (118 loc) · 4 KB
/
run.sh
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
#!/bin/bash
#
# 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.
#
# Print all commands.
set -v
# Grab the parent (fabric_tests) directory.
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "${DIR}"
# generate the crypto materials
cd ./config
./generate.sh
# back to this dir
cd ${DIR}
# bind during CI tests, using the package dir as CWD
# Note: do not use env variables for binding settings, as subsequent launch calls will pick them up and bind again
if [[ "${BIND_IN_PACKAGE_DIR}" = "true" ]]; then
pushd $SUT_DIR
${CALL_METHOD} bind --caliper-bind-sut fabric:1.4
popd
fi
# change default settings (add config paths too)
export CALIPER_PROJECTCONFIG=../caliper.yaml
dispose () {
docker ps -a
${CALL_METHOD} launch manager --caliper-workspace phase7 --caliper-flow-only-end
}
# needed, since the peer looks for the latest, which is no longer on dockerhub
docker pull hyperledger/fabric-ccenv:1.4.8
docker image tag hyperledger/fabric-ccenv:1.4.8 hyperledger/fabric-ccenv:latest
# PHASE 1: just starting the network
${CALL_METHOD} launch manager --caliper-workspace phase1 --caliper-flow-only-start
rc=$?
if [[ ${rc} != 0 ]]; then
echo "Failed CI step 1";
dispose;
exit ${rc};
fi
# PHASE 2: just initialize the network
# TODO: contracts shouldn't be required at this point
${CALL_METHOD} launch manager --caliper-workspace phase2 --caliper-flow-only-init
rc=$?
if [[ ${rc} != 0 ]]; then
echo "Failed CI step 2";
dispose;
exit ${rc};
fi
# PHASE 3: just init network and install the contracts (channels marked as created)
${CALL_METHOD} launch manager --caliper-workspace phase3 --caliper-flow-skip-start --caliper-flow-skip-end --caliper-flow-skip-test
rc=$?
if [[ ${rc} != 0 ]]; then
echo "Failed CI step 3";
dispose;
exit ${rc};
fi
# PHASE 3 again: deployed contracts should be detected
${CALL_METHOD} launch manager --caliper-workspace phase3 --caliper-flow-skip-start --caliper-flow-skip-end --caliper-flow-skip-test
rc=$?
if [[ ${rc} != 0 ]]; then
echo "Failed CI step 4";
dispose;
exit ${rc};
fi
# PHASE 4: testing through the low-level API
${CALL_METHOD} launch manager --caliper-workspace phase4 --caliper-flow-only-test
rc=$?
if [[ ${rc} != 0 ]]; then
echo "Failed CI step 5";
dispose;
exit ${rc};
fi
# PHASE 5: testing through the gateway API (v1 SDK)
${CALL_METHOD} launch manager --caliper-workspace phase5 --caliper-flow-only-test --caliper-fabric-gateway-enabled
rc=$?
if [[ ${rc} != 0 ]]; then
echo "Failed CI step 6";
dispose;
exit ${rc};
fi
# UNBIND SDK, using the package dir as CWD
# Note: do not use env variables for unbinding settings, as subsequent launch calls will pick them up and bind again
if [[ "${BIND_IN_PACKAGE_DIR}" = "true" ]]; then
pushd $SUT_DIR
${CALL_METHOD} unbind --caliper-bind-sut fabric:1.4
popd
fi
# BIND with 2.2 SDK, using the package dir as CWD
# Note: do not use env variables for unbinding settings, as subsequent launch calls will pick them up and bind again
if [[ "${BIND_IN_PACKAGE_DIR}" = "true" ]]; then
pushd $SUT_DIR
${CALL_METHOD} bind --caliper-bind-sut fabric:2.2
popd
fi
# PHASE 6: testing through the gateway API (v2 SDK)
${CALL_METHOD} launch manager --caliper-workspace phase6 --caliper-flow-only-test
rc=$?
if [[ ${rc} != 0 ]]; then
echo "Failed CI step 7";
dispose;
exit ${rc};
fi
# PHASE 7: just disposing of the network
${CALL_METHOD} launch manager --caliper-workspace phase7 --caliper-flow-only-end
rc=$?
if [[ ${rc} != 0 ]]; then
echo "Failed CI step 8";
exit ${rc};
fi