|
17 | 17 | pwd = os.getcwd() |
18 | 18 | os.chdir(os.path.abspath(os.path.dirname(sys.argv[0]))) |
19 | 19 | from parameters import * |
| 20 | +from utils import set_or_increase_version |
20 | 21 | from utils import update_service_ci_and_pom |
21 | 22 | from utils import update_root_pom |
22 | 23 | from utils import update_version |
@@ -81,7 +82,7 @@ def generate( |
81 | 82 | module = ARTIFACT_FORMAT.format(service) |
82 | 83 | group = GROUP_ID |
83 | 84 | output_folder = OUTPUT_FOLDER_FORMAT.format(service) |
84 | | - update_service_ci_and_pom(sdk_root, group, service, module) |
| 85 | + update_service_ci_and_pom(sdk_root, service, group, module) |
85 | 86 | update_root_pom(sdk_root, service) |
86 | 87 | update_version(sdk_root, output_folder) |
87 | 88 |
|
@@ -214,131 +215,6 @@ def get_version( |
214 | 215 | return None |
215 | 216 |
|
216 | 217 |
|
217 | | -def update_version(sdk_root: str, service: str): |
218 | | - pwd = os.getcwd() |
219 | | - try: |
220 | | - os.chdir(sdk_root) |
221 | | - print(os.getcwd()) |
222 | | - subprocess.run( |
223 | | - 'python3 eng/versioning/update_versions.py --ut library --bt client --sr', |
224 | | - stdout = subprocess.DEVNULL, |
225 | | - stderr = sys.stderr, |
226 | | - shell = True, |
227 | | - ) |
228 | | - subprocess.run( |
229 | | - 'python3 eng/versioning/update_versions.py --ut library --bt client --tf {0}/README.md' |
230 | | - .format(OUTPUT_FOLDER_FORMAT.format(service)), |
231 | | - stdout = subprocess.DEVNULL, |
232 | | - stderr = sys.stderr, |
233 | | - shell = True, |
234 | | - ) |
235 | | - finally: |
236 | | - os.chdir(pwd) |
237 | | - |
238 | | - |
239 | | -def write_version( |
240 | | - version_file: str, |
241 | | - lines: list, |
242 | | - index: int, |
243 | | - project: str, |
244 | | - stable_version: str, |
245 | | - current_version: str, |
246 | | -): |
247 | | - lines[index] = '{0};{1};{2}'.format(project, stable_version, |
248 | | - current_version) |
249 | | - with open(version_file, 'w') as fout: |
250 | | - fout.write('\n'.join(lines)) |
251 | | - fout.write('\n') |
252 | | - |
253 | | - |
254 | | -def set_or_increase_version( |
255 | | - sdk_root: str, |
256 | | - service: str, |
257 | | - preview = True, |
258 | | - version = None, |
259 | | - **kwargs, |
260 | | -) -> Tuple[str, str]: |
261 | | - version_file = os.path.join(sdk_root, 'eng/versioning/version_client.txt') |
262 | | - module = ARTIFACT_FORMAT.format(service) |
263 | | - project = '{0}:{1}'.format(GROUP_ID, module) |
264 | | - version_pattern = '(\d+)\.(\d+)\.(\d+)(-beta\.\d+)?' |
265 | | - version_format = '{0}.{1}.{2}{3}' |
266 | | - default_version = version if version else DEFAULT_VERSION |
267 | | - |
268 | | - with open(version_file, 'r') as fin: |
269 | | - lines = fin.read().splitlines() |
270 | | - version_index = -1 |
271 | | - for i, version_line in enumerate(lines): |
272 | | - version_line = version_line.strip() |
273 | | - if version_line.startswith('#'): |
274 | | - continue |
275 | | - versions = version_line.split(';') |
276 | | - if versions[0] == project: |
277 | | - if len(versions) != 3: |
278 | | - logging.error( |
279 | | - '[VERSION][Fallback] Unexpected version format "{0}"'. |
280 | | - format(version_line)) |
281 | | - stable_version = '' |
282 | | - current_version = default_version |
283 | | - else: |
284 | | - logging.info( |
285 | | - '[VERSION][Found] current version "{0}"'.format( |
286 | | - version_line)) |
287 | | - stable_version = versions[1] |
288 | | - current_version = versions[2] |
289 | | - version_index = i |
290 | | - break |
291 | | - else: |
292 | | - logging.info( |
293 | | - '[VERSION][Not Found] cannot find version for "{0}"'.format( |
294 | | - project)) |
295 | | - for i, version_line in enumerate(lines): |
296 | | - if version_line.startswith('{0}:'.format(GROUP_ID)): |
297 | | - version_index = i + 1 |
298 | | - lines = lines[:version_index] + [''] + lines[version_index:] |
299 | | - stable_version = '' |
300 | | - current_version = default_version |
301 | | - |
302 | | - # version is given, set and return |
303 | | - if version: |
304 | | - if not stable_version: |
305 | | - stable_version = version |
306 | | - logging.info( |
307 | | - '[VERSION][Set] set to given version "{0}"'.format(version)) |
308 | | - write_version(version_file, lines, version_index, project, |
309 | | - stable_version, version) |
310 | | - return stable_version, version |
311 | | - |
312 | | - current_versions = list(re.findall(version_pattern, current_version)[0]) |
313 | | - stable_versions = re.findall(version_pattern, stable_version) |
314 | | - # no stable version |
315 | | - if len(stable_versions) < 1 or stable_versions[0][-1] != '': |
316 | | - if not preview: |
317 | | - current_versions[-1] = '' |
318 | | - current_version = version_format.format(*current_versions) |
319 | | - if not stable_version: |
320 | | - stable_version = current_version |
321 | | - logging.info( |
322 | | - '[VERSION][Not Found] cannot find stable version, current version "{0}"' |
323 | | - .format(current_version)) |
324 | | - |
325 | | - write_version(version_file, lines, version_index, project, |
326 | | - stable_version, current_version) |
327 | | - else: |
328 | | - # TODO: auto-increase for stable version and beta version if possible |
329 | | - current_version = version_format.format(*current_versions) |
330 | | - if not stable_version: |
331 | | - stable_version = current_version |
332 | | - logging.warning( |
333 | | - '[VERSION][Not Implement] set to current version "{0}" by default'. |
334 | | - format(current_version)) |
335 | | - |
336 | | - write_version(version_file, lines, version_index, project, |
337 | | - stable_version, current_version) |
338 | | - |
339 | | - return stable_version, current_version |
340 | | - |
341 | | - |
342 | 218 | def parse_args() -> argparse.Namespace: |
343 | 219 | parser = argparse.ArgumentParser() |
344 | 220 | parser.add_argument( |
@@ -513,9 +389,11 @@ def sdk_automation(input_file: str, output_file: str): |
513 | 389 | else: |
514 | 390 | tag = 'package-resources-2020-10' |
515 | 391 |
|
| 392 | + module = ARTIFACT_FORMAT.format(service) |
516 | 393 | stable_version, current_version = set_or_increase_version( |
517 | 394 | sdk_root, |
518 | | - service, |
| 395 | + GROUP_ID, |
| 396 | + module |
519 | 397 | ) |
520 | 398 | succeeded = generate( |
521 | 399 | sdk_root, |
@@ -595,7 +473,8 @@ def main(): |
595 | 473 | service = get_and_update_service_from_api_specs(api_specs_file, spec, |
596 | 474 | args['service']) |
597 | 475 | args['service'] = service |
598 | | - stable_version, current_version = set_or_increase_version(sdk_root, **args) |
| 476 | + module = ARTIFACT_FORMAT.format(service) |
| 477 | + stable_version, current_version = set_or_increase_version(sdk_root, GROUP_ID, module, **args) |
599 | 478 | args['version'] = current_version |
600 | 479 | generate(sdk_root, **args) |
601 | 480 |
|
|
0 commit comments