diff mbox series

[libdrm] add gitlab-ci builds of libdrm

Message ID 20180831141856.28780-1-eric.engestrom@intel.com (mailing list archive)
State New, archived
Headers show
Series [libdrm] add gitlab-ci builds of libdrm | expand

Commit Message

Eric Engestrom Aug. 31, 2018, 2:18 p.m. UTC
It currently does 4 builds: 2 using Meson and 2 using Autotools, 2 using
the latest dependencies on ArchLinux and 2 using very old dependencies
on Debian (including manually building libpciaccess to have the oldest
version supported, to make sure it keeps being supported).

All the build options are turned on for both Meson and Autotools.

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
---
See it in action on my fork:
https://gitlab.freedesktop.org/eric/libdrm/pipelines/3885
---
 .gitlab-ci.yml | 173 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 173 insertions(+)
 create mode 100644 .gitlab-ci.yml

Comments

Daniel Stone Aug. 31, 2018, 3:03 p.m. UTC | #1
Hi Eric,

On Fri, 31 Aug 2018 at 15:22, Eric Engestrom <eric.engestrom@intel.com> wrote:
> +    - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
> +      wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&

Why are you using --no-check-certificate?!

Cheers,
Daniel
Eric Engestrom Aug. 31, 2018, 4:13 p.m. UTC | #2
On Friday, 2018-08-31 16:03:44 +0100, Daniel Stone wrote:
> Hi Eric,
> 
> On Fri, 31 Aug 2018 at 15:22, Eric Engestrom <eric.engestrom@intel.com> wrote:
> > +    - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
> > +      wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
> 
> Why are you using --no-check-certificate?!

Right, forgot to add a comment for this, sorry.

fd.o uses LetsEncrypt, which is not present in the ca-certificate on
debian:stable. I had to choose between ignoring the certificate error or
use a custom CA, which just didn't seem worth it.

> 
> Cheers,
> Daniel
Daniel Vetter Sept. 3, 2018, 7:50 a.m. UTC | #3
On Fri, Aug 31, 2018 at 05:13:25PM +0100, Eric Engestrom wrote:
> On Friday, 2018-08-31 16:03:44 +0100, Daniel Stone wrote:
> > Hi Eric,
> > 
> > On Fri, 31 Aug 2018 at 15:22, Eric Engestrom <eric.engestrom@intel.com> wrote:
> > > +    - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
> > > +      wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
> > 
> > Why are you using --no-check-certificate?!
> 
> Right, forgot to add a comment for this, sorry.
> 
> fd.o uses LetsEncrypt, which is not present in the ca-certificate on
> debian:stable. I had to choose between ignoring the certificate error or
> use a custom CA, which just didn't seem worth it.

Slightly more modern distro then? On the kernel side we're going with
fedora:latest, that also tends to have all the latest bells&whistles we
need for compiling some of our things.
-Daniel
Eric Engestrom Sept. 3, 2018, 8:07 a.m. UTC | #4
On Monday, 2018-09-03 09:50:06 +0200, Daniel Vetter wrote:
> On Fri, Aug 31, 2018 at 05:13:25PM +0100, Eric Engestrom wrote:
> > On Friday, 2018-08-31 16:03:44 +0100, Daniel Stone wrote:
> > > Hi Eric,
> > > 
> > > On Fri, 31 Aug 2018 at 15:22, Eric Engestrom <eric.engestrom@intel.com> wrote:
> > > > +    - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
> > > > +      wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
> > > 
> > > Why are you using --no-check-certificate?!
> > 
> > Right, forgot to add a comment for this, sorry.
> > 
> > fd.o uses LetsEncrypt, which is not present in the ca-certificate on
> > debian:stable. I had to choose between ignoring the certificate error or
> > use a custom CA, which just didn't seem worth it.
> 
> Slightly more modern distro then? On the kernel side we're going with
> fedora:latest, that also tends to have all the latest bells&whistles we
> need for compiling some of our things.

