1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-19 21:30:10 +01:00

wiki: log build start/stop time, command line, RAM, and processor count

This commit is contained in:
Hans-Christoph Steiner 2018-01-22 14:00:16 +01:00
parent ef69bbff34
commit 486ee25708

View File

@ -17,13 +17,13 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import os import os
import shutil import shutil
import glob import glob
import subprocess import subprocess
import re import re
import resource import resource
import sys
import tarfile import tarfile
import traceback import traceback
import time import time
@ -1027,12 +1027,13 @@ def parse_commandline():
options = None options = None
config = None config = None
buildserverid = None buildserverid = None
starttime = common.get_wiki_timestamp() fdroidserverid = None
start_timestamp = time.gmtime()
def main(): def main():
global options, config, buildserverid global options, config, buildserverid, fdroidserverid
options, parser = parse_commandline() options, parser = parse_commandline()
@ -1269,7 +1270,7 @@ def main():
newpage = site.Pages[lastbuildpage] newpage = site.Pages[lastbuildpage]
with open(os.path.join('tmp', 'fdroidserverid')) as fp: with open(os.path.join('tmp', 'fdroidserverid')) as fp:
fdroidserverid = fp.read().rstrip() fdroidserverid = fp.read().rstrip()
txt = "* build session started at " + starttime + '\n' \ txt = "* build session started at " + common.get_wiki_timestamp(start_timestamp) + '\n' \
+ "* this build started at " + build_starttime + '\n' \ + "* this build started at " + build_starttime + '\n' \
+ "* this build completed at " + common.get_wiki_timestamp() + '\n' \ + "* this build completed at " + common.get_wiki_timestamp() + '\n' \
+ '* fdroidserverid: [https://gitlab.com/fdroid/fdroidserver/commit/' \ + '* fdroidserverid: [https://gitlab.com/fdroid/fdroidserver/commit/' \
@ -1338,6 +1339,35 @@ def main():
logging.info(ngettext("{} build failed", logging.info(ngettext("{} build failed",
"{} builds failed", len(failed_apps)).format(len(failed_apps))) "{} builds failed", len(failed_apps)).format(len(failed_apps)))
if options.wiki:
wiki_page_path = 'build_' + time.strftime('%s', start_timestamp)
newpage = site.Pages[wiki_page_path]
txt = ''
txt += "* command line: <code>%s</code>\n" % ' '.join(sys.argv)
txt += "* started at %s\n" % common.get_wiki_timestamp(start_timestamp)
txt += "* completed at %s\n" % common.get_wiki_timestamp()
if buildserverid:
txt += ('* buildserverid: [https://gitlab.com/fdroid/fdroidserver/commit/{id} {id}]\n'
.format(id=buildserverid))
if fdroidserverid:
txt += ('* fdroidserverid: [https://gitlab.com/fdroid/fdroidserver/commit/{id} {id}]\n'
.format(id=fdroidserverid))
if os.cpu_count():
txt += "* host processors: %d\n" % os.cpu_count()
if os.path.isfile('/proc/meminfo') and os.access('/proc/meminfo', os.R_OK):
with open('/proc/meminfo') as fp:
for line in fp:
m = re.search(r'MemTotal:\s*([0-9].*)', line)
if m:
txt += "* host RAM: %s\n" % m.group(1)
break
txt += "* successful builds: %d\n" % len(build_succeeded)
txt += "* failed builds: %d\n" % len(failed_apps)
txt += "\n\n"
newpage.save(txt, summary='Run log')
newpage = site.Pages['build']
newpage.save('#REDIRECT [[' + wiki_page_path + ']]', summary='Update redirect')
# hack to ensure this exits, even is some threads are still running # hack to ensure this exits, even is some threads are still running
sys.stdout.flush() sys.stdout.flush()
sys.stderr.flush() sys.stderr.flush()