From 94c6a0c04d64a54dc422b8a635e3601c375a3155 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 17 Nov 2015 08:46:55 +0000 Subject: main/aports-build: add support for uploading logs we need upload logs for arm builders --- main/aports-build/report-build-errors.lua | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'main/aports-build/report-build-errors.lua') diff --git a/main/aports-build/report-build-errors.lua b/main/aports-build/report-build-errors.lua index 3145b15993..8809430a69 100644 --- a/main/aports-build/report-build-errors.lua +++ b/main/aports-build/report-build-errors.lua @@ -10,7 +10,35 @@ local urlprefix=("http://build.alpinelinux.org/buildlogs/%s"):format(hostname) local m = {} +--local logtarget="distfiles.alpinelinux.org:/var/cache/distfiles/buildlogs/"..hostname + +function shell_escape(args) + local ret = {} + for _,a in pairs(args) do + s = tostring(a) + if s:match("[^A-Za-z0-9_/:=-]") then + s = "'"..s:gsub("'", "'\\''").."'" + end + table.insert(ret,s) + end + return table.concat(ret, " ") +end + +function run(args) + local h = io.popen(shell_escape(args)) + local outstr = h:read("*a") + return h:close(), outstr +end + function m.postbuild(aport, success, repodest, arch, logfile) + -- upload log + local loghost,logdirprefix = (logtarget or ""):match("(.*):(.*)") + if logfile and loghost and logdirprefix then + local logdir = logdirprefix.."/"..aport:get_repo_name().."/"..aport.pkgname.."/" + run{"ssh", loghost, "mkdir", "-p", logdir} + run{"scp", logfile, loghost..":"..logdir} + end + if not success then local topic = ("build/%s/errors"):format(hostname) local payload = json.encode{ -- cgit v1.2.3