I have two distros in this pipeline: arch to test the up-to-date stuff
and debian to test the ancient stuff.
Should I drop debian and just keep arch to only have the up-to-date test?

FYI, I'm planning on adding freebsd too (later this week hopefully).

> -Daniel
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Daniel Vetter Sept. 3, 2018, 8:43 a.m. UTC | #5
On Mon, Sep 03, 2018 at 09:07:10AM +0100, Eric Engestrom wrote:
> On Monday, 2018-09-03 09:50:06 +0200, Daniel Vetter wrote:
> > On Fri, Aug 31, 2018 at 05:13:25PM +0100, Eric Engestrom wrote:
> > > On Friday, 2018-08-31 16:03:44 +0100, Daniel Stone wrote:
> > > > Hi Eric,
> > > > 
> > > > On Fri, 31 Aug 2018 at 15:22, Eric Engestrom <eric.engestrom@intel.com> wrote:
> > > > > +    - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
> > > > > +      wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
> > > > 
> > > > Why are you using --no-check-certificate?!
> > > 
> > > Right, forgot to add a comment for this, sorry.
> > > 
> > > fd.o uses LetsEncrypt, which is not present in the ca-certificate on
> > > debian:stable. I had to choose between ignoring the certificate error or
> > > use a custom CA, which just didn't seem worth it.
> > 
> > Slightly more modern distro then? On the kernel side we're going with
> > fedora:latest, that also tends to have all the latest bells&whistles we
> > need for compiling some of our things.
> 
> I have two distros in this pipeline: arch to test the up-to-date stuff
> and debian to test the ancient stuff.
> Should I drop debian and just keep arch to only have the up-to-date test?
 
Ah, I missed that. Makes sense (if you add a comment to explain this).

> FYI, I'm planning on adding freebsd too (later this week hopefully).

I think cross-compiling to arm/arm64, and making sure x86 (the 32bit
stuff) keeps working would be great too. If you go to the trouble of
testing all these things :-)
-Daniel
Daniel Vetter Sept. 3, 2018, 8:45 a.m. UTC | #6
On Fri, Aug 31, 2018 at 03:18:56PM +0100, Eric Engestrom wrote:
> It currently does 4 builds: 2 using Meson and 2 using Autotools, 2 using
> the latest dependencies on ArchLinux and 2 using very old dependencies
> on Debian (including manually building libpciaccess to have the oldest
> version supported, to make sure it keeps being supported).
> 
> All the build options are turned on for both Meson and Autotools.
> 
> Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
> ---
> See it in action on my fork:
> https://gitlab.freedesktop.org/eric/libdrm/pipelines/3885

