aboutsummaryrefslogtreecommitdiffstats
path: root/main/aports-build
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2015-11-17 08:46:55 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2015-11-17 08:47:40 +0000
commit94c6a0c04d64a54dc422b8a635e3601c375a3155 (patch)
tree39b6033b7bd3d09c4f452118a7daea6747f33d25 /main/aports-build
parentb9e3afbeb66666215134345d7ac82d1bdea70fec (diff)
downloadaports-94c6a0c04d64a54dc422b8a635e3601c375a3155.tar.bz2
aports-94c6a0c04d64a54dc422b8a635e3601c375a3155.tar.xz
main/aports-build: add support for uploading logs
we need upload logs for arm builders
Diffstat (limited to 'main/aports-build')
-rw-r--r--main/aports-build/APKBUILD8
-rw-r--r--main/aports-build/report-build-errors.lua28
2 files changed, 32 insertions, 4 deletions
diff --git a/main/aports-build/APKBUILD b/main/aports-build/APKBUILD
index 88abf4f47c..335c18eb50 100644
--- a/main/aports-build/APKBUILD
+++ b/main/aports-build/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=aports-build
pkgver=1.0
-pkgrel=2
+pkgrel=3
pkgdesc="MQTT based build-on-git-push scripts for Alpine Linux"
url="http://alpinelinux.org"
arch="noarch"
@@ -52,12 +52,12 @@ package() {
md5sums="97aa48d5026684e77c4529c7622370a6 aports-build
cb4807ea64c4368487786217db087bac aports-build.initd
c02d90b2bb0c48e416b707caa8766c50 mqtt-exec.aports-build.confd
-99bc8c6c791e1fcbd0b3590278940ccd report-build-errors.lua"
+0d8b71f9e61cd56e03931f190acc702a report-build-errors.lua"
sha256sums="414adee6f0a5c83c8b37d995fee36a7a8787eaab7bdc986fd512977f3412e16c aports-build
3e2d551f72273f37290db342a153abd377397483677a684645d22df7b8a8592f aports-build.initd
7d2001688c3776ffb53c422dee424bcf0346ae20f3df5c6c2f4944022b19cb4d mqtt-exec.aports-build.confd
-77c3537e7ce908543a0bb6caa6ea87d056e88d25a950ed2173f0e1213d1dfc98 report-build-errors.lua"
+e45389a6b078bf0683a1e8e5d153485b88de85b424cab9df81329e4ead4bccae report-build-errors.lua"
sha512sums="5f30f736e31e04c7718ad5e44c02d8abf47c31baabd38c98bef8fe1e02444ceb49375151707e255c72a28e370c4e67d7a11f14555689b20a5a4e736cbe9c4fb4 aports-build
821035bda47152c341ec94bf960fa67e3377051826712ceb74f39103e6e422777b6e082231bfb87865653d2b93b7d3154cfc24abf65a52e3e66da69412dd7e41 aports-build.initd
93d26e2055dbb02e863bf76b64a549c100decec3fda612ce96ca1464e6d61befa9f57f202553a25cf323e67e266f532d19c7423ff070943a59b3973946d949fe mqtt-exec.aports-build.confd
-3ee2c2f6244dc326ccb7706379c432053b8eef9639927c48301af934060f77f2cbcc6f04b6410fd5b7fdafacabe23b7f5eac33006a976f059c61baa7c9ef0af2 report-build-errors.lua"
+bb5c0472acb1fc8ba846acd93748f914c38a8f322089ad2326a1b88406056541cadb58aadaa24488785a67c10d726e52dc9a74acbd389e9321dbce7468478a5c 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{