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 A98EC1EB58B for ; Fri, 30 Oct 2009 20:44:16 +0000 (UTC) Received: by bwz22 with SMTP id 22so4239402bwz.25 for ; Fri, 30 Oct 2009 13:44:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=G4APOnwCmt85fwYpR8cHazyN+5doKoPgIx3X1feLwWA=; b=Mh2yKRKZ1BI3OvgjcIFniCFgEh7E0y8xmD3P0zJ8VzWk6iC3xfEBFy6y/p7DA04P+X Ggx7dDF76Da8nkbGxkJIEIJ89TDvxXI6lSpuPeUIjZClzpAl/bz639B1jwzZN8rxOFTl CQumWHItahb23LobXnu5hSXOKJXNqNzLe4xRs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=T3E7H0lgrtRLUXKaduKNK58HgzUX9A0N9Ri3Z5f/xpIpIFQdIfSAO1KOuNoo4hPEC6 Q9CXg1Rvxx5vvmlFOEH+fuLPmfOhGvNiMj/Y4VgHH/+KZSJkg4NSlM1yeQUDMS9kXIa9 LZ6epX5j968OFp7K5CGH02hakZwTN3aJldhA4= X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 Received: by 10.223.5.18 with SMTP id 18mr289217fat.58.1256935455718; Fri, 30 Oct 2009 13:44:15 -0700 (PDT) In-Reply-To: <6602aeca0910291435geb90e6erb2d295242beb96a3@mail.gmail.com> References: <1256801075.20939.2767.camel@ncopa-desktop.nor.wtbts.net> <6602aeca0910290646nfb59f7et4acfec11314953f@mail.gmail.com> <1256835607.20939.3220.camel@ncopa-desktop.nor.wtbts.net> <6602aeca0910291435geb90e6erb2d295242beb96a3@mail.gmail.com> Date: Fri, 30 Oct 2009 21:44:15 +0100 Message-ID: <96a6f50a0910301344n61c5e55btf188997b490805b3@mail.gmail.com> Subject: Re: [alpine-devel] new build server From: Mika Havela To: jeremy@thomersonfamily.com, alpine-devel@lists.alpinelinux.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi! Could prosody (http://prosody.im) be used for these needs (it's lightweight= ). It supports "Bidirectional-streams Over Synchronous HTTP (BOSH)". <> On Thu, Oct 29, 2009 at 10:35 PM, Jeremy Thomerson wrote: > Well, I think there would be several alternatives.=A0 I suppose you could= even > use XMPP, but that would require writing a lot of the plumbing yourself. > > Here are a couple alternatives, although I have not used them: > > - RabbitMQ - [http://www.rabbitmq.com] - a messaging broker that seems to= be > much smaller (around 1MB?) install.=A0 Have not seen exactly what the > requirements are for running it, but seems simple. > > I have not found documentation on how to connect to it and communicate > through simple telnet commands, but there are integrations in many > languages.=A0 For instance, here's one in Perl that uses Stomp (mentioned > below): > http://hg.rabbitmq.com/rabbitmq-stomp/file/tip/examples/perl/rabbitmq_sto= mp_send.pl > > - Stomp [http://stomp.codehaus.org/] - easy to implement the clients, > although you will need to couple it with a message broker (RabbitMQ / > ActiveMQ / etc).=A0 It has a lightweight broker that's written in Ruby - = not > sure if that will fit your desired footprint. > > Jeremy > > On Thu, Oct 29, 2009 at 12:00 PM, Natanael Copa > wrote: >> >> On Thu, 2009-10-29 at 08:46 -0500, Jeremy Thomerson wrote: >> > Wow - you must never sleep! =A0Congratulations. This is a great >> > improvement. >> > >> > PS - you probably considered this, but in the future if you want an >> > easy way to communicate a queue or event triggering between multiple >> > servers, try ActiveMQ. =A0It's an enterprise messaging bus and has >> > clients in pretty much any language. =A0You can even set it up to >> > receive or broadcast events through simple HTTP if you need to. >> > Anyway, I've used it on a bunch of projects and it's super easy to set >> > up and a great piece of software. =A0Using something like that would >> > even give you the ability to have multiple build servers subscribing >> > to the channel and either building all packages, or dividing up the >> > packages, each building one until the queue is done. >> > >> > Just a thought anyway.... >> >> Yeah, I would actually like/need something like that. What I have still >> dont work perfectly. ssh seesions are not terminated on server. >> >> I'd need a: >> * git hook that sends a single line to the message server >> * clinents/buildserver(s) that just sits idle til they get the message >> * something that does nto require java and is alot lighter than 33MB. >> >> in other words, is there anything simpler/lighter than ActiveMQ? >> >> Thanks! >> >> -nc >> >> > Jeremy Thomerson >> > >> > On Thu, Oct 29, 2009 at 2:24 AM, Natanael Copa >> > wrote: >> > =A0 =A0 =A0 =A0 Hi, >> > >> > =A0 =A0 =A0 =A0 We have got a new build server. I have spent last days= on >> > =A0 =A0 =A0 =A0 setting it up. >> > =A0 =A0 =A0 =A0 The idea is that we want a git hook to trigger buildin= g >> > =A0 =A0 =A0 =A0 updated packages >> > =A0 =A0 =A0 =A0 and uploading them to master mirror. Since git server = and >> > =A0 =A0 =A0 =A0 build server >> > =A0 =A0 =A0 =A0 are 2 different we could have solved it with a cron jo= b. Not >> > =A0 =A0 =A0 =A0 good enough >> > =A0 =A0 =A0 =A0 I thought... >> > >> > =A0 =A0 =A0 =A0 So, what we do is we create a fifo for each git branch= on the >> > =A0 =A0 =A0 =A0 git >> > =A0 =A0 =A0 =A0 server. Then we have a git hook that writes to the fif= o when >> > =A0 =A0 =A0 =A0 someone >> > =A0 =A0 =A0 =A0 pushes changes. >> > >> > =A0 =A0 =A0 =A0 Then on build server, we run a daemon that ssh to the = git >> > =A0 =A0 =A0 =A0 server and >> > =A0 =A0 =A0 =A0 read from the fifo. For each read line, it rebuilds an= d >> > =A0 =A0 =A0 =A0 uploads new >> > =A0 =A0 =A0 =A0 packages. That way we avoid race conditions when 2 dif= ferent >> > =A0 =A0 =A0 =A0 developers >> > =A0 =A0 =A0 =A0 pushes stuff at the same time and we avoid the delays = we would >> > =A0 =A0 =A0 =A0 have when >> > =A0 =A0 =A0 =A0 using cron jobs. >> > >> > =A0 =A0 =A0 =A0 Then I wanted this to run as a daemon, that starts/sto= ps from >> > =A0 =A0 =A0 =A0 an init.d >> > =A0 =A0 =A0 =A0 script so it starts up automatically after a reboot. H= aving it >> > =A0 =A0 =A0 =A0 start was >> > =A0 =A0 =A0 =A0 easy. I wrote a daemon in shell for that. Having it st= op was >> > =A0 =A0 =A0 =A0 not so >> > =A0 =A0 =A0 =A0 easy, since when the daeomn was killed the ssh process= was >> > =A0 =A0 =A0 =A0 left running. >> > =A0 =A0 =A0 =A0 I could not solve that in shell, so i rewrite it in lu= a. Lua >> > =A0 =A0 =A0 =A0 lacks >> > =A0 =A0 =A0 =A0 signal handling so I ended up rewrite it in C. After a= bug >> > =A0 =A0 =A0 =A0 that >> > =A0 =A0 =A0 =A0 forkbombed my vserver host to death (!!?) and a bug th= at >> > =A0 =A0 =A0 =A0 killed all the >> > =A0 =A0 =A0 =A0 packages on main mirror we are finally back and things= are >> > =A0 =A0 =A0 =A0 working. >> > >> > =A0 =A0 =A0 =A0 The new build server have 8 horses that kicks so if a >> > =A0 =A0 =A0 =A0 developer wants a >> > =A0 =A0 =A0 =A0 build environment for kernel hacking or similar, just = let me >> > =A0 =A0 =A0 =A0 know. >> > >> > =A0 =A0 =A0 =A0 -nc >> > >> > >> > >> > =A0 =A0 =A0 =A0 --- >> > =A0 =A0 =A0 =A0 Unsubscribe: =A0alpine-devel+unsubscribe@lists.alpinel= inux.org >> > =A0 =A0 =A0 =A0 Help: =A0 =A0 =A0 =A0 alpine-devel+help@lists.alpineli= nux.org >> > =A0 =A0 =A0 =A0 --- >> > >> > >> >> > > --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---