With the --no-check-certificate things explained:

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  .gitlab-ci.yml | 173 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 173 insertions(+)
>  create mode 100644 .gitlab-ci.yml
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> new file mode 100644
> index 00000000000000000000..a0f3ecb9d7f7f95443a7
> --- /dev/null
> +++ b/.gitlab-ci.yml
> @@ -0,0 +1,173 @@
> +latest-meson:
> +  stage: build
> +  image: base/archlinux:latest
> +  before_script:
> +    - pacman -Syu --noconfirm --needed
> +        base-devel
> +        meson
> +        libpciaccess
> +        libxslt docbook-xsl
> +        valgrind
> +        libatomic_ops
> +        cairo cunit
> +  script:
> +    - meson _build
> +        -D amdgpu=true
> +        -D cairo-tests=true
> +        -D etnaviv=true
> +        -D exynos=true
> +        -D freedreno=true
> +        -D freedreno-kgsl=true
> +        -D intel=true
> +        -D libkms=true
> +        -D man-pages=true
> +        -D nouveau=true
> +        -D omap=true
> +        -D radeon=true
> +        -D tegra=true
> +        -D udev=true
> +        -D valgrind=true
> +        -D vc4=true
> +        -D vmwgfx=true
> +    - ninja -C _build
> +    - ninja -C _build test
> +
> +latest-autotools:
> +  stage: build
> +  image: base/archlinux:latest
> +  before_script:
> +    - pacman -Syu --noconfirm --needed
> +        base-devel
> +        libpciaccess
> +        libxslt docbook-xsl
> +        valgrind
> +        libatomic_ops
> +        cairo cunit
> +        xorg-util-macros
> +        git # autogen.sh depends on git
> +  script:
> +    - mkdir _build
> +    - cd _build
> +    - ../autogen.sh
> +        --enable-udev
> +        --enable-libkms
> +        --enable-intel
> +        --enable-radeon
> +        --enable-admgpu
> +        --enable-nouveau
> +        --enable-vmwfgx
> +        --enable-omap-experimental-api
> +        --enable-exynos-experimental-api
> +        --enable-freedreno
> +        --enable-freedreno-kgsl
> +        --enable-tegra-experimental-api
> +        --enable-vc4
> +        --enable-etnaviv-experimental-api
> +    - make
> +    - make check
> +
> +oldest-meson:
> +  stage: build
> +  image: debian:stable
> +  before_script:
> +    - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
> +        'path-exclude=/usr/share/doc/*'
> +        'path-exclude=/usr/share/man/*'
> +    - printf > /usr/sbin/policy-rc.d "%s\n"
> +        '#!/bin/sh'
> +        'exit 101'
> +    - chmod +x /usr/sbin/policy-rc.d
> +    - apt-get update
> +    - apt-get -y --no-install-recommends install
> +        build-essential
> +        pkg-config
> +        xsltproc
> +        libxslt1-dev docbook-xsl
> +        valgrind
> +        libatomic-ops-dev
> +        libcairo2-dev libcunit1-dev
> +        ninja-build
> +        python3 python3-pip
> +        wget
> +    - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
> +      wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
> +      tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2 &&
> +      (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
> +    - pip3 install wheel setuptools
> +    - pip3 install meson==0.43
> +  script:
> +    - export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
> +    - export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
> +    - meson _build
> +        -D amdgpu=true
> +        -D cairo-tests=true
> +        -D etnaviv=true
> +        -D exynos=true
> +        -D freedreno=true
> +        -D freedreno-kgsl=true
> +        -D intel=true
> +        -D libkms=true
> +        -D man-pages=true
> +        -D nouveau=true
> +        -D omap=true
> +        -D radeon=true
> +        -D tegra=true
> +        -D udev=true
> +        -D valgrind=true
> +        -D vc4=true
> +        -D vmwgfx=true
> +    - ninja -C _build
> +    - ninja -C _build test
> +
> +oldest-autotools:
> +  stage: build
> +  image: debian:stable
> +  before_script:
> +    - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
> +        'path-exclude=/usr/share/doc/*'
> +        'path-exclude=/usr/share/man/*'
> +    - printf > /usr/sbin/policy-rc.d "%s\n"
> +        '#!/bin/sh'
> +        'exit 101'
> +    - chmod +x /usr/sbin/policy-rc.d
> +    - apt-get update
> +    - apt-get -y --no-install-recommends install
> +        build-essential
> +        automake
> +        autoconf
> +        libtool
> +        pkg-config
> +        xsltproc
> +        libxslt1-dev docbook-xsl
> +        valgrind
> +        libatomic-ops-dev
> +        libcairo2-dev libcunit1-dev
> +        wget
> +        xutils-dev
> +        git # autogen.sh depends on git
> +    - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
> +      wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
> +      tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2 &&
> +      (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
> +  script:
> +    - export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
> +    - export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
> +    - mkdir _build
> +    - cd _build
> +    - ../autogen.sh
> +        --enable-udev
> +        --enable-libkms
> +        --enable-intel
> +        --enable-radeon
> +        --enable-admgpu
> +        --enable-nouveau
> +        --enable-vmwfgx
> +        --enable-omap-experimental-api
> +        --enable-exynos-experimental-api
> +        --enable-freedreno
> +        --enable-freedreno-kgsl
> +        --enable-tegra-experimental-api
> +        --enable-vc4
> +        --enable-etnaviv-experimental-api
> +    - make
> +    - make check
> -- 
> Cheers,
>   Eric
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Daniel Stone Sept. 3, 2018, 8:51 a.m. UTC | #7
Hi,

On Mon, 3 Sep 2018 at 09:45, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Fri, Aug 31, 2018 at 03:18:56PM +0100, Eric Engestrom wrote:
> > It currently does 4 builds: 2 using Meson and 2 using Autotools, 2 using
> > the latest dependencies on ArchLinux and 2 using very old dependencies
> > on Debian (including manually building libpciaccess to have the oldest
> > version supported, to make sure it keeps being supported).
> >
> > All the build options are turned on for both Meson and Autotools.
> >
> > Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
> > ---
> > See it in action on my fork:
> > https://gitlab.freedesktop.org/eric/libdrm/pipelines/3885
>
> With the --no-check-certificate things explained:
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Indeed, and also:
Reviewed-by: Daniel Stone <daniels@collabora.com>

Thanks for doing this!

Cheers,
Daniel
Eric Engestrom Sept. 3, 2018, 9:11 a.m. UTC | #8
On Monday, 2018-09-03 10:43:36 +0200, Daniel Vetter wrote:
> On Mon, Sep 03, 2018 at 09:07:10AM +0100, Eric Engestrom wrote:
> > On Monday, 2018-09-03 09:50:06 +0200, Daniel Vetter wrote:
> > > On Fri, Aug 31, 2018 at 05:13:25PM +0100, Eric Engestrom wrote:
> > > > On Friday, 2018-08-31 16:03:44 +0100, Daniel Stone wrote:
> > > > > Hi Eric,
> > > > > 
> > > > > On Fri, 31 Aug 2018 at 15:22, Eric Engestrom <eric.engestrom@intel.com> wrote:
> > > > > > +    - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
> > > > > > +      wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
> > > > > 
> > > > > Why are you using --no-check-certificate?!
> > > > 
> > > > Right, forgot to add a comment for this, sorry.
> > > > 
> > > > fd.o uses LetsEncrypt, which is not present in the ca-certificate on
> > > > debian:stable. I had to choose between ignoring the certificate error or
> > > > use a custom CA, which just didn't seem worth it.
> > > 
> > > Slightly more modern distro then? On the kernel side we're going with
> > > fedora:latest, that also tends to have all the latest bells&whistles we
> > > need for compiling some of our things.
> > 
> > I have two distros in this pipeline: arch to test the up-to-date stuff
> > and debian to test the ancient stuff.
> > Should I drop debian and just keep arch to only have the up-to-date test?
>  
> Ah, I missed that. Makes sense (if you add a comment to explain this).
> 
> > FYI, I'm planning on adding freebsd too (later this week hopefully).
> 
> I think cross-compiling to arm/arm64, and making sure x86 (the 32bit
> stuff) keeps working would be great too. If you go to the trouble of
> testing all these things :-)

Good points, I forgot about testing archs; I'll add those too, thanks :)

> -Daniel
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox series

Patch

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000000000000000..a0f3ecb9d7f7f95443a7
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,173 @@ 
+latest-meson:
+  stage: build
+  image: base/archlinux:latest
+  before_script:
+    - pacman -Syu --noconfirm --needed
+        base-devel
+        meson
+        libpciaccess
+        libxslt docbook-xsl
+        valgrind
+        libatomic_ops
+        cairo cunit
+  script:
+    - meson _build
+        -D amdgpu=true
+        -D cairo-tests=true
+        -D etnaviv=true
+        -D exynos=true
+        -D freedreno=true
+        -D freedreno-kgsl=true
+        -D intel=true
+        -D libkms=true
+        -D man-pages=true
+        -D nouveau=true
+        -D omap=true
+        -D radeon=true
+        -D tegra=true
+        -D udev=true
+        -D valgrind=true
+        -D vc4=true
+        -D vmwgfx=true
+    - ninja -C _build
+    - ninja -C _build test
+
+latest-autotools:
+  stage: build
+  image: base/archlinux:latest
+  before_script:
+    - pacman -Syu --noconfirm --needed
+        base-devel
+        libpciaccess
+        libxslt docbook-xsl
+        valgrind
+        libatomic_ops
+        cairo cunit
+        xorg-util-macros
+        git # autogen.sh depends on git
+  script:
+    - mkdir _build
+    - cd _build
+    - ../autogen.sh
+        --enable-udev
+        --enable-libkms
+        --enable-intel
+        --enable-radeon
+        --enable-admgpu
+        --enable-nouveau
+        --enable-vmwfgx
+        --enable-omap-experimental-api
+        --enable-exynos-experimental-api
+        --enable-freedreno
+        --enable-freedreno-kgsl
+        --enable-tegra-experimental-api
+        --enable-vc4
+        --enable-etnaviv-experimental-api
+    - make
+    - make check
+
+oldest-meson:
+  stage: build
+  image: debian:stable
+  before_script:
+    - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
+        'path-exclude=/usr/share/doc/*'
+        'path-exclude=/usr/share/man/*'
+    - printf > /usr/sbin/policy-rc.d "%s\n"
+        '#!/bin/sh'
+        'exit 101'
+    - chmod +x /usr/sbin/policy-rc.d
+    - apt-get update
+    - apt-get -y --no-install-recommends install
+        build-essential
+        pkg-config
+        xsltproc
+        libxslt1-dev docbook-xsl
+        valgrind
+        libatomic-ops-dev
+        libcairo2-dev libcunit1-dev
+        ninja-build
+        python3 python3-pip
+        wget
+    - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
+      wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
+      tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2 &&
+      (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
+    - pip3 install wheel setuptools
+    - pip3 install meson==0.43
+  script:
+    - export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
+    - export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
+    - meson _build
+        -D amdgpu=true
+        -D cairo-tests=true
+        -D etnaviv=true
+        -D exynos=true
+        -D freedreno=true
+        -D freedreno-kgsl=true
+        -D intel=true
+        -D libkms=true
+        -D man-pages=true
+        -D nouveau=true
+        -D omap=true
+        -D radeon=true
+        -D tegra=true
+        -D udev=true
+        -D valgrind=true
+        -D vc4=true
+        -D vmwgfx=true
+    - ninja -C _build
+    - ninja -C _build test
+
+oldest-autotools:
+  stage: build
+  image: debian:stable
+  before_script:
+    - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
+        'path-exclude=/usr/share/doc/*'
+        'path-exclude=/usr/share/man/*'
+    - printf > /usr/sbin/policy-rc.d "%s\n"
+        '#!/bin/sh'
+        'exit 101'
+    - chmod +x /usr/sbin/policy-rc.d
+    - apt-get update
+    - apt-get -y --no-install-recommends install
+        build-essential
+        automake
+        autoconf
+        libtool
+        pkg-config
+        xsltproc
+        libxslt1-dev docbook-xsl
+        valgrind
+        libatomic-ops-dev
+        libcairo2-dev libcunit1-dev
+        wget
+        xutils-dev
+        git # autogen.sh depends on git
+    - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
+      wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
+      tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2 &&
+      (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
+  script:
+    - export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
+    - export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
+    - mkdir _build
+    - cd _build
+    - ../autogen.sh
+        --enable-udev
+        --enable-libkms
+        --enable-intel
+        --enable-radeon
+        --enable-admgpu
+        --enable-nouveau
+        --enable-vmwfgx
+        --enable-omap-experimental-api
+        --enable-exynos-experimental-api
+        --enable-freedreno
+        --enable-freedreno-kgsl
+        --enable-tegra-experimental-api
+        --enable-vc4
+        --enable-etnaviv-experimental-api
+    - make
+    - make check