| Tom Stellard | 9d05de2 | 2022-07-26 16:52:53 -0700 | [diff] [blame] | 1 | #!/usr/bin/python3 |
| 2 | |
| 3 | from git import Repo |
| 4 | import re |
| 5 | import sys |
| 6 | |
| Tom Stellard | 5b108df | 2022-08-19 21:51:00 -0700 | [diff] [blame] | 7 | |
| 8 | def get_version_from_tag(tag): |
| Tobias Hieta | e46aa6d | 2023-05-26 08:11:06 +0200 | [diff] [blame] | 9 | m = re.match("llvmorg-([0-9]+)\.([0-9]+)\.([0-9]+)(-rc[0-9]+)?$", tag) |
| Tom Stellard | 5b108df | 2022-08-19 21:51:00 -0700 | [diff] [blame] | 10 | if m: |
| 11 | if m.lastindex == 4: |
| 12 | # We have an rc tag. |
| Tobias Hieta | e46aa6d | 2023-05-26 08:11:06 +0200 | [diff] [blame] | 13 | return m.group(1, 2, 3) |
| Tom Stellard | 5b108df | 2022-08-19 21:51:00 -0700 | [diff] [blame] | 14 | # We have a final release tag. |
| Tobias Hieta | 24c10ab | 2022-09-15 13:32:32 +0200 | [diff] [blame] | 15 | return (m.group(1), m.group(2), str(int(m.group(3)) + 1)) |
| Tom Stellard | 5b108df | 2022-08-19 21:51:00 -0700 | [diff] [blame] | 16 | |
| Tobias Hieta | e46aa6d | 2023-05-26 08:11:06 +0200 | [diff] [blame] | 17 | m = re.match("llvmorg-([0-9]+)-init", tag) |
| Tom Stellard | 5b108df | 2022-08-19 21:51:00 -0700 | [diff] [blame] | 18 | if m: |
| Tom Stellard | d5e6914 | 2024-01-25 12:24:50 -0800 | [diff] [blame] | 19 | return (m.group(1), "1", "0") |
| Tom Stellard | 5b108df | 2022-08-19 21:51:00 -0700 | [diff] [blame] | 20 | |
| 21 | raise Exception(f"error: Tag is not valid: {tag}") |
| 22 | |
| 23 | |
| Tom Stellard | 9d05de2 | 2022-07-26 16:52:53 -0700 | [diff] [blame] | 24 | version = sys.argv[1] |
| 25 | |
| 26 | repo = Repo() |
| 27 | |
| Tobias Hieta | e46aa6d | 2023-05-26 08:11:06 +0200 | [diff] [blame] | 28 | tag = repo.git.describe(tags=True, abbrev=0) |
| 29 | expected_version = ".".join(get_version_from_tag(tag)) |
| Tom Stellard | 9d05de2 | 2022-07-26 16:52:53 -0700 | [diff] [blame] | 30 | |
| 31 | if version != expected_version: |
| 32 | print("error: Expected version", expected_version, "but found version", version) |
| 33 | sys.exit(1) |
| 34 | |
| 35 | print("Versions match:", version, expected_version) |
| 36 | sys.exit(0) |