blob: 7ba93a2734c2d4b847847c32e0a90d3ffb867ac7 [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 {
Jakob Roland Andersen3ebfe922018-03-06 16:39:27 +010021 'dart': 'https://github.com/grpc/grpc-dart.git',
Eric Gribkoffca455542018-02-15 15:24:17 -080022 'go': 'https://github.com/grpc/grpc-go.git',
23 'java': 'https://github.com/grpc/grpc-java.git',
24 'node': 'https://github.com/grpc/grpc-node.git',
ncteisene4bef082017-12-11 16:51:34 -080025 # all other languages use the grpc.git repo.
Mehrdad Afshari2de11952018-02-12 13:08:16 -080026 }.get(lang, 'https://github.com/grpc/grpc.git')
ncteisene4bef082017-12-11 16:51:34 -080027
Yong Nib2e4bfa2017-05-09 18:12:10 -070028
Alex Polcyn84263292017-11-15 00:32:50 +000029def get_release_tags(lang):
ncteisene4bef082017-12-11 16:51:34 -080030 return map(lambda r: get_release_tag_name(r), LANG_RELEASE_MATRIX[lang])
31
Alex Polcyn84263292017-11-15 00:32:50 +000032
33def get_release_tag_name(release_info):
ncteisene4bef082017-12-11 16:51:34 -080034 assert len(release_info.keys()) == 1
35 return release_info.keys()[0]
36
Alex Polcyn84263292017-11-15 00:32:50 +000037
38def should_build_docker_interop_image_from_release_tag(lang):
ncteisene4bef082017-12-11 16:51:34 -080039 if lang in ['go', 'java', 'node']:
40 return False
41 return True
42
Alex Polcyn84263292017-11-15 00:32:50 +000043
Yong Nib2e4bfa2017-05-09 18:12:10 -070044# Dictionary of runtimes per language
45LANG_RUNTIME_MATRIX = {
ncteisene4bef082017-12-11 16:51:34 -080046 'cxx': ['cxx'], # This is actually debian8.
Yong Nib2e4bfa2017-05-09 18:12:10 -070047 'go': ['go1.7', 'go1.8'],
Yong Nib92813b2017-05-31 12:07:09 -070048 'java': ['java_oracle8'],
Adele Zhoua00f9722017-11-15 15:12:02 -080049 'python': ['python'],
Adele Zhoubcd23cd2017-11-01 15:42:00 -070050 'node': ['node'],
Adele Zhou1487c9f2017-10-26 17:59:18 -070051 'ruby': ['ruby'],
Adele Zhou9fe79dc2017-11-02 14:08:29 -070052 'php': ['php', 'php7'],
Adele Zhouf7f38d12017-11-02 17:57:54 -070053 'csharp': ['csharp', 'csharpcoreclr'],
Yong Nib2e4bfa2017-05-09 18:12:10 -070054}
55
56# Dictionary of releases per language. For each language, we need to provide
Yong Nibbd348c2017-07-18 08:38:11 -070057# a release tag pointing to the latest build of the branch.
Yong Nib2e4bfa2017-05-09 18:12:10 -070058LANG_RELEASE_MATRIX = {
Yong Nibbd348c2017-07-18 08:38:11 -070059 'cxx': [
ncteisene4bef082017-12-11 16:51:34 -080060 {
61 'v1.0.1': None
62 },
63 {
64 'v1.1.4': None
65 },
66 {
67 'v1.2.5': None
68 },
69 {
70 'v1.3.9': None
71 },
72 {
73 'v1.4.2': None
74 },
75 {
76 'v1.6.6': None
77 },
78 {
79 'v1.7.2': None
80 },
Mehrdad Afsharia3cd72b2017-12-12 19:06:53 -080081 {
82 'v1.8.0': None
83 },
Mehrdad Afshari2de11952018-02-12 13:08:16 -080084 {
85 'v1.9.1': None
86 },
Yong Nibbd348c2017-07-18 08:38:11 -070087 ],
88 'go': [
ncteisene4bef082017-12-11 16:51:34 -080089 {
90 'v1.0.5': None
91 },
92 {
93 'v1.2.1': None
94 },
95 {
96 'v1.3.0': None
97 },
98 {
99 'v1.4.2': None
100 },
101 {
102 'v1.5.2': None
103 },
104 {
105 'v1.6.0': None
106 },
107 {
108 'v1.7.4': None
109 },
110 {
Menghan Li5bbf9e52017-12-12 16:50:39 -0800111 'v1.8.2': None
ncteisene4bef082017-12-11 16:51:34 -0800112 },
Menghan Li2146b3a2018-01-04 14:57:27 -0800113 {
Menghan Li63efbc62018-01-19 13:19:39 -0800114 'v1.9.2': None
Menghan Li2146b3a2018-01-04 14:57:27 -0800115 },
Menghan Liea1fefe2018-02-15 15:22:31 -0800116 {
117 'v1.10.0': None
118 },
Yong Nibbd348c2017-07-18 08:38:11 -0700119 ],
120 'java': [
ncteisene4bef082017-12-11 16:51:34 -0800121 {
122 'v1.0.3': None
123 },
124 {
125 'v1.1.2': None
126 },
127 {
128 'v1.2.0': None
129 },
130 {
131 'v1.3.1': None
132 },
133 {
134 'v1.4.0': None
135 },
136 {
137 'v1.5.0': None
138 },
139 {
140 'v1.6.1': None
141 },
142 {
143 'v1.7.0': None
144 },
145 {
146 'v1.8.0': None
147 },
Kun Zhang07fb6b52018-01-11 14:27:25 -0800148 {
Eric Anderson540a1042018-02-09 16:28:16 -0800149 'v1.9.1': None
Kun Zhang07fb6b52018-01-11 14:27:25 -0800150 },
Eric Gribkoff6dc65d92018-02-15 15:37:19 -0800151 {
152 'v1.10.0': None
153 },
Yong Nibbd348c2017-07-18 08:38:11 -0700154 ],
Adele Zhoua00f9722017-11-15 15:12:02 -0800155 'python': [
ncteisene4bef082017-12-11 16:51:34 -0800156 {
157 'v1.0.x': None
158 },
159 {
160 'v1.1.4': None
161 },
162 {
163 'v1.2.5': None
164 },
165 {
166 'v1.3.9': None
167 },
168 {
169 'v1.4.2': None
170 },
171 {
172 'v1.6.6': None
173 },
174 {
175 'v1.7.2': None
176 },
Mehrdad Afsharia3cd72b2017-12-12 19:06:53 -0800177 {
178 'v1.8.1': None # first python 1.8 release is 1.8.1
179 },
Mehrdad Afshari2de11952018-02-12 13:08:16 -0800180 {
181 'v1.9.1': None
182 },
Adele Zhou4fba3782017-11-14 17:43:37 -0800183 ],
Adele Zhou1487c9f2017-10-26 17:59:18 -0700184 'node': [
murgatroid99993769d2018-03-16 12:11:59 -0700185 {
186 'v1.0.1': None
187 },
murgatroid999a09eef2018-03-16 10:56:13 -0700188 # {'v1.1.4': None},
189 # {'v1.2.5': None},
190 # {'v1.3.9': None},
191 # {'v1.4.2': None},
192 # {'v1.6.6': None},
Adele Zhou5657cd52018-03-21 11:30:28 -0700193 # TODO: https://github.com/grpc/grpc-node/issues/235.
194 #{
195 # 'v1.7.2': None
196 #},
murgatroid99dfb41b62018-03-16 10:13:31 -0700197 {
198 'v1.8.4': None
199 },
200 {
201 'v1.9.1': None
202 }
Adele Zhou1487c9f2017-10-26 17:59:18 -0700203 ],
204 'ruby': [
ncteisene4bef082017-12-11 16:51:34 -0800205 {
206 'v1.0.1': {
207 'patch': [
208 'tools/dockerfile/interoptest/grpc_interop_ruby/Dockerfile',
209 'tools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh',
210 ]
211 }
212 },
213 {
214 'v1.1.4': None
215 },
216 {
217 'v1.2.5': None
218 },
219 {
220 'v1.3.9': None
221 },
222 {
223 'v1.4.2': None
224 },
225 {
226 'v1.6.6': None
227 },
228 {
229 'v1.7.2': None
230 },
Mehrdad Afsharia3cd72b2017-12-12 19:06:53 -0800231 {
232 'v1.8.0': None
233 },
Mehrdad Afshari2de11952018-02-12 13:08:16 -0800234 {
235 'v1.9.1': None
236 },
Adele Zhou1487c9f2017-10-26 17:59:18 -0700237 ],
Adele Zhou9fe79dc2017-11-02 14:08:29 -0700238 'php': [
ncteisene4bef082017-12-11 16:51:34 -0800239 {
240 'v1.0.1': None
241 },
242 {
243 'v1.1.4': None
244 },
245 {
246 'v1.2.5': None
247 },
248 {
249 'v1.3.9': None
250 },
251 {
252 'v1.4.2': None
253 },
254 {
255 'v1.6.6': None
256 },
257 {
258 'v1.7.2': None
259 },
Mehrdad Afsharia3cd72b2017-12-12 19:06:53 -0800260 {
261 'v1.8.0': None
262 },
Mehrdad Afshari2de11952018-02-12 13:08:16 -0800263 {
264 'v1.9.1': None
265 },
Adele Zhou9fe79dc2017-11-02 14:08:29 -0700266 ],
ncteisene4bef082017-12-11 16:51:34 -0800267 'csharp': [
Alex Polcyn84263292017-11-15 00:32:50 +0000268 #{'v1.0.1': None},
ncteisene4bef082017-12-11 16:51:34 -0800269 {
270 'v1.1.4': None
271 },
272 {
273 'v1.2.5': None
274 },
275 {
276 'v1.3.9': None
277 },
278 {
279 'v1.4.2': None
280 },
281 {
282 'v1.6.6': None
283 },
284 {
285 'v1.7.2': None
286 },
Mehrdad Afsharia3cd72b2017-12-12 19:06:53 -0800287 {
288 'v1.8.0': None
289 },
Mehrdad Afshari2de11952018-02-12 13:08:16 -0800290 {
291 'v1.9.1': None
292 },
Adele Zhouf7f38d12017-11-02 17:57:54 -0700293 ],
Yong Nib2e4bfa2017-05-09 18:12:10 -0700294}