From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Toon Claes Newsgroups: gmane.emacs.devel Subject: Re: Continuous integration Date: Tue, 4 Apr 2017 22:19:37 +0200 (CEST) Message-ID: References: <87a88emy62.fsf@luca> <87k27h8ncd.fsf@lifelogs.com> <8737e5uoyd.fsf@russet.org.uk> <87d1d8ul7q.fsf@russet.org.uk> <22740.454.818489.461885@retriever.mtv.corp.google.com> <87h92jswrk.fsf@russet.org.uk> <83246C10-FB82-4BE0-80F7-A56F9A12951C@gmail.com> <87bmsrc64p.fsf@russet.org.uk> <87o9wq7i23.fsf@lifelogs.com> <85b7f49ba74f899e8e366f32a7772dce.squirrel@cloud103.planethippo.com> <878tnnm6yq.fsf@russet.org.uk> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1491337207 22751 195.159.176.226 (4 Apr 2017 20:20:07 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 4 Apr 2017 20:20:07 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (darwin) Cc: emacs-devel@gnu.org To: phillip.lord@russet.org.uk (Phillip Lord) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Apr 04 22:20:00 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cvUvh-0004J4-Dv for ged-emacs-devel@m.gmane.org; Tue, 04 Apr 2017 22:19:53 +0200 Original-Received: from localhost ([::1]:37450 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cvUvl-0000We-Q6 for ged-emacs-devel@m.gmane.org; Tue, 04 Apr 2017 16:19:57 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41260) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cvUva-0000Vd-7T for emacs-devel@gnu.org; Tue, 04 Apr 2017 16:19:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cvUvX-0007yM-1v for emacs-devel@gnu.org; Tue, 04 Apr 2017 16:19:46 -0400 Original-Received: from simba.contactoffice.com ([212.3.242.97]:52286) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cvUvW-0007vJ-P3 for emacs-devel@gnu.org; Tue, 04 Apr 2017 16:19:42 -0400 Original-Received: from smtpauth1.co-bxl (smtpauth1.co-bxl [10.2.0.15]) by simba.contactoffice.com (Postfix) with ESMTP id 15095C23; Tue, 4 Apr 2017 22:19:40 +0200 (CEST) Original-Received: from T-437.local ([94.227.10.94]) by smtp.contactoffice.com (envelope-from ) with ESMTPSA ; Tue, 4 Apr 2017 22:19:37 +0200 (CEST) In-Reply-To: <878tnnm6yq.fsf@russet.org.uk> (Phillip Lord's message of "Thu, 30 Mar 2017 10:47:41 +0100") X-ContactOffice-Account: com:91601486 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.3.242.97 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:213656 Archived-At: phillip.lord@russet.org.uk (Phillip Lord) writes: > I have the buildbot installation up now. Slightly harder work than I > hoped, but not too bad. > > http://emacs.bioswarm.net:8010 Cool! Meanwhile, I also have set up CI using GitLab.com. The project is over here, and is being mirrored from Savannah: https://gitlab.com/emacs-ci/emacs To set this up, I had to add a .gitlab-ci.yml file to the root of the project, with the following content: #+BEGIN_SRC yaml image: debian:unstable before_script: - apt update -qq - apt install -y -qq build-essential autoconf automake pkg-config libtool m4 autoconf-archive gtk-doc-tools libxml2-utils gobject-introspection libgirepository1.0-dev libglib2.0-dev libjson-glib-dev libncurses-dev stages: - test test: stage: test script: - ./autogen.sh - ./configure --without-makeinfo --with-gnutls=no - make check #+END_SRC This file probably can be improved in many ways, but I got a successful build. You can visit the build log here: https://gitlab.com/emacs-ci/emacs/builds/13595493 If someone with write access would agree to commit the .gitlab-ci.yml file, the daily mirroring will pick up commits, and GitLab will build them automatically. If anybody would like direct write access to the GitLab.com repository, please click the "Request Access" button on the project page (see link above). > Currently, it's running a single build (full build from clean, through > to tests). It will build any branch (following a change). The build > takes about 60 mins (or 30 mins with parallel builds). In practice, I'd > probably add a "incremental recompile and test" job which would be much > quicker. The builds are running on the master which is probably not > ideal. That's great work Phil! I still have to figure out everything it does, but it seems to be very comprehensive. The set up at GitLab.com is doing quite the same at the moment. Doing incremental recompilation would be quite hard on GitLab, because each build is done in a clean Docker container, so you'll have to export artifacts and reuse them each time. GitLab has a feature called pipelines, which allows you to chain builds together in stages. So this could be an example pipeline: test --> build some GNU/Linux distro \ -> build macOS \ -> build Windows The build stages won't be executed if the test stage failed. If I understand it correctly, buildbot does something similar? At the moment I only have configured 1 stage on GitLab, because only 1 was needed at the moment. The build stages shown in the flowchart above can be added in a later stage to make regular builds for different platforms automatically. At first sight, also the concept of Workers on buildbot (called Runners on GitLab) are quite similar. What I do not yet understand is what the Builders are, and what the difference is between full and quick? -- Toon