forked from istio/istio
-
Notifications
You must be signed in to change notification settings - Fork 1
/
check_bazel_version.bzl
39 lines (33 loc) · 1.53 KB
/
check_bazel_version.bzl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def _parse_bazel_version(bazel_version):
# Remove commit from version.
version = bazel_version.split(" ", 1)[0]
# Split into (release, date) parts and only return the release
# as a tuple of integers.
parts = version.split("-", 1)
# Turn "release" into a tuple of strings
version_tuple = ()
for number in parts[0].split("."):
version_tuple += (int(number),)
return version_tuple
# acceptable min_version <= version <= max_version
def check_version():
check_bazel_version("0.5.4", "0.9.99")
# acceptable min_version <= version <= max_version
def check_bazel_version(min_version, max_version):
if "bazel_version" not in dir(native):
fail("\nCurrent Bazel version is lower than 0.2.1, expected at least %s\n" %
min_version)
elif not native.bazel_version:
print("\nCurrent Bazel is not a release version, cannot check for " +
"compatibility.")
print("Make sure that you are running at least Bazel %s.\n" % min_version)
else:
_version = _parse_bazel_version(native.bazel_version)
_min_version = _parse_bazel_version(min_version)
_max_version = _parse_bazel_version(max_version)
if _version < _min_version:
fail("\nCurrent Bazel version {} is too old, expected at least {}\n".format(
native.bazel_version, min_version))
if _version > _max_version:
fail("\nCurrent Bazel version {} is too new, expected at most {}\n".format(
native.bazel_version, max_version))