Check bazel version with the workspace
diff --git a/WORKSPACE b/WORKSPACE index fd4aa93..e1b7b23 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -1,6 +1,8 @@ workspace(name = "build_bazel_e4b") load("//tools/build_defs:eclipse.bzl", "load_eclipse_deps") +load(":bazel_version.bzl", "check_bazel_version") +check_bazel_version("0.4.5") load_eclipse_deps()
diff --git a/bazel_version.bzl b/bazel_version.bzl new file mode 100644 index 0000000..9d78389 --- /dev/null +++ b/bazel_version.bzl
@@ -0,0 +1,31 @@ +# Copied from https://github.com/tensorflow/tensorflow/blob/dfa7d2d2953c3d33d2e8deb898240be008de5be6/tensorflow/workspace.bzl + +# Parse the bazel version string from `native.bazel_version`. +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 += (str(number),) + return version_tuple + +# Check that a specific bazel version is being used. +def check_bazel_version(bazel_version): + if "bazel_version" not in dir(native): + fail("\nCurrent Bazel version is lower than 0.2.1, expected at least %s\n" % bazel_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" % bazel_version) + else: + current_bazel_version = _parse_bazel_version(native.bazel_version) + minimum_bazel_version = _parse_bazel_version(bazel_version) + if minimum_bazel_version > current_bazel_version: + fail("\nCurrent Bazel version is {}, expected at least {}\n".format( + native.bazel_version, bazel_version)) + pass