From 444ae95380daed819c0e77da56d3acccfa7c36c1 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 3 Jan 2018 12:16:20 +0100 Subject: [PATCH 1/3] build: log the start time of the current build session Since `fdroid build --all` can run a long time, knowing when that command was started will be very useful information for figuring out what the build server is doing. --- fdroidserver/build.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 82f72c9a..8bbe8aab 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -288,6 +288,10 @@ def force_gradle_build_tools(build_dir, build_tools): path) +def _get_build_timestamp(): + return time.strftime("%Y-%m-%d %H:%M:%SZ", time.gmtime()) + + def transform_first_char(string, method): """Uses method() on the first character of string.""" if len(string) == 0: @@ -1055,6 +1059,7 @@ def parse_commandline(): options = None config = None buildserverid = None +starttime = _get_build_timestamp() def main(): @@ -1174,6 +1179,7 @@ def main(): for build in app.builds: wikilog = None + build_starttime = _get_build_timestamp() tools_version_log = '' if not options.onserver: tools_version_log = get_android_tools_version_log(build.ndk_path()) @@ -1270,7 +1276,7 @@ def main(): f.write('versionCode: %s\nversionName: %s\ncommit: %s\n' % (build.versionCode, build.versionName, build.commit)) f.write('Build completed at ' - + time.strftime("%Y-%m-%d %H:%M:%SZ", time.gmtime()) + '\n') + + _get_build_timestamp() + '\n') f.write('\n' + tools_version_log + '\n') f.write(str(e)) logging.error("Could not build app %s: %s" % (appid, e)) @@ -1295,7 +1301,9 @@ def main(): newpage = site.Pages[lastbuildpage] with open(os.path.join('tmp', 'fdroidserverid')) as fp: fdroidserverid = fp.read().rstrip() - txt = "* build completed at " + time.strftime("%Y-%m-%d %H:%M:%SZ", time.gmtime()) + '\n' \ + txt = "* build session started at " + starttime + '\n' \ + + "* this build started at " + build_starttime + '\n' \ + + "* this build completed at " + _get_build_timestamp() + '\n' \ + '* fdroidserverid: [https://gitlab.com/fdroid/fdroidserver/commit/' \ + fdroidserverid + ' ' + fdroidserverid + ']\n\n' if options.onserver: From 54965455b1ea032f6c882d0725405692359cabfc Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 3 Jan 2018 13:58:06 +0100 Subject: [PATCH 2/3] build: include buildserverid on wiki build logs, if it exists When `fdroid build` is run using the buildserver, it should fetch the buildserverid on the first build. Seems this was really a silly bug in 837fc99d74f7694a64f014f3d38a8b07d9e8b3bd --- fdroidserver/build.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 8bbe8aab..83cb18ab 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -79,6 +79,7 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force): buildserverid = subprocess.check_output(['vagrant', 'ssh', '-c', 'cat /home/vagrant/buildserverid'], cwd='builder').rstrip() + logging.debug(_('Fetched buildserverid from VM: ') + buildserverid) # Open SSH connection... logging.info("Connecting to virtual machine...") @@ -1306,7 +1307,7 @@ def main(): + "* this build completed at " + _get_build_timestamp() + '\n' \ + '* fdroidserverid: [https://gitlab.com/fdroid/fdroidserver/commit/' \ + fdroidserverid + ' ' + fdroidserverid + ']\n\n' - if options.onserver: + if buildserverid: txt += '* buildserverid: [https://gitlab.com/fdroid/fdroidserver/commit/' \ + buildserverid + ' ' + buildserverid + ']\n\n' txt += tools_version_log + '\n\n' From fba4fa6ca6085a01f83ca7a46467779f93fedd0b Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 3 Jan 2018 14:32:16 +0100 Subject: [PATCH 3/3] get minimum aapt version from fdroidserver/common.py for CI tests --- .gitlab-ci.yml | 3 ++- .travis.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index afe03059..063d150a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -105,6 +105,7 @@ fedora_latest: - wget --no-verbose -O tools.zip https://dl.google.com/android/repository/tools_r25.2.4-linux.zip - unzip -q tools.zip - rm tools.zip + - export AAPT_VERSION=`sed -n "s,^MINIMUM_AAPT_VERSION\s*=\s*['\"]\(.*\)[['\"],\1,p" fdroidserver/common.py` - export ANDROID_HOME=`pwd`/android-sdk - mkdir $ANDROID_HOME - mv tools $ANDROID_HOME/ @@ -115,7 +116,7 @@ fedora_latest: - mkdir ~/.android - touch ~/.android/repositories.cfg - echo y | $ANDROID_HOME/tools/bin/sdkmanager "platform-tools" - - echo y | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;26.0.2" + - echo y | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;$AAPT_VERSION" - chown -R testuser . - cd tests - su testuser --login --command diff --git a/.travis.yml b/.travis.yml index edfd9079..87adfa86 100644 --- a/.travis.yml +++ b/.travis.yml @@ -65,12 +65,13 @@ install: fi; brew cask install android-sdk; + export AAPT_VERSION=`sed -n "s,^MINIMUM_AAPT_VERSION\s*=\s*['\"]\(.*\)[['\"],\1,p" fdroidserver/common.py`; mkdir -p "$ANDROID_HOME/licenses"; echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"; echo -e "\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> "$ANDROID_HOME/licenses/android-sdk-license"; echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license"; echo y | $ANDROID_HOME/tools/bin/sdkmanager "platform-tools"; - echo y | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"; + echo y | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;$AAPT_VERSION"; echo y | $ANDROID_HOME/tools/bin/sdkmanager "platforms;android-23"; sudo pip3 install babel;