This repository has been archived by the owner on Nov 28, 2024. It is now read-only.
forked from fabric8-services/fabric8-tenant
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cico_setup.sh
125 lines (100 loc) · 2.92 KB
/
cico_setup.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
#!/bin/bash
# Output command before executing
set -x
# Exit on error
set -e
# Source environment variables of the jenkins slave
# that might interest this worker.
function load_jenkins_vars() {
if [ -e "jenkins-env" ]; then
cat jenkins-env \
| grep -E "(JENKINS_URL|GIT_BRANCH|GIT_COMMIT|BUILD_NUMBER|ghprbSourceBranch|ghprbActualCommit|BUILD_URL|ghprbPullId)=" \
| sed 's/^/export /g' \
> ~/.jenkins-env
source ~/.jenkins-env
fi
}
function install_deps() {
# We need to disable selinux for now, XXX
/usr/sbin/setenforce 0
# Get all the deps in
yum -y install \
docker \
make \
git \
curl
service docker start
echo 'CICO: Dependencies installed'
}
function cleanup_env {
EXIT_CODE=$?
echo "CICO: Cleanup environment: Tear down test environment"
make integration-test-env-tear-down
echo "CICO: Exiting with $EXIT_CODE"
}
function prepare() {
# Let's test
make docker-start
make docker-check-go-format
make docker-deps
#make docker-analyze-go-code
make docker-generate
make docker-build
echo 'CICO: Preparation complete'
}
function run_tests_without_coverage() {
make docker-test-unit-no-coverage
make integration-test-env-prepare
trap cleanup_env EXIT
# Check that postgresql container is healthy
check_postgres_healthiness
make docker-test-migration
make docker-test-integration-no-coverage
make docker-test-remote-no-coverage
echo "CICO: ran tests without coverage"
}
function check_postgres_healthiness(){
echo "CICO: Waiting for postgresql container to be healthy...";
while ! docker ps | grep postgres_integration_test | grep -q healthy; do
printf .;
sleep 1 ;
done;
echo "CICO: postgresql container is HEALTHY!";
}
function run_tests_with_coverage() {
# Run the unit tests that generate coverage information
make docker-test-unit
make integration-test-env-prepare
trap cleanup_env EXIT
# Check that postgresql container is healthy
check_postgres_healthiness
# Run the integration tests that generate coverage information
make docker-test-migration
make docker-test-integration
# Run the remote tests that generate coverage information
make docker-test-remote
# Output coverage
make docker-coverage-all
# Upload coverage to codecov.io
cp tmp/coverage.mode* coverage.txt
bash <(curl -s https://codecov.io/bash) -X search -f coverage.txt -t ad12dad7-ebdc-47bc-a016-8c05fa7356bc #-X fix
echo "CICO: ran tests and uploaded coverage"
}
function tag_push() {
TARGET=$1
docker tag fabric8-tenant-deploy $TARGET
docker push $TARGET
}
function deploy() {
# Let's deploy
make docker-image-deploy
TAG=$(echo $GIT_COMMIT | cut -c1-6)
tag_push registry.devshift.net/fabric8-services/fabric8-tenant:$TAG
tag_push registry.devshift.net/fabric8-services/fabric8-tenant:latest
echo 'CICO: Image pushed, ready to update deployed app'
}
function cico_setup() {
load_jenkins_vars;
install_deps;
prepare;
}