diff options
author | David Ostrovsky <david@ostrovsky.org> | 2020-06-21 16:56:57 +0200 |
---|---|---|
committer | Matthias Sohn <matthias.sohn@sap.com> | 2020-07-17 01:10:15 +0200 |
commit | d35f0ffb7c33a11f8192ec64da5a736827ab472d (patch) | |
tree | 0730ca36c8d6e5bc0d6d5ad6d8633a6c9ae91e9f /tools | |
parent | 533272372945e0e5ddbab1502f185c5afd582f19 (diff) | |
download | jgit-d35f0ffb7c33a11f8192ec64da5a736827ab472d.tar.gz jgit-d35f0ffb7c33a11f8192ec64da5a736827ab472d.zip |
Bazel: Add workspace status command to stamp final artifact
Include implementation version in jgit library. This version is used
by other products that depend on JGit, and built using Bazel and not
consume officially released artifact from Central or Eclipse own Maven
repository.
Most notably, in Gerrit Code Review JGit agent that was previously
reported as "unknown", is now reported as:
JGit/v5.8.0.202006091008-r-16-g14c43828d
using this change [1].
[1] https://gerrit-review.googlesource.com/c/gerrit/+/272505
Change-Id: Ia50de9ac35b8dbe9e92d8ad7d0d14cd00f057863
Signed-off-by: David Ostrovsky <david@ostrovsky.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/workspace_status.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tools/workspace_status.py b/tools/workspace_status.py new file mode 100644 index 0000000000..ca9e0a98c9 --- /dev/null +++ b/tools/workspace_status.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python +# Copyright (C) 2020, David Ostrovsky <david@ostrovsky.org> and others +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Distribution License v. 1.0 which is available at +# http://www.eclipse.org/org/documents/edl-v10.php. +# +# SPDX-License-Identifier: BSD-3-Clause + +# This script will be run by bazel when the build process starts to +# generate key-value information that represents the status of the +# workspace. The output should be like +# +# KEY1 VALUE1 +# KEY2 VALUE2 +# +# If the script exits with non-zero code, it's considered as a failure +# and the output will be discarded. + +from __future__ import print_function +import os +import subprocess +import sys + +ROOT = os.path.abspath(__file__) +while not os.path.exists(os.path.join(ROOT, 'WORKSPACE')): + ROOT = os.path.dirname(ROOT) +CMD = ['git', 'describe', '--always', '--match', 'v[0-9].*', '--dirty'] + + +def revision(directory, parent): + try: + os.chdir(directory) + return subprocess.check_output(CMD).strip().decode("utf-8") + except OSError as err: + print('could not invoke git: %s' % err, file=sys.stderr) + sys.exit(1) + except subprocess.CalledProcessError as err: + # ignore "not a git repository error" to report unknown version + return None + finally: + os.chdir(parent) + + +print("STABLE_BUILD_JGIT_LABEL %s" % revision(ROOT, ROOT)) |