Merge branch 'stable-3.1'
* stable-3.1: Bazel: Remove platform specific workspace status script Bazel: Portable way to guess whether root directory is reached Bazel: Special handling for plugins not under git control Bazel: Migrate workspace status script to python Change-Id: Ia776ec2fa32916e75305653341c8ec4006fc6ada
This commit is contained in:
		@@ -1 +0,0 @@
 | 
			
		||||
echo STABLE_BUILD_GERRIT_LABEL dev
 | 
			
		||||
@@ -1,21 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
function rev() {
 | 
			
		||||
  cd $1; git describe --always --match "v[0-9].*" --dirty
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
echo STABLE_BUILD_GERRIT_LABEL $(rev .)
 | 
			
		||||
for p in plugins/* ; do
 | 
			
		||||
  test -d "$p" || continue
 | 
			
		||||
  echo STABLE_BUILD_$(echo $(basename $p)_LABEL|tr '[a-z]' '[A-Z]' ) $(rev $p || echo unknown)
 | 
			
		||||
done
 | 
			
		||||
							
								
								
									
										44
									
								
								tools/workspace_status.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								tools/workspace_status.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
#!/usr/bin/env python
 | 
			
		||||
 | 
			
		||||
# 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_GERRIT_LABEL %s" % revision(ROOT, ROOT))
 | 
			
		||||
for d in os.listdir(os.path.join(ROOT, 'plugins')):
 | 
			
		||||
    p = os.path.join('plugins', d)
 | 
			
		||||
    if os.path.isdir(p):
 | 
			
		||||
        v = revision(p, ROOT)
 | 
			
		||||
        print('STABLE_BUILD_%s_LABEL %s' % (os.path.basename(p).upper(),
 | 
			
		||||
                                            v if v else 'unknown'))
 | 
			
		||||
		Reference in New Issue
	
	Block a user