X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@lists.alpinelinux.org Received: from mail-bw0-f222.google.com (mail-bw0-f222.google.com [209.85.218.222]) by lists.alpinelinux.org (Postfix) with ESMTP id 23E594CE3161 for ; Thu, 29 Oct 2009 07:22:13 +0000 (UTC) Received: by bwz22 with SMTP id 22so2014348bwz.25 for ; Thu, 29 Oct 2009 00:22:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:content-type :date:message-id:mime-version:x-mailer:content-transfer-encoding; bh=Lsg5LCH57Bhi6yvdPGYvSsncJSItPusB8o1iDz5GYLw=; b=bkStu7aiCN/JaARXZ1HyOA0PbgZqnstBzoVRDIEm5CJKWRR8Hmru84EDYOOv+lGf7y 2o7T3IKBFK6wb9qNdKhkT3BTI9RnRNsaYhukzczYtfTcsK6FeCEL4uU9NvBBGbQNcO/w N7BeIRhySDdQDG5fhl6OmMSGJef1t4arLmNdU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:content-type:date:message-id:mime-version:x-mailer :content-transfer-encoding; b=TDM1F8MoUchIrsD7AS/ChW2u1cV8zjTg3tyOMvExSPcez4Xp35mpKdYF20hz3ap4dh myQbShCT1y76hvPJisso0PIsAHwge3j78fK7CfIA2QqjF4Vvun4EtkEO3exBgfnJErcH MgkJGJfQNGGAEB4JnUgpXjE4zSFt4ASLA4zpE= Received: by 10.204.160.90 with SMTP id m26mr3838285bkx.63.1256800932660; Thu, 29 Oct 2009 00:22:12 -0700 (PDT) Received: from ?10.65.65.1? ([90.149.48.245]) by mx.google.com with ESMTPS id 1sm3472897fkt.41.2009.10.29.00.22.11 (version=SSLv3 cipher=RC4-MD5); Thu, 29 Oct 2009 00:22:12 -0700 (PDT) Subject: [alpine-devel] new build server From: Natanael Copa To: alpine-devel@lists.alpinelinux.org Content-Type: text/plain; charset="UTF-8" Date: Thu, 29 Oct 2009 08:24:35 +0100 Message-ID: <1256801075.20939.2767.camel@ncopa-desktop.nor.wtbts.net> X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 Content-Transfer-Encoding: 7bit Hi, We have got a new build server. I have spent last days on setting it up. The idea is that we want a git hook to trigger building updated packages and uploading them to master mirror. Since git server and build server are 2 different we could have solved it with a cron job. Not good enough I thought... So, what we do is we create a fifo for each git branch on the git server. Then we have a git hook that writes to the fifo when someone pushes changes. Then on build server, we run a daemon that ssh to the git server and read from the fifo. For each read line, it rebuilds and uploads new packages. That way we avoid race conditions when 2 different developers pushes stuff at the same time and we avoid the delays we would have when using cron jobs. Then I wanted this to run as a daemon, that starts/stops from an init.d script so it starts up automatically after a reboot. Having it start was easy. I wrote a daemon in shell for that. Having it stop was not so easy, since when the daeomn was killed the ssh process was left running. I could not solve that in shell, so i rewrite it in lua. Lua lacks signal handling so I ended up rewrite it in C. After a bug that forkbombed my vserver host to death (!!?) and a bug that killed all the packages on main mirror we are finally back and things are working. The new build server have 8 horses that kicks so if a developer wants a build environment for kernel hacking or similar, just let me know. -nc --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---