aboutsummaryrefslogtreecommitdiffstats
path: root/main/aports-build/report-build-errors.lua
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2015-10-02 10:25:16 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2015-10-02 10:26:04 +0200
commit8af1bb617f41a9599108b52a123d1e3abadd3578 (patch)
tree4751dd680b31e40479629842db79ef73fcda015d /main/aports-build/report-build-errors.lua
parent01ff2802a0458fd612f6f8b2b9f5318f77a58c35 (diff)
downloadaports-8af1bb617f41a9599108b52a123d1e3abadd3578.tar.bz2
aports-8af1bb617f41a9599108b52a123d1e3abadd3578.tar.xz
main/aports-build: report build errors to mqtt via hook
Diffstat (limited to 'main/aports-build/report-build-errors.lua')
-rw-r--r--main/aports-build/report-build-errors.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/main/aports-build/report-build-errors.lua b/main/aports-build/report-build-errors.lua
new file mode 100644
index 0000000000..ee26b00979
--- /dev/null
+++ b/main/aports-build/report-build-errors.lua
@@ -0,0 +1,29 @@
+local publish = require("mqtt.publish")
+local json = require("cjson")
+
+local hostname
+local f = io.open("/proc/sys/kernel/hostname")
+hostname = f:read()
+f:close()
+
+local urlprefix=("http://build.alpinelinux.org/buildlogs/%s"):format(hostname)
+
+local m = {}
+
+function m.postbuild(aport, success, repodest, arch, logfile)
+ if not success then
+ local topic = ("build/%s/errors"):format(hostname)
+ local payload = json.encode{
+ pkgname = aport.pkgname,
+ logurl = ("%s/%s/%s-%s-r%s.log"):format(
+ urlprefix,
+ (string.match(aport.dir,"[^/]+/[^/]+$")),
+ aport.pkgname, aport.pkgver, aport.pkgrel),
+ status = success
+ }
+ publish.single(topic, payload, nil, nil, "msg.alpinelinux.org")
+ end
+end
+
+return m
+