-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtestMassDeploy.sh
executable file
·125 lines (102 loc) · 2.48 KB
/
testMassDeploy.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 -e
scriptDir=$( dirname $( readlink -f $0 ) )
workspaceDir="/tmp/massWorkspace"
cd $scriptDir/src/mby.fr/mass
go install
rm -rf -- "$workspaceDir"
massCmd="mass"
# Init a workspace
$massCmd init workspace $workspaceDir
cd $workspaceDir
# Init some projects
$massCmd init project p1 p2 p3
# Init some images
$massCmd init image p1/i11 p1/i12 p1/i13 p2/i21 p2/i22 p2/i23 p3/i31 p3/i32 p3/i33
configEnvs() {
for name in "$@"; do
cat <<EOF > envs/$name/config.yaml
labels:
lkey1: l$name
tags:
tkey1: t$name
environment:
ekey1: e$name
ctx: env
EOF
done
}
configProjects() {
for name in "$@"; do
cat <<EOF > $name/config.yaml
labels:
lkey2: l$name
tags:
tkey2: t$name
environment:
ekey2: e$name
ctx: project
EOF
done
}
configImages() {
for name in "$@"; do
projactName=$( echo $name | cut -d'/' -f1 )
imageName=$( echo $name | cut -d'/' -f2 )
cat <<EOF > $name/config.yaml
labels:
lkey3: l$name
tags:
tkey3: t$name
environment:
ekey3: e$name
ctx: image
buildargs:
barg3: b$name
runargs:
- hello world from runargs 3
EOF
cat <<EOF > $name/Dockerfile
FROM alpine
ARG barg3 notDefinedBuildArg
ENV envBarg3 \${barg3:-missingBuildArg}
ENV ekey2 NotDefinedEnvVar
RUN echo "foo"
RUN echo "\$barg3"
RUN echo "\${ekey2}"
RUN echo -e "#!/bin/sh\n" >> entrypoint.sh \
echo -e 'echo "buildArg: \$barg3"\n' >> entrypoint.sh \
echo -e 'echo "envBarg : \$envBarg3"\n' >> entrypoint.sh \
echo -e 'echo "envParam: \$ekey2"\n' >> entrypoint.sh \
echo -e 'echo "runArgs : \$@"\n' >> entrypoint.sh
ENTRYPOINT ["/bin/sh", "entrypoint.sh", "runArgFromDockerfile"]
CMD ["NotDefinedRunArg"]
EOF
done
}
# Init env configs
configEnvs dev
# Init project configs
configProjects p1 p2 p3
# Init image configs
configImages p1/i11 p1/i12 p1/i13 p2/i21 p2/i22 p2/i23 p3/i31 p3/i32 p3/i33
tree -Ca $workspaceDir
# Display config for env
echo "##### Testing mass config i/p2/i21 ..."
$massCmd config i/p2/i21
echo "##### Testing mass build i/p2/i21 -vv (DEBUG) ..."
$massCmd build i/p2/i21 p/p3 -vv
echo "##### Testing mass down i/p2/i21 -v (INFO) ..."
$massCmd down i/p2/i21 -v
echo "##### Testing mass up i/p2/i21 -vvv (TRACE) ..."
$massCmd up i/p2/i21 -vvv
echo "##### Testing mass down i/p3/i31 -v (INFO) ..."
$massCmd down i/p3/i31 -v
echo "##### Testing mass test i/p3/i31 -v (INFO) ..."
$massCmd test i/p3/i31 -v
#echo "##### Testing mass down p/p1 ..."
#$massCmd test p/p1 || true
#
#echo "##### Testing mass test p/p1 ..."
#$massCmd test p/p1 || true
echo
echo SUCCESS