Commit 8af1bb61 authored by Natanael Copa's avatar Natanael Copa

main/aports-build: report build errors to mqtt via hook

parent 01ff2802
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=aports-build
pkgver=0.9
pkgrel=6
pkgver=1.0
pkgrel=0
pkgdesc="MQTT based build-on-git-push scripts for Alpine Linux"
url="http://alpinelinux.org"
arch="noarch"
license="GPL2"
depends="abuild>2.20.0 mosquitto-clients alpine-sdk mqtt-exec rsync lua-aports"
depends="abuild>2.20.0 mosquitto-clients alpine-sdk mqtt-exec rsync lua-aports
lua5.2-cjson"
depends_dev=""
makedepends="$depends_dev mosquitto-dev"
install="$pkgname.pre-install"
......@@ -15,6 +16,7 @@ subpackages=""
source="aports-build
aports-build.initd
mqtt-exec.aports-build.confd
report-build-errors.lua
"
_builddir=
......@@ -42,14 +44,20 @@ package() {
install -Dm644 "$srcdir"/mqtt-exec.aports-build.confd \
"$pkgdir"/etc/conf.d/mqtt-exec.aports-build || return 1
install -Dm644 "$srcdir"/report-build-errors.lua \
"$pkgdir"/etc/buildrepo/plugins.d/report-build-errors.lua \
|| return 1
}
md5sums="97aa48d5026684e77c4529c7622370a6 aports-build
cb4807ea64c4368487786217db087bac aports-build.initd
c02d90b2bb0c48e416b707caa8766c50 mqtt-exec.aports-build.confd"
c02d90b2bb0c48e416b707caa8766c50 mqtt-exec.aports-build.confd
48c17c44513c6ed46041358101e7ac22 report-build-errors.lua"
sha256sums="414adee6f0a5c83c8b37d995fee36a7a8787eaab7bdc986fd512977f3412e16c aports-build
3e2d551f72273f37290db342a153abd377397483677a684645d22df7b8a8592f aports-build.initd
7d2001688c3776ffb53c422dee424bcf0346ae20f3df5c6c2f4944022b19cb4d mqtt-exec.aports-build.confd"
7d2001688c3776ffb53c422dee424bcf0346ae20f3df5c6c2f4944022b19cb4d mqtt-exec.aports-build.confd
cf991d176fc555dc909c1cd0d3e817d5b567016c4a8a304860c37eeebe83b6ff report-build-errors.lua"
sha512sums="5f30f736e31e04c7718ad5e44c02d8abf47c31baabd38c98bef8fe1e02444ceb49375151707e255c72a28e370c4e67d7a11f14555689b20a5a4e736cbe9c4fb4 aports-build
821035bda47152c341ec94bf960fa67e3377051826712ceb74f39103e6e422777b6e082231bfb87865653d2b93b7d3154cfc24abf65a52e3e66da69412dd7e41 aports-build.initd
93d26e2055dbb02e863bf76b64a549c100decec3fda612ce96ca1464e6d61befa9f57f202553a25cf323e67e266f532d19c7423ff070943a59b3973946d949fe mqtt-exec.aports-build.confd"
93d26e2055dbb02e863bf76b64a549c100decec3fda612ce96ca1464e6d61befa9f57f202553a25cf323e67e266f532d19c7423ff070943a59b3973946d949fe mqtt-exec.aports-build.confd
307bca323fd72433ba6200d61adab8fb0374833d68135a38c61b104a72f86761df7445cc3758a80c1786ebf154d946cd3982db0c442604b08161bfbe5b1c5448 report-build-errors.lua"
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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment