blob: 5a6eaa95868c03cf0a82968d65af884342265090 [file] [log] [blame]
Yong Nib2e4bfa2017-05-09 18:12:10 -07001#!/usr/bin/env python2.7
Jan Tattermusch7897ae92017-06-07 22:57:36 +02002# Copyright 2017 gRPC authors.
Yong Nib2e4bfa2017-05-09 18:12:10 -07003#
Jan Tattermusch7897ae92017-06-07 22:57:36 +02004# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
Yong Nib2e4bfa2017-05-09 18:12:10 -07007#
Jan Tattermusch7897ae92017-06-07 22:57:36 +02008# http://www.apache.org/licenses/LICENSE-2.0
Yong Nib2e4bfa2017-05-09 18:12:10 -07009#
Jan Tattermusch7897ae92017-06-07 22:57:36 +020010# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
Yong Nib2e4bfa2017-05-09 18:12:10 -070015
16# Dictionaries used for client matrix testing.
17
ncteisene4bef082017-12-11 16:51:34 -080018
Yong Nib2e4bfa2017-05-09 18:12:10 -070019def get_github_repo(lang):
ncteisene4bef082017-12-11 16:51:34 -080020 return {
Mehrdad Afshari2de11952018-02-12 13:08:16 -080021 'go': 'https://github.com:grpc/grpc-go.git',
22 'java': 'https://github.com:grpc/grpc-java.git',
23 'node': 'https://github.com:grpc/grpc-node.git',
ncteisene4bef082017-12-11 16:51:34 -080024 # all other languages use the grpc.git repo.
Mehrdad Afshari2de11952018-02-12 13:08:16 -080025 }.get(lang, 'https://github.com/grpc/grpc.git')
ncteisene4bef082017-12-11 16:51:34 -080026
Yong Nib2e4bfa2017-05-09 18:12:10 -070027
Alex Polcyn84263292017-11-15 00:32:50 +000028def get_release_tags(lang):
ncteisene4bef082017-12-11 16:51:34 -080029 return map(lambda r: get_release_tag_name(r), LANG_RELEASE_MATRIX[lang])
30
Alex Polcyn84263292017-11-15 00:32:50 +000031
32def get_release_tag_name(release_info):
ncteisene4bef082017-12-11 16:51:34 -080033 assert len(release_info.keys()) == 1
34 return release_info.keys()[0]
35
Alex Polcyn84263292017-11-15 00:32:50 +000036
37def should_build_docker_interop_image_from_release_tag(lang):
ncteisene4bef082017-12-11 16:51:34 -080038 if lang in ['go', 'java', 'node']:
39 return False
40 return True
41
Alex Polcyn84263292017-11-15 00:32:50 +000042
Yong Nib2e4bfa2017-05-09 18:12:10 -070043# Dictionary of runtimes per language
44LANG_RUNTIME_MATRIX = {
ncteisene4bef082017-12-11 16:51:34 -080045 'cxx': ['cxx'], # This is actually debian8.
Yong Nib2e4bfa2017-05-09 18:12:10 -070046 'go': ['go1.7', 'go1.8'],
Yong Nib92813b2017-05-31 12:07:09 -070047 'java': ['java_oracle8'],
Adele Zhoua00f9722017-11-15 15:12:02 -080048 'python': ['python'],
Adele Zhoubcd23cd2017-11-01 15:42:00 -070049 'node': ['node'],
Adele Zhou1487c9f2017-10-26 17:59:18 -070050 'ruby': ['ruby'],
Adele Zhou9fe79dc2017-11-02 14:08:29 -070051 'php': ['php', 'php7'],
Adele Zhouf7f38d12017-11-02 17:57:54 -070052 'csharp': ['csharp', 'csharpcoreclr'],
Yong Nib2e4bfa2017-05-09 18:12:10 -070053}
54
55# Dictionary of releases per language. For each language, we need to provide
Yong Nibbd348c2017-07-18 08:38:11 -070056# a release tag pointing to the latest build of the branch.
Yong Nib2e4bfa2017-05-09 18:12:10 -070057LANG_RELEASE_MATRIX = {
Yong Nibbd348c2017-07-18 08:38:11 -070058 'cxx': [
ncteisene4bef082017-12-11 16:51:34 -080059 {
60 'v1.0.1': None
61 },
62 {
63 'v1.1.4': None
64 },
65 {
66 'v1.2.5': None
67 },
68 {
69 'v1.3.9': None
70 },
71 {
72 'v1.4.2': None
73 },
74 {
75 'v1.6.6': None
76 },
77 {
78 'v1.7.2': None
79 },
Mehrdad Afsharia3cd72b2017-12-12 19:06:53 -080080 {
81 'v1.8.0': None
82 },
Mehrdad Afshari2de11952018-02-12 13:08:16 -080083 {
84 'v1.9.1': None
85 },
Yong Nibbd348c2017-07-18 08:38:11 -070086 ],
87 'go': [
ncteisene4bef082017-12-11 16:51:34 -080088 {
89 'v1.0.5': None
90 },
91 {
92 'v1.2.1': None
93 },
94 {
95 'v1.3.0': None
96 },
97 {
98 'v1.4.2': None
99 },
100 {
101 'v1.5.2': None
102 },
103 {
104 'v1.6.0': None
105 },
106 {
107 'v1.7.4': None
108 },
109 {
Menghan Li5bbf9e52017-12-12 16:50:39 -0800110 'v1.8.2': None
ncteisene4bef082017-12-11 16:51:34 -0800111 },
Menghan Li2146b3a2018-01-04 14:57:27 -0800112 {
Menghan Li63efbc62018-01-19 13:19:39 -0800113 'v1.9.2': None
Menghan Li2146b3a2018-01-04 14:57:27 -0800114 },
Yong Nibbd348c2017-07-18 08:38:11 -0700115 ],
116 'java': [
ncteisene4bef082017-12-11 16:51:34 -0800117 {
118 'v1.0.3': None
119 },
120 {
121 'v1.1.2': None
122 },
123 {
124 'v1.2.0': None
125 },
126 {
127 'v1.3.1': None
128 },
129 {
130 'v1.4.0': None
131 },
132 {
133 'v1.5.0': None
134 },
135 {
136 'v1.6.1': None
137 },
138 {
139 'v1.7.0': None
140 },
141 {
142 'v1.8.0': None
143 },
Kun Zhang07fb6b52018-01-11 14:27:25 -0800144 {
Eric Anderson540a1042018-02-09 16:28:16 -0800145 'v1.9.1': None
Kun Zhang07fb6b52018-01-11 14:27:25 -0800146 },
Yong Nibbd348c2017-07-18 08:38:11 -0700147 ],
Adele Zhoua00f9722017-11-15 15:12:02 -0800148 'python': [
ncteisene4bef082017-12-11 16:51:34 -0800149 {
150 'v1.0.x': None
151 },
152 {
153 'v1.1.4': None
154 },
155 {
156 'v1.2.5': None
157 },
158 {
159 'v1.3.9': None
160 },
161 {
162 'v1.4.2': None
163 },
164 {
165 'v1.6.6': None
166 },
167 {
168 'v1.7.2': None
169 },
Mehrdad Afsharia3cd72b2017-12-12 19:06:53 -0800170 {
171 'v1.8.1': None # first python 1.8 release is 1.8.1
172 },
Mehrdad Afshari2de11952018-02-12 13:08:16 -0800173 {
174 'v1.9.1': None
175 },
Adele Zhou4fba3782017-11-14 17:43:37 -0800176 ],
Adele Zhou1487c9f2017-10-26 17:59:18 -0700177 'node': [
ncteisene4bef082017-12-11 16:51:34 -0800178 {
179 'v1.0.1': None
180 },
181 {
182 'v1.1.4': None
183 },
184 {
185 'v1.2.5': None
186 },
187 {
188 'v1.3.9': None
189 },
190 {
191 'v1.4.2': None
192 },
193 {
194 'v1.6.6': None
195 },
Alex Polcyn84263292017-11-15 00:32:50 +0000196 #{'v1.7.1': None}, Failing tests
Adele Zhou1487c9f2017-10-26 17:59:18 -0700197 ],
198 'ruby': [
ncteisene4bef082017-12-11 16:51:34 -0800199 {
200 'v1.0.1': {
201 'patch': [
202 'tools/dockerfile/interoptest/grpc_interop_ruby/Dockerfile',
203 'tools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh',
204 ]
205 }
206 },
207 {
208 'v1.1.4': None
209 },
210 {
211 'v1.2.5': None
212 },
213 {
214 'v1.3.9': None
215 },
216 {
217 'v1.4.2': None
218 },
219 {
220 'v1.6.6': None
221 },
222 {
223 'v1.7.2': None
224 },
Mehrdad Afsharia3cd72b2017-12-12 19:06:53 -0800225 {
226 'v1.8.0': None
227 },
Mehrdad Afshari2de11952018-02-12 13:08:16 -0800228 {
229 'v1.9.1': None
230 },
Adele Zhou1487c9f2017-10-26 17:59:18 -0700231 ],
Adele Zhou9fe79dc2017-11-02 14:08:29 -0700232 'php': [
ncteisene4bef082017-12-11 16:51:34 -0800233 {
234 'v1.0.1': None
235 },
236 {
237 'v1.1.4': None
238 },
239 {
240 'v1.2.5': None
241 },
242 {
243 'v1.3.9': None
244 },
245 {
246 'v1.4.2': None
247 },
248 {
249 'v1.6.6': None
250 },
251 {
252 'v1.7.2': None
253 },
Mehrdad Afsharia3cd72b2017-12-12 19:06:53 -0800254 {
255 'v1.8.0': None
256 },
Mehrdad Afshari2de11952018-02-12 13:08:16 -0800257 {
258 'v1.9.1': None
259 },
Adele Zhou9fe79dc2017-11-02 14:08:29 -0700260 ],
ncteisene4bef082017-12-11 16:51:34 -0800261 'csharp': [
Alex Polcyn84263292017-11-15 00:32:50 +0000262 #{'v1.0.1': None},
ncteisene4bef082017-12-11 16:51:34 -0800263 {
264 'v1.1.4': None
265 },
266 {
267 'v1.2.5': None
268 },
269 {
270 'v1.3.9': None
271 },
272 {
273 'v1.4.2': None
274 },
275 {
276 'v1.6.6': None
277 },
278 {
279 'v1.7.2': None
280 },
Mehrdad Afsharia3cd72b2017-12-12 19:06:53 -0800281 {
282 'v1.8.0': None
283 },
Mehrdad Afshari2de11952018-02-12 13:08:16 -0800284 {
285 'v1.9.1': None
286 },
Adele Zhouf7f38d12017-11-02 17:57:54 -0700287 ],
Yong Nib2e4bfa2017-05-09 18:12:10 -0700288}