[{"id":3551,"web_url":"https://patchwork.libcamera.org/comment/3551/","msgid":"<20200120170820.GL20122@pendragon.ideasonboard.com>","date":"2020-01-20T17:08:20","subject":"Re: [libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial\n\tautomated testing","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nThank you for the patch.\n\nOn Mon, Jan 20, 2020 at 12:55:44PM +0000, Kieran Bingham wrote:\n> Integrate compile testing and the ninja test framework.\n> Any unit tests registered with the Meson Build system will automatically\n> be run with 'ninja test'.\n\nI'm not sure when you mean here. The script below doesn't run tests,\ndoes it ?\n\n> Documentation will be built, and the resulting package will be installed\n> to 'libcamera/package'\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> ---\n> v2:\n>  - CI: Add Documentation to build artifacts\n>  - CI: Convert to alpine image\n>  - CI: test install phase\n> ---\n>  .gitlab-ci.yml | 18 ++++++++++++++++++\n>  1 file changed, 18 insertions(+)\n>  create mode 100644 .gitlab-ci.yml\n> \n> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\n> new file mode 100644\n> index 000000000000..5851af90e22c\n> --- /dev/null\n> +++ b/.gitlab-ci.yml\n> @@ -0,0 +1,18 @@\n> +image: alpine:edge\n\nAny specific reason for this choice ? I suppose it's fine to start with,\nand we can then extend to more distributions.\n\n> +\n> +build:\n> +  stage: build\n> +  before_script:\n> +    - apk add --no-cache gcc g++ musl-dev meson py3-yaml py3-sphinx linux-headers pkgconfig eudev eudev-dev\n\nShould we also depend on Qt to test compilation of qcam ?\n\nIs there an easy way to also test compilation with clang ?\n\n> +  script:\n> +    - mkdir libcamera && cd libcamera && meson .. && ninja\n\nHow about enabling the android and V4L2 compatibility layers ?\n\n> +    - ninja Documentation/linkcheck\n> +    - DESTDIR=$PWD/package ninja install\n> +  artifacts:\n> +    expire_in: 6 hrs\n> +    paths:\n> +      - libcamera/Documentation/*\n> +      - libcamera/src/libcamera/libcamera.so\n> +      - libcamera/test/test_init\n> +      - libcamera/meson-logs/testlog.txt\n> +      - libcamera/package/*","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 55EFA60455\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 Jan 2020 18:08:21 +0100 (CET)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id BC963A62;\n\tMon, 20 Jan 2020 18:08:20 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1579540100;\n\tbh=aki5yl7D62q5KwgNSeSV10Ti7a6pyJXAIqP6tCIEVjo=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=r6MObvd4G0GM6NSIlolJn/C5cfC92HJdwJuWlRiNs8u3/VVCxrlC2lNZ0FXcVJSrN\n\t15N1zfCwJBZFClwjFTkmbxYA2G/IkPeAVw0Iyw83u6wYGDTE4kIkUWXudEKZNuYSUz\n\ttm895imLWO0bLdTnv2UuYWGBG0GeSfp4Yv1iMTLU=","Date":"Mon, 20 Jan 2020 19:08:20 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"LibCamera Devel <libcamera-devel@lists.libcamera.org>","Message-ID":"<20200120170820.GL20122@pendragon.ideasonboard.com>","References":"<20200120125544.12562-1-kieran.bingham@ideasonboard.com>\n\t<20200120125544.12562-4-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20200120125544.12562-4-kieran.bingham@ideasonboard.com>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial\n\tautomated testing","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 20 Jan 2020 17:08:21 -0000"}},{"id":3552,"web_url":"https://patchwork.libcamera.org/comment/3552/","msgid":"<7ff8792a-614e-5235-26bd-334ad1445c65@ideasonboard.com>","date":"2020-01-20T17:16:57","subject":"Re: [libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial\n\tautomated testing","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 20/01/2020 17:08, Laurent Pinchart wrote:\n> Hi Kieran,\n> \n> Thank you for the patch.\n> \n> On Mon, Jan 20, 2020 at 12:55:44PM +0000, Kieran Bingham wrote:\n>> Integrate compile testing and the ninja test framework.\n>> Any unit tests registered with the Meson Build system will automatically\n>> be run with 'ninja test'.\n> \n> I'm not sure when you mean here. The script below doesn't run tests,\n> does it ?\n\nArgh, an earlier version of this file did :-)\n\n\n>> Documentation will be built, and the resulting package will be installed\n>> to 'libcamera/package'\n>>\n>> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>\n>> ---\n>> v2:\n>>  - CI: Add Documentation to build artifacts\n>>  - CI: Convert to alpine image\n>>  - CI: test install phase\n>> ---\n>>  .gitlab-ci.yml | 18 ++++++++++++++++++\n>>  1 file changed, 18 insertions(+)\n>>  create mode 100644 .gitlab-ci.yml\n>>\n>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\n>> new file mode 100644\n>> index 000000000000..5851af90e22c\n>> --- /dev/null\n>> +++ b/.gitlab-ci.yml\n>> @@ -0,0 +1,18 @@\n>> +image: alpine:edge\n> \n> Any specific reason for this choice ? I suppose it's fine to start with,\n> and we can then extend to more distributions.\n\nI chose it (a year ago?) to extend coverage for c-libraries. I (we?)\nusually build on a glibc target. The alpine image uses Musl. It's also a\nsmaller image suitable for containers, so it speeds up the build.\n\n\nI want the build to extend to multiple distributions, and multiple\ntoolchains. The pushback I received last time I looked at this stopped\nme from continuing this path of development/investigation.\n\nHopefully we can continue to get some extended build coverage.\n\n\n>> +\n>> +build:\n>> +  stage: build\n>> +  before_script:\n>> +    - apk add --no-cache gcc g++ musl-dev meson py3-yaml py3-sphinx linux-headers pkgconfig eudev eudev-dev\n> \n> Should we also depend on Qt to test compilation of qcam ?\n\nYes, we should also build qcam.\n\nI expect this script was created before we had qcam, and I've only\nhalf-maintained it to keep it building what was there.\n\n\n> Is there an easy way to also test compilation with clang ?\n\nThat comes under the category of multiple build matrix support.\n\n\n>> +  script:\n>> +    - mkdir libcamera && cd libcamera && meson .. && ninja\n> \n> How about enabling the android and V4L2 compatibility layers ?\n\nYes, they would be useful too.\nAre there external requirements to build the android layer?\n\n\n>> +    - ninja Documentation/linkcheck\n>> +    - DESTDIR=$PWD/package ninja install\n>> +  artifacts:\n>> +    expire_in: 6 hrs\n>> +    paths:\n>> +      - libcamera/Documentation/*\n>> +      - libcamera/src/libcamera/libcamera.so\n>> +      - libcamera/test/test_init\n\ntest/test_init looks like an old artefact that should be removed too.\n\n>> +      - libcamera/meson-logs/testlog.txt\n>> +      - libcamera/package/*\n>","headers":{"Return-Path":"<kieran.bingham@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0F8E360455\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 Jan 2020 18:17:01 +0100 (CET)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 6F9CFA62;\n\tMon, 20 Jan 2020 18:17:00 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1579540620;\n\tbh=rn8gqoDaqOpJjF2oezgs+00zPjRPJ482a2P9arcc8dQ=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=r9cb9NZrmK8U1O/yzi7poyCpc8IPYuehLS6oo7SVDNeuQuovItHNQWyyPoNMVHGLv\n\tA4zWtW+cBq/vXXNQ/iYlB8hAuuvXMuBhGlMuAk390JXkYngUFzrOQZjkMGZF5opXbj\n\tdHQiBJwWAybPwBjWhDIKdCnJTsidrv4m+Hyy97w8=","Reply-To":"kieran.bingham@ideasonboard.com","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"LibCamera Devel <libcamera-devel@lists.libcamera.org>","References":"<20200120125544.12562-1-kieran.bingham@ideasonboard.com>\n\t<20200120125544.12562-4-kieran.bingham@ideasonboard.com>\n\t<20200120170820.GL20122@pendragon.ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Openpgp":"preference=signencrypt","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<7ff8792a-614e-5235-26bd-334ad1445c65@ideasonboard.com>","Date":"Mon, 20 Jan 2020 17:16:57 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101\n\tThunderbird/60.9.0","MIME-Version":"1.0","In-Reply-To":"<20200120170820.GL20122@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial\n\tautomated testing","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 20 Jan 2020 17:17:01 -0000"}},{"id":3553,"web_url":"https://patchwork.libcamera.org/comment/3553/","msgid":"<20200120172130.GM20122@pendragon.ideasonboard.com>","date":"2020-01-20T17:21:30","subject":"Re: [libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial\n\tautomated testing","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Mon, Jan 20, 2020 at 05:16:57PM +0000, Kieran Bingham wrote:\n> On 20/01/2020 17:08, Laurent Pinchart wrote:\n> > On Mon, Jan 20, 2020 at 12:55:44PM +0000, Kieran Bingham wrote:\n> >> Integrate compile testing and the ninja test framework.\n> >> Any unit tests registered with the Meson Build system will automatically\n> >> be run with 'ninja test'.\n> > \n> > I'm not sure when you mean here. The script below doesn't run tests,\n> > does it ?\n> \n> Argh, an earlier version of this file did :-)\n> \n> >> Documentation will be built, and the resulting package will be installed\n> >> to 'libcamera/package'\n> >>\n> >> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >>\n> >> ---\n> >> v2:\n> >>  - CI: Add Documentation to build artifacts\n> >>  - CI: Convert to alpine image\n> >>  - CI: test install phase\n> >> ---\n> >>  .gitlab-ci.yml | 18 ++++++++++++++++++\n> >>  1 file changed, 18 insertions(+)\n> >>  create mode 100644 .gitlab-ci.yml\n> >>\n> >> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\n> >> new file mode 100644\n> >> index 000000000000..5851af90e22c\n> >> --- /dev/null\n> >> +++ b/.gitlab-ci.yml\n> >> @@ -0,0 +1,18 @@\n> >> +image: alpine:edge\n> > \n> > Any specific reason for this choice ? I suppose it's fine to start with,\n> > and we can then extend to more distributions.\n> \n> I chose it (a year ago?) to extend coverage for c-libraries. I (we?)\n> usually build on a glibc target. The alpine image uses Musl. It's also a\n> smaller image suitable for containers, so it speeds up the build.\n> \n> I want the build to extend to multiple distributions, and multiple\n> toolchains. The pushback I received last time I looked at this stopped\n> me from continuing this path of development/investigation.\n> \n> Hopefully we can continue to get some extended build coverage.\n> \n> >> +\n> >> +build:\n> >> +  stage: build\n> >> +  before_script:\n> >> +    - apk add --no-cache gcc g++ musl-dev meson py3-yaml py3-sphinx linux-headers pkgconfig eudev eudev-dev\n> > \n> > Should we also depend on Qt to test compilation of qcam ?\n> \n> Yes, we should also build qcam.\n> \n> I expect this script was created before we had qcam, and I've only\n> half-maintained it to keep it building what was there.\n> \n> > Is there an easy way to also test compilation with clang ?\n> \n> That comes under the category of multiple build matrix support.\n\nOK.\n\n> >> +  script:\n> >> +    - mkdir libcamera && cd libcamera && meson .. && ninja\n> > \n> > How about enabling the android and V4L2 compatibility layers ?\n> \n> Yes, they would be useful too.\n> Are there external requirements to build the android layer?\n\nNo, it's self-contained.\n\n> >> +    - ninja Documentation/linkcheck\n> >> +    - DESTDIR=$PWD/package ninja install\n> >> +  artifacts:\n> >> +    expire_in: 6 hrs\n> >> +    paths:\n> >> +      - libcamera/Documentation/*\n> >> +      - libcamera/src/libcamera/libcamera.so\n> >> +      - libcamera/test/test_init\n> \n> test/test_init looks like an old artefact that should be removed too.\n> \n> >> +      - libcamera/meson-logs/testlog.txt\n> >> +      - libcamera/package/*","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EB70260455\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 Jan 2020 18:21:30 +0100 (CET)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 687EBA62;\n\tMon, 20 Jan 2020 18:21:30 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1579540890;\n\tbh=85fPJa4Uez7oR9COn6D31GGHl6FLlxprTr8Y8k+P8Vk=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=mQ10jYLCPKElMrNBnm0uRxpIE3KTuCcF9RedFd3Nz+y2Y7VVOd1WXLCWXr8mwrZHt\n\tfmW8J+KAJzzLAENLx1Hi/A/986kws4KLpGK+Z4X4xhSEOj2Gs1y7ey3ukGPYB3+aBE\n\tRI4Lo/dgKA4T+cqGDSCCoDxuzk6BUvLysU08WOgg=","Date":"Mon, 20 Jan 2020 19:21:30 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"LibCamera Devel <libcamera-devel@lists.libcamera.org>","Message-ID":"<20200120172130.GM20122@pendragon.ideasonboard.com>","References":"<20200120125544.12562-1-kieran.bingham@ideasonboard.com>\n\t<20200120125544.12562-4-kieran.bingham@ideasonboard.com>\n\t<20200120170820.GL20122@pendragon.ideasonboard.com>\n\t<7ff8792a-614e-5235-26bd-334ad1445c65@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<7ff8792a-614e-5235-26bd-334ad1445c65@ideasonboard.com>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial\n\tautomated testing","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 20 Jan 2020 17:21:31 -0000"}},{"id":3557,"web_url":"https://patchwork.libcamera.org/comment/3557/","msgid":"<abe57cb5f63e24773eb559199001cd92e04a3899.camel@ndufresne.ca>","date":"2020-01-20T19:22:52","subject":"Re: [libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial\n\tautomated testing","submitter":{"id":30,"url":"https://patchwork.libcamera.org/api/people/30/","name":"Nicolas Dufresne","email":"nicolas@ndufresne.ca"},"content":"Le lundi 20 janvier 2020 à 12:55 +0000, Kieran Bingham a écrit :\n> Integrate compile testing and the ninja test framework.\n> Any unit tests registered with the Meson Build system will automatically\n> be run with 'ninja test'.\n> \n> Documentation will be built, and the resulting package will be installed\n> to 'libcamera/package'\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> ---\n> v2:\n>  - CI: Add Documentation to build artifacts\n>  - CI: Convert to alpine image\n>  - CI: test install phase\n> ---\n>  .gitlab-ci.yml | 18 ++++++++++++++++++\n>  1 file changed, 18 insertions(+)\n>  create mode 100644 .gitlab-ci.yml\n> \n> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\n> new file mode 100644\n> index 000000000000..5851af90e22c\n> --- /dev/null\n> +++ b/.gitlab-ci.yml\n> @@ -0,0 +1,18 @@\n> +image: alpine:edge\n> +\n> +build:\n> +  stage: build\n> +  before_script:\n> +    - apk add --no-cache gcc g++ musl-dev meson py3-yaml py3-sphinx linux-\n\nHow long does that take and how much network is required each time ? That being\nsaid, it will be fixed if you use ci-templates, as there you can gen and save\nyour docker.\n\n> headers pkgconfig eudev eudev-dev\n> +  script:\n> +    - mkdir libcamera && cd libcamera && meson .. && ninja\n\nI'm not sure I like the idea of usign \"libcamera\" as a build directory. But that\ndoes not seems a big deal. It you be cleaner to use the following invocation\nthough:\n\n  - meson libcamera\n  - ninja -C libcamera\n\nMeson will create that directory for you (alternatively you can use the long\nexplicit way, meson setup <builddir>). This splits the configure and the build\nstep properly. It will be easier to add configure options later.\n\n> +    - ninja Documentation/linkcheck\n> +    - DESTDIR=$PWD/package ninja install\n> +  artifacts:\n> +    expire_in: 6 hrs\n> +    paths:\n> +      - libcamera/Documentation/*\n> +      - libcamera/src/libcamera/libcamera.so\n> +      - libcamera/test/test_init\n> +      - libcamera/meson-logs/testlog.txt\n> +      - libcamera/package/*","headers":{"Return-Path":"<nicolas@ndufresne.ca>","Received":["from mail-qk1-x743.google.com (mail-qk1-x743.google.com\n\t[IPv6:2607:f8b0:4864:20::743])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5A7B160455\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 Jan 2020 20:22:56 +0100 (CET)","by mail-qk1-x743.google.com with SMTP id c16so323048qko.6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 Jan 2020 11:22:56 -0800 (PST)","from nicolas-tpx395.localdomain ([2610:98:8005::727])\n\tby smtp.gmail.com with ESMTPSA id\n\tc24sm18364733qtk.40.2020.01.20.11.22.53\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 20 Jan 2020 11:22:53 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ndufresne-ca.20150623.gappssmtp.com; s=20150623;\n\th=message-id:subject:from:to:date:in-reply-to:references:user-agent\n\t:mime-version:content-transfer-encoding;\n\tbh=FdkYkMN1bqtGIlPshoY61twbUfYQ3bNwIg4Q6eTkSNs=;\n\tb=PWlmg4myR8oVsUzC6p8Xn3ONnYD+voRnCwH9Z7huWdjJsnYEptRApeqDDHV0Wbu/Zu\n\tJO3COXSgTops06WlZOQBSypEf/AHRm2JOiCcBHZvi7O3I+I7Q84KMlslYQ+R1whUz305\n\tkxvI7uowmy4+c4YN0CWXCMidmWQ2SFCc7wHioXukbK7pExW6LiaS8w8O5y6yQQOIT2y+\n\tQnAzoDJNhdwJRqKdGWzdCJbHDNB/ENWL2HDH4bqVZUd/kfSQ2XhZn2/thlZoetulb3CN\n\tD4+oqpb5rwzq5aKnE8BjfrGROu6OjhVfAkMTlOxcIBHO5g/6PKASZdmm7tM+zXCJ1IBH\n\tiW2w==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:message-id:subject:from:to:date:in-reply-to\n\t:references:user-agent:mime-version:content-transfer-encoding;\n\tbh=FdkYkMN1bqtGIlPshoY61twbUfYQ3bNwIg4Q6eTkSNs=;\n\tb=D4xcScDhYjUa2fFQbrN0O9voGd3UJonVPiF1g4xD8dyXhZKeZaViKA5ZFI2dljEXEV\n\tJ9WXZ64yH9v0AfCPcNzJvviKG2RHNQFUXitz+QgudTLrGnxm8c/GLJ5FzTkvIuW2Fg+k\n\tnYsLE5iphUenqY8ruwMKsf0YdD+3iSv5FTBzQhpm1pOU3Mal66dkzhXTcWM7L+MepiPE\n\trqYvkNwUEwMW6Ujnl5zrK8h7ndxzZECQ6ZDMl7XxUH9NYNDL+/1JFB0/PF4w5IlPODgW\n\tCHyY/gXTIVYvGz9zblFscFiZ7L4fOyDEb7/msZh9qg7MjvFF25dEK/W5DMX5Jgs1z2+Y\n\ts0og==","X-Gm-Message-State":"APjAAAUOtjNmEP0Xbhr5w9nVeQAMDKwBVfjrp9ZezEW9VI+y/tgclrjg\n\tK7BeaFVH2n7bMT5/LdRgTmQ9pA==","X-Google-Smtp-Source":"APXvYqwZgyxSlqkVDJZIu7yIIPRsUb+uSf503iJemkNFXR34rfyGESbmGmGRbt3KhQ3jeKovtXhf/A==","X-Received":"by 2002:a37:aa93:: with SMTP id\n\tt141mr424604qke.158.1579548174920; \n\tMon, 20 Jan 2020 11:22:54 -0800 (PST)","Message-ID":"<abe57cb5f63e24773eb559199001cd92e04a3899.camel@ndufresne.ca>","From":"Nicolas Dufresne <nicolas@ndufresne.ca>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>, LibCamera Devel\n\t<libcamera-devel@lists.libcamera.org>","Date":"Mon, 20 Jan 2020 14:22:52 -0500","In-Reply-To":"<20200120125544.12562-4-kieran.bingham@ideasonboard.com>","References":"<20200120125544.12562-1-kieran.bingham@ideasonboard.com>\n\t<20200120125544.12562-4-kieran.bingham@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","User-Agent":"Evolution 3.34.3 (3.34.3-1.fc31) ","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial\n\tautomated testing","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 20 Jan 2020 19:22:56 -0000"}},{"id":3558,"web_url":"https://patchwork.libcamera.org/comment/3558/","msgid":"<20200120193130.GS20122@pendragon.ideasonboard.com>","date":"2020-01-20T19:31:30","subject":"Re: [libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial\n\tautomated testing","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Jan 20, 2020 at 02:22:52PM -0500, Nicolas Dufresne wrote:\n> Le lundi 20 janvier 2020 à 12:55 +0000, Kieran Bingham a écrit :\n> > Integrate compile testing and the ninja test framework.\n> > Any unit tests registered with the Meson Build system will automatically\n> > be run with 'ninja test'.\n> > \n> > Documentation will be built, and the resulting package will be installed\n> > to 'libcamera/package'\n> > \n> > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > \n> > ---\n> > v2:\n> >  - CI: Add Documentation to build artifacts\n> >  - CI: Convert to alpine image\n> >  - CI: test install phase\n> > ---\n> >  .gitlab-ci.yml | 18 ++++++++++++++++++\n> >  1 file changed, 18 insertions(+)\n> >  create mode 100644 .gitlab-ci.yml\n> > \n> > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\n> > new file mode 100644\n> > index 000000000000..5851af90e22c\n> > --- /dev/null\n> > +++ b/.gitlab-ci.yml\n> > @@ -0,0 +1,18 @@\n> > +image: alpine:edge\n> > +\n> > +build:\n> > +  stage: build\n> > +  before_script:\n> > +    - apk add --no-cache gcc g++ musl-dev meson py3-yaml py3-sphinx linux-\n> \n> How long does that take and how much network is required each time ? That being\n> said, it will be fixed if you use ci-templates, as there you can gen and save\n> your docker.\n> \n> > headers pkgconfig eudev eudev-dev\n> > +  script:\n> > +    - mkdir libcamera && cd libcamera && meson .. && ninja\n> \n> I'm not sure I like the idea of usign \"libcamera\" as a build directory. But that\n> does not seems a big deal. It you be cleaner to use the following invocation\n\nI would name it build indeed.\n\n> though:\n> \n>   - meson libcamera\n>   - ninja -C libcamera\n> \n> Meson will create that directory for you (alternatively you can use the long\n> explicit way, meson setup <builddir>). This splits the configure and the build\n> step properly. It will be easier to add configure options later.\n\nAgreed, I think that's better.\n\n> > +    - ninja Documentation/linkcheck\n> > +    - DESTDIR=$PWD/package ninja install\n> > +  artifacts:\n> > +    expire_in: 6 hrs\n> > +    paths:\n> > +      - libcamera/Documentation/*\n> > +      - libcamera/src/libcamera/libcamera.so\n> > +      - libcamera/test/test_init\n> > +      - libcamera/meson-logs/testlog.txt\n> > +      - libcamera/package/*","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AFD1B60455\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 Jan 2020 20:31:31 +0100 (CET)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2738AA62;\n\tMon, 20 Jan 2020 20:31:31 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1579548691;\n\tbh=liF9pHB5YxCqb4Ko3HNv9sCbo+HxBjJX/65GDUq5nnA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=JndmAsXFcGml3zMjwHOVhfumOePMt4N826wZUZW/KvRYnV2LKvtRrNRKPuw+AoirU\n\tCLC/2Qhnkx04ZP5b8hanca1Pmen9yZ0Rm0SIw+xQxewsBYpva3gXoU19BUWoyOSB56\n\tXOFjnUpxsUFFeHci/Vgxk7c2L/jglCs7cmu4q+Xk=","Date":"Mon, 20 Jan 2020 21:31:30 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Nicolas Dufresne <nicolas@ndufresne.ca>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tLibCamera Devel <libcamera-devel@lists.libcamera.org>","Message-ID":"<20200120193130.GS20122@pendragon.ideasonboard.com>","References":"<20200120125544.12562-1-kieran.bingham@ideasonboard.com>\n\t<20200120125544.12562-4-kieran.bingham@ideasonboard.com>\n\t<abe57cb5f63e24773eb559199001cd92e04a3899.camel@ndufresne.ca>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<abe57cb5f63e24773eb559199001cd92e04a3899.camel@ndufresne.ca>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial\n\tautomated testing","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 20 Jan 2020 19:31:31 -0000"}}]