|
4 | 4 | import re
|
5 | 5 | import sys
|
6 | 6 |
|
| 7 | + |
| 8 | +def get_version_from_tag(tag): |
| 9 | + m = re.match('llvmorg-([0-9]+)\.([0-9]+)\.([0-9]+)(-rc[0-9]+)?$', tag) |
| 10 | + if m: |
| 11 | + if m.lastindex == 4: |
| 12 | + # We have an rc tag. |
| 13 | + return m.group(1,2,3) |
| 14 | + # We have a final release tag. |
| 15 | + return (m.group(1), m.group(2), int(m.group(3)) + 1) |
| 16 | + |
| 17 | + m = re.match('llvmorg-([0-9]+)-init', tag) |
| 18 | + if m: |
| 19 | + return (int(m.group(1)) + 1, 0, 0) |
| 20 | + |
| 21 | + raise Exception(f"error: Tag is not valid: {tag}") |
| 22 | + |
| 23 | + |
7 | 24 | version = sys.argv[1]
|
8 | 25 |
|
9 | 26 | repo = Repo()
|
10 | 27 |
|
11 | 28 | tag = repo.git.describe(tags = True, abbrev=0)
|
12 |
| -m = re.match('llvmorg-([0-9]+)\.([0-9]+)\.([0-9]+)', tag) |
13 |
| - |
14 |
| -if m: |
15 |
| - expected_major = m.group(1) |
16 |
| - expected_minor = m.group(2) |
17 |
| - expected_patch = int(m.group(3)) + 1 |
18 |
| -else: |
19 |
| - # If the previous tag is llvmorg-X-init, then we should be at version X.0.0. |
20 |
| - m = re.match('llvmorg-([0-9]+)-init', tag) |
21 |
| - if not m: |
22 |
| - print("error: Tag is not valid: ", tag) |
23 |
| - sys.exit(1) |
24 |
| - expected_major = m.group(1) |
25 |
| - expected_minor = 0 |
26 |
| - expected_patch = 0 |
27 |
| - |
28 |
| -expected_version = f"{expected_major}.{expected_minor}.{expected_patch}" |
29 |
| - |
30 |
| -m = re.match("[0-9]+\.[0-9]+\.[0-9]+", version) |
31 |
| -if not m: |
32 |
| - print("error: Version is not valid: ", version) |
33 |
| - sys.exit(1) |
| 29 | +expected_version = '.'.join(get_version_from_tag(tag)) |
34 | 30 |
|
35 | 31 | if version != expected_version:
|
36 | 32 | print("error: Expected version", expected_version, "but found version", version)
|
|
0 commit comments