support configing buildserver VM per-build with sudo=

This adds the 'sudo' build field, which is just a script that is run as
root.  For more info, see the issue that this closes:

refs #318
closes #317
This commit is contained in:
Hans-Christoph Steiner
2017-06-28 23:01:45 +02:00
parent 747ac52a62
commit dfb07808d3
9 changed files with 138 additions and 14 deletions

View File

@@ -30,5 +30,6 @@ metadata_v0:
-e \"/Description: ''/d\"
-e '/antifeatures:/d'
-e '/buildozer:/d'
-e '/sudo:/d'
metadata/dump_*/*.yaml"
- diff -uw metadata/dump_*

View File

@@ -393,10 +393,23 @@ def build_local(app, build, vcs, build_dir, output_dir, log_dir, srclib_dir, ext
# create ..._toolsversion.log when running in builder vm
if onserver:
# before doing anything, run the sudo commands to setup the VM
if build.sudo:
logging.info("Running 'sudo' commands in %s" % os.getcwd())
p = FDroidPopen(['sudo', 'bash', '-x', '-c', build.sudo])
if p.returncode != 0:
raise BuildException("Error running sudo command for %s:%s" %
(app.id, build.versionName), p.output)
log_path = os.path.join(log_dir,
common.get_toolsversion_logname(app, build))
with open(log_path, 'w') as f:
f.write(get_android_tools_version_log(build.ndk_path()))
else:
if build.sudo:
logging.warning('%s:%s runs this on the buildserver with sudo:\n\t%s'
% (app.id, build.versionName, build.sudo))
# Prepare the source code...
root_dir, srclibpaths = common.prepare_source(vcs, app, build,

View File

@@ -1317,21 +1317,21 @@ def getsrclib(spec, srclib_dir, subdir=None, basepath=False,
gradle_version_regex = re.compile(r"[^/]*'com\.android\.tools\.build:gradle:([^\.]+\.[^\.]+).*'.*")
# Prepare the source code for a particular build
# 'vcs' - the appropriate vcs object for the application
# 'app' - the application details from the metadata
# 'build' - the build details from the metadata
# 'build_dir' - the path to the build directory, usually
# 'build/app.id'
# 'srclib_dir' - the path to the source libraries directory, usually
# 'build/srclib'
# 'extlib_dir' - the path to the external libraries directory, usually
# 'build/extlib'
# Returns the (root, srclibpaths) where:
# 'root' is the root directory, which may be the same as 'build_dir' or may
# be a subdirectory of it.
# 'srclibpaths' is information on the srclibs being used
def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=False, refresh=True):
""" Prepare the source code for a particular build
:param vcs: the appropriate vcs object for the application
:param app: the application details from the metadata
:param build: the build details from the metadata
:param build_dir: the path to the build directory, usually 'build/app.id'
:param srclib_dir: the path to the source libraries directory, usually 'build/srclib'
:param extlib_dir: the path to the external libraries directory, usually 'build/extlib'
Returns the (root, srclibpaths) where:
:param root: is the root directory, which may be the same as 'build_dir' or may
be a subdirectory of it.
:param srclibpaths: is information on the srclibs being used
"""
# Optionally, the actual app source can be in a subdirectory
if build.subdir:

View File

@@ -204,6 +204,7 @@ build_flags_order = [
'commit',
'subdir',
'submodules',
'sudo',
'init',
'patch',
'gradle',
@@ -246,6 +247,7 @@ class Build(dict):
self.commit = None
self.subdir = None
self.submodules = False
self.sudo = ''
self.init = ''
self.patch = []
self.gradle = []
@@ -333,6 +335,7 @@ flagtypes = {
'gradle': TYPE_LIST,
'antcommands': TYPE_LIST,
'gradleprops': TYPE_LIST,
'sudo': TYPE_SCRIPT,
'init': TYPE_SCRIPT,
'prebuild': TYPE_SCRIPT,
'build': TYPE_SCRIPT,

View File

@@ -29,6 +29,7 @@ Build:1.4,5
Build:1.5,6
commit=v1.5
gradle=yes
sudo=echo 'this is just a test'
Archive Policy:4 versions
Auto Update Mode:Version v%v

View File

@@ -69,6 +69,7 @@ builds:
srclibs: []
subdir: null
submodules: false
sudo: ''
target: android-10
versionCode: '3'
versionName: '1.2'
@@ -102,6 +103,7 @@ builds:
srclibs: []
subdir: null
submodules: false
sudo: ''
target: android-15
versionCode: '4'
versionName: '1.3'
@@ -135,6 +137,7 @@ builds:
srclibs: []
subdir: null
submodules: false
sudo: ''
target: android-10
versionCode: '5'
versionName: '1.4'
@@ -169,6 +172,7 @@ builds:
srclibs: []
subdir: null
submodules: false
sudo: echo 'this is just a test'
target: null
versionCode: '6'
versionName: '1.5'

View File

@@ -90,6 +90,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '13'
versionName: '1.12'
@@ -125,6 +126,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '16'
versionName: '1.15'
@@ -160,6 +162,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '19'
versionName: '1.18'
@@ -195,6 +198,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '20'
versionName: '1.19'
@@ -230,6 +234,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '21'
versionName: '1.20'
@@ -265,6 +270,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '22'
versionName: '1.21'
@@ -298,6 +304,7 @@ builds:
srclibs: []
subdir: null
submodules: false
sudo: ''
target: null
versionCode: '24'
versionName: '1.23'
@@ -332,6 +339,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '25'
versionName: '1.24'
@@ -366,6 +374,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '26'
versionName: '1.25'
@@ -400,6 +409,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '27'
versionName: '1.26'
@@ -434,6 +444,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '28'
versionName: '1.27'
@@ -468,6 +479,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '30'
versionName: '1.29'
@@ -502,6 +514,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '33'
versionName: '1.32'
@@ -535,6 +548,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '34'
versionName: '1.33'
@@ -569,6 +583,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '35'
versionName: '1.34'
@@ -603,6 +618,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '36'
versionName: '1.35'
@@ -637,6 +653,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '37'
versionName: '1.36'
@@ -671,6 +688,7 @@ builds:
srclibs: []
subdir: org_adaway/
submodules: false
sudo: ''
target: null
versionCode: '38'
versionName: '1.37'
@@ -717,6 +735,7 @@ builds:
- RootCommands@c940b0e503
subdir: AdAway
submodules: false
sudo: ''
target: null
versionCode: '40'
versionName: '2.1'
@@ -763,6 +782,7 @@ builds:
- RootCommands@c940b0e503
subdir: AdAway
submodules: false
sudo: ''
target: null
versionCode: '42'
versionName: '2.3'
@@ -799,6 +819,7 @@ builds:
srclibs: []
subdir: AdAway
submodules: false
sudo: ''
target: null
versionCode: '45'
versionName: '2.6'
@@ -835,6 +856,7 @@ builds:
srclibs: []
subdir: AdAway
submodules: false
sudo: ''
target: null
versionCode: '46'
versionName: '2.7'
@@ -871,6 +893,7 @@ builds:
srclibs: []
subdir: AdAway
submodules: false
sudo: ''
target: null
versionCode: '47'
versionName: '2.8'
@@ -907,6 +930,7 @@ builds:
srclibs: []
subdir: AdAway
submodules: false
sudo: ''
target: null
versionCode: '48'
versionName: 2.8.1
@@ -943,6 +967,7 @@ builds:
srclibs: []
subdir: AdAway
submodules: false
sudo: ''
target: null
versionCode: '49'
versionName: '2.9'
@@ -979,6 +1004,7 @@ builds:
srclibs: []
subdir: AdAway
submodules: false
sudo: ''
target: null
versionCode: '50'
versionName: 2.9.1
@@ -1015,6 +1041,7 @@ builds:
srclibs: []
subdir: AdAway
submodules: false
sudo: ''
target: null
versionCode: '51'
versionName: 2.9.2
@@ -1051,6 +1078,7 @@ builds:
srclibs: []
subdir: AdAway
submodules: false
sudo: ''
target: null
versionCode: '52'
versionName: '3.0'

View File

@@ -98,6 +98,7 @@ builds:
- AospMms@android-5.1.0_r3
subdir: null
submodules: false
sudo: ''
target: null
versionCode: '5'
versionName: 0.3.3
@@ -135,6 +136,7 @@ builds:
- GradleWitness@10f1269c0aafdc1d478efc005ed48f3a47d44278
subdir: null
submodules: true
sudo: ''
target: null
versionCode: '6'
versionName: 0.3.3
@@ -171,6 +173,7 @@ builds:
srclibs: []
subdir: null
submodules: true
sudo: ''
target: null
versionCode: '9'
versionName: 0.4.2
@@ -207,6 +210,7 @@ builds:
srclibs: []
subdir: null
submodules: true
sudo: ''
target: null
versionCode: '11'
versionName: 0.5.1
@@ -242,6 +246,7 @@ builds:
srclibs: []
subdir: null
submodules: true
sudo: ''
target: null
versionCode: '12'
versionName: 0.5.2
@@ -277,6 +282,7 @@ builds:
srclibs: []
subdir: null
submodules: true
sudo: ''
target: null
versionCode: '100'
versionName: 0.5.3
@@ -312,6 +318,7 @@ builds:
srclibs: []
subdir: null
submodules: true
sudo: ''
target: null
versionCode: '101'
versionName: 0.5.4
@@ -347,6 +354,7 @@ builds:
srclibs: []
subdir: null
submodules: true
sudo: ''
target: null
versionCode: '102'
versionName: 0.6.0

View File

@@ -91,6 +91,7 @@ builds:
srclibs: []
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '110'
versionName: 0.0.11-ARMv7
@@ -127,6 +128,7 @@ builds:
srclibs: []
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '111'
versionName: 0.0.11-ARM
@@ -163,6 +165,7 @@ builds:
srclibs: []
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '112'
versionName: 0.0.11-x86
@@ -199,6 +202,7 @@ builds:
srclibs: []
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '113'
versionName: 0.0.11-mips
@@ -234,6 +238,7 @@ builds:
- VLC@7c52aacbe
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1301'
versionName: 0.1.3-MIPS
@@ -269,6 +274,7 @@ builds:
- VLC@7c52aacbe
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1302'
versionName: 0.1.3-x86
@@ -304,6 +310,7 @@ builds:
- VLC@7c52aacbe
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1303'
versionName: 0.1.3-ARM
@@ -339,6 +346,7 @@ builds:
- VLC@7c52aacbe
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1304'
versionName: 0.1.3-ARMv7
@@ -373,6 +381,7 @@ builds:
- VLC@31ffb20309264994
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9002'
versionName: 0.9.0
@@ -407,6 +416,7 @@ builds:
- VLC@31ffb20309264994
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9004'
versionName: 0.9.0
@@ -441,6 +451,7 @@ builds:
- VLC@37e886d113b8b567c15208579fb2f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9102'
versionName: 0.9.1
@@ -475,6 +486,7 @@ builds:
- VLC@37e886d113b8b567c15208579fb2f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9104'
versionName: 0.9.1
@@ -509,6 +521,7 @@ builds:
- VLC@052600173f376ff58ff04d53746961a2
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9502'
versionName: 0.9.5
@@ -543,6 +556,7 @@ builds:
- VLC@052600173f376ff58ff04d53746961a2
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9504'
versionName: 0.9.5
@@ -577,6 +591,7 @@ builds:
- VLC-2.2@27f4799
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9602'
versionName: 0.9.6
@@ -611,6 +626,7 @@ builds:
- VLC-2.2@27f4799
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9604'
versionName: 0.9.6
@@ -645,6 +661,7 @@ builds:
- VLC-2.2@9e1c6ff
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9702'
versionName: 0.9.7
@@ -679,6 +696,7 @@ builds:
- VLC-2.2@9e1c6ff
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9704'
versionName: 0.9.7
@@ -713,6 +731,7 @@ builds:
- VLC-2.2@57cd36b
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9711'
versionName: 0.9.7.1
@@ -747,6 +766,7 @@ builds:
- VLC-2.2@57cd36b
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9712'
versionName: 0.9.7.1
@@ -781,6 +801,7 @@ builds:
- VLC-2.2@57cd36b
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9714'
versionName: 0.9.7.1
@@ -815,6 +836,7 @@ builds:
- VLC-2.2@f2db364
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9802'
versionName: 0.9.8
@@ -849,6 +871,7 @@ builds:
- VLC-2.2@f2db364
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9803'
versionName: 0.9.8
@@ -883,6 +906,7 @@ builds:
- VLC-2.2@f2db364
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9804'
versionName: 0.9.8
@@ -917,6 +941,7 @@ builds:
- VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9902'
versionName: 0.9.9
@@ -951,6 +976,7 @@ builds:
- VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9903'
versionName: 0.9.9
@@ -985,6 +1011,7 @@ builds:
- VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '9904'
versionName: 0.9.9
@@ -1019,6 +1046,7 @@ builds:
- VLC-2.2@e33e5de
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '10002'
versionName: 0.9.10
@@ -1053,6 +1081,7 @@ builds:
- VLC-2.2@e33e5de
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '10003'
versionName: 0.9.10
@@ -1087,6 +1116,7 @@ builds:
- VLC-2.2@e33e5de
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '10004'
versionName: 0.9.10
@@ -1121,6 +1151,7 @@ builds:
- VLC-2.2@036010e
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '10006'
versionName: 1.0.0
@@ -1155,6 +1186,7 @@ builds:
- VLC-2.2@036010e
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '10007'
versionName: 1.0.0
@@ -1189,6 +1221,7 @@ builds:
- VLC-2.2@036010e
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '10008'
versionName: 1.0.0
@@ -1223,6 +1256,7 @@ builds:
- VLC-2.2@59409d5
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '10102'
versionName: 1.0.1
@@ -1257,6 +1291,7 @@ builds:
- VLC-2.2@59409d5
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '10103'
versionName: 1.0.1
@@ -1291,6 +1326,7 @@ builds:
- VLC-2.2@59409d5
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '10104'
versionName: 1.0.1
@@ -1327,6 +1363,7 @@ builds:
- VLC@a9b19e4
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1010303'
versionName: 1.1.3
@@ -1363,6 +1400,7 @@ builds:
- VLC@a9b19e4
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1010304'
versionName: 1.1.3
@@ -1399,6 +1437,7 @@ builds:
- VLC@a9b19e4
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1010305'
versionName: 1.1.3
@@ -1435,6 +1474,7 @@ builds:
- VLC@e6b4585
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1010503'
versionName: 1.1.5
@@ -1471,6 +1511,7 @@ builds:
- VLC@e6b4585
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1010504'
versionName: 1.1.5
@@ -1507,6 +1548,7 @@ builds:
- VLC@e6b4585
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1010505'
versionName: 1.1.5
@@ -1543,6 +1585,7 @@ builds:
- VLC@551b670
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1010603'
versionName: 1.1.6
@@ -1579,6 +1622,7 @@ builds:
- VLC@551b670
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1010604'
versionName: 1.1.6
@@ -1615,6 +1659,7 @@ builds:
- VLC@551b670
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1010605'
versionName: 1.1.6
@@ -1651,6 +1696,7 @@ builds:
- VLC@23c8d86
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020003'
versionName: 1.2.0
@@ -1687,6 +1733,7 @@ builds:
- VLC@23c8d86
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020004'
versionName: 1.2.0
@@ -1723,6 +1770,7 @@ builds:
- VLC@23c8d86
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020005'
versionName: 1.2.0
@@ -1759,6 +1807,7 @@ builds:
- VLC@23c8d86
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020103'
versionName: 1.2.1
@@ -1795,6 +1844,7 @@ builds:
- VLC@23c8d86
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020104'
versionName: 1.2.1
@@ -1831,6 +1881,7 @@ builds:
- VLC@23c8d86
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020105'
versionName: 1.2.1
@@ -1867,6 +1918,7 @@ builds:
- VLC@7491a5f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020203'
versionName: 1.2.2
@@ -1903,6 +1955,7 @@ builds:
- VLC@7491a5f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020204'
versionName: 1.2.2
@@ -1939,6 +1992,7 @@ builds:
- VLC@7491a5f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020205'
versionName: 1.2.2
@@ -1975,6 +2029,7 @@ builds:
- VLC@7491a5f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020303'
versionName: 1.2.3
@@ -2011,6 +2066,7 @@ builds:
- VLC@7491a5f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020304'
versionName: 1.2.3
@@ -2047,6 +2103,7 @@ builds:
- VLC@7491a5f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020305'
versionName: 1.2.3
@@ -2083,6 +2140,7 @@ builds:
- VLC@7491a5f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020403'
versionName: 1.2.4
@@ -2119,6 +2177,7 @@ builds:
- VLC@7491a5f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020404'
versionName: 1.2.4
@@ -2155,6 +2214,7 @@ builds:
- VLC@7491a5f
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020405'
versionName: 1.2.4
@@ -2191,6 +2251,7 @@ builds:
- VLC@50accb8
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020503'
versionName: 1.2.5
@@ -2227,6 +2288,7 @@ builds:
- VLC@50accb8
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020504'
versionName: 1.2.5
@@ -2263,6 +2325,7 @@ builds:
- VLC@50accb8
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1020505'
versionName: 1.2.5
@@ -2299,6 +2362,7 @@ builds:
- VLC@d59b81a
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1030003'
versionName: 1.2.6
@@ -2335,6 +2399,7 @@ builds:
- VLC@d59b81a
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1030004'
versionName: 1.2.6
@@ -2371,6 +2436,7 @@ builds:
- VLC@d59b81a
subdir: vlc-android
submodules: false
sudo: ''
target: null
versionCode: '1030005'
versionName: 1.2.6