diff mbox series

[libdrm] CI: Capture test logs as GitLab artifacts

Message ID 20180906100117.5627-1-daniels@collabora.com (mailing list archive)
State New, archived
Headers show
Series [libdrm] CI: Capture test logs as GitLab artifacts | expand

Commit Message

Daniel Stone Sept. 6, 2018, 10:01 a.m. UTC
GitLab CI already captures all the stdout/stderr output from the build
process as the log. However, some other important information is hidden
in other log files.

Taken from Wayland, capture logs from the configuration process as well
as from every check.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Cc: Lucas De Marchi <lucas.de.marchi@gmail.com>
Cc: Eric Engeström <eric.engestrom@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 .gitlab-ci.yml | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

Daniel Vetter Sept. 6, 2018, 10:38 a.m. UTC | #1
On Thu, Sep 06, 2018 at 11:01:17AM +0100, Daniel Stone wrote:
> GitLab CI already captures all the stdout/stderr output from the build
> process as the log. However, some other important information is hidden
> in other log files.
> 
> Taken from Wayland, capture logs from the configuration process as well
> as from every check.
> 
> Signed-off-by: Daniel Stone <daniels@collabora.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
> Cc: Lucas De Marchi <lucas.de.marchi@gmail.com>
> Cc: Eric Engeström <eric.engestrom@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>

I think there's also an option to capture all non-tracked files when the
build fails. For the lazy :-) But this looks good too.

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  .gitlab-ci.yml | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index eee6abfc..50ec8527 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -1,6 +1,29 @@
> +.artifacts-meson: &artifacts-meson
> +  when: always
> +  paths:
> +   - _build/meson-logs
> +
> +.artifacts-autotools: &artifacts-autotools
> +  when: always
> +  paths:
> +    - _build/*.log
> +    - _build/amdgpu/*.log
> +    - _build/etnaviv/*.log
> +    - _build/exynos/*.log
> +    - _build/freedreno/*.log
> +    - _build/intel/*.log
> +    - _build/libkms/*.log
> +    - _build/nouveau/*.log
> +    - _build/omap/*.log
> +    - _build/radeon/*.log
> +    - _build/tegra/*.log
> +    - _build/tests/*.log
> +    - _build/tests/*/*.log
> +
>  latest-meson:
>    stage: build
>    image: base/archlinux:latest
> +  artifacts: *artifacts-meson
>    before_script:
>      - pacman -Syu --noconfirm --needed
>          base-devel
> @@ -35,6 +58,7 @@ latest-meson:
>  latest-autotools:
>    stage: build
>    image: base/archlinux:latest
> +  artifacts: *artifacts-autotools
>    before_script:
>      - pacman -Syu --noconfirm --needed
>          base-devel
> @@ -69,6 +93,7 @@ latest-autotools:
>  oldest-meson:
>    stage: build
>    image: debian:stable
> +  artifacts: *artifacts-meson
>    before_script:
>      - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
>          'path-exclude=/usr/share/doc/*'
> @@ -125,6 +150,7 @@ oldest-meson:
>  oldest-autotools:
>    stage: build
>    image: debian:stable
> +  artifacts: *artifacts-autotools
>    before_script:
>      - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
>          'path-exclude=/usr/share/doc/*'
> -- 
> 2.19.0.rc0
>
Eric Engestrom Sept. 6, 2018, 11:02 a.m. UTC | #2
On Thursday, 2018-09-06 11:01:17 +0100, Daniel Stone wrote:
> GitLab CI already captures all the stdout/stderr output from the build
> process as the log. However, some other important information is hidden
> in other log files.
> 
> Taken from Wayland, capture logs from the configuration process as well
> as from every check.
> 
> Signed-off-by: Daniel Stone <daniels@collabora.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
> Cc: Lucas De Marchi <lucas.de.marchi@gmail.com>
> Cc: Eric Engeström <eric.engestrom@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  .gitlab-ci.yml | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index eee6abfc..50ec8527 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -1,6 +1,29 @@
> +.artifacts-meson: &artifacts-meson

Ooooh, variables? I might try to dedup the 'meson build' and
'autotools build' code with those :)

> +  when: always
> +  paths:
> +   - _build/meson-logs
> +
> +.artifacts-autotools: &artifacts-autotools
> +  when: always
> +  paths:
> +    - _build/*.log
> +    - _build/amdgpu/*.log
> +    - _build/etnaviv/*.log
> +    - _build/exynos/*.log
> +    - _build/freedreno/*.log
> +    - _build/intel/*.log
> +    - _build/libkms/*.log
> +    - _build/nouveau/*.log
> +    - _build/omap/*.log
> +    - _build/radeon/*.log
> +    - _build/tegra/*.log

All of the above can be simplified to:
- _build/*/*.log

(vc4 is missing btw)

With vc4 added, or /*/ used:
Acked-by: Eric Engestrom <eric.engestrom@intel.com>

> +    - _build/tests/*.log
> +    - _build/tests/*/*.log
> +
>  latest-meson:
>    stage: build
>    image: base/archlinux:latest
> +  artifacts: *artifacts-meson
>    before_script:
>      - pacman -Syu --noconfirm --needed
>          base-devel
> @@ -35,6 +58,7 @@ latest-meson:
>  latest-autotools:
>    stage: build
>    image: base/archlinux:latest
> +  artifacts: *artifacts-autotools
>    before_script:
>      - pacman -Syu --noconfirm --needed
>          base-devel
> @@ -69,6 +93,7 @@ latest-autotools:
>  oldest-meson:
>    stage: build
>    image: debian:stable
> +  artifacts: *artifacts-meson
>    before_script:
>      - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
>          'path-exclude=/usr/share/doc/*'
> @@ -125,6 +150,7 @@ oldest-meson:
>  oldest-autotools:
>    stage: build
>    image: debian:stable
> +  artifacts: *artifacts-autotools
>    before_script:
>      - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
>          'path-exclude=/usr/share/doc/*'
> -- 
> 2.19.0.rc0
>
Emil Velikov Sept. 6, 2018, 1:44 p.m. UTC | #3
On 6 September 2018 at 12:02, Eric Engestrom <eric.engestrom@intel.com> wrote:
> On Thursday, 2018-09-06 11:01:17 +0100, Daniel Stone wrote:
>> GitLab CI already captures all the stdout/stderr output from the build
>> process as the log. However, some other important information is hidden
>> in other log files.
>>
>> Taken from Wayland, capture logs from the configuration process as well
>> as from every check.
>>
>> Signed-off-by: Daniel Stone <daniels@collabora.com>
>> Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
>> Cc: Lucas De Marchi <lucas.de.marchi@gmail.com>
>> Cc: Eric Engeström <eric.engestrom@intel.com>
>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>> ---
>>  .gitlab-ci.yml | 26 ++++++++++++++++++++++++++
>>  1 file changed, 26 insertions(+)
>>
>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>> index eee6abfc..50ec8527 100644
>> --- a/.gitlab-ci.yml
>> +++ b/.gitlab-ci.yml
>> @@ -1,6 +1,29 @@
>> +.artifacts-meson: &artifacts-meson
>
> Ooooh, variables? I might try to dedup the 'meson build' and
> 'autotools build' code with those :)
>
>> +  when: always
>> +  paths:
>> +   - _build/meson-logs
>> +
>> +.artifacts-autotools: &artifacts-autotools
>> +  when: always
>> +  paths:
>> +    - _build/*.log
>> +    - _build/amdgpu/*.log
>> +    - _build/etnaviv/*.log
>> +    - _build/exynos/*.log
>> +    - _build/freedreno/*.log
>> +    - _build/intel/*.log
>> +    - _build/libkms/*.log
>> +    - _build/nouveau/*.log
>> +    - _build/omap/*.log
>> +    - _build/radeon/*.log
>> +    - _build/tegra/*.log
>
> All of the above can be simplified to:
> - _build/*/*.log
>
> (vc4 is missing btw)
>
> With vc4 added, or /*/ used:
> Acked-by: Eric Engestrom <eric.engestrom@intel.com>
>
I would fold everything in these tree lines.
- _build/*.log
- _build/*/*.log
- _build/*/*/*.log

It covers everything existing, plus catches future ones ;-)
With that
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

-Emil
Sean Paul Sept. 6, 2018, 3:39 p.m. UTC | #4
On Thu, Sep 06, 2018 at 12:38:46PM +0200, Daniel Vetter wrote:
> On Thu, Sep 06, 2018 at 11:01:17AM +0100, Daniel Stone wrote:
> > GitLab CI already captures all the stdout/stderr output from the build
> > process as the log. However, some other important information is hidden
> > in other log files.
> > 
> > Taken from Wayland, capture logs from the configuration process as well
> > as from every check.
> > 
> > Signed-off-by: Daniel Stone <daniels@collabora.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
> > Cc: Lucas De Marchi <lucas.de.marchi@gmail.com>
> > Cc: Eric Engeström <eric.engestrom@intel.com>
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> 
> I think there's also an option to capture all non-tracked files when the
> build fails. For the lazy :-) But this looks good too.

One person's lazy is another person's efficient [1] :-)

Sean

[1]- https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/commit/68a78ef6bd8b8ddf710e9a0654fa47cdc1f158d3#587d266bb27a4dc3022bbed44dfa19849df3044c_17_15


> 
> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > ---
> >  .gitlab-ci.yml | 26 ++++++++++++++++++++++++++
> >  1 file changed, 26 insertions(+)
> > 
> > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > index eee6abfc..50ec8527 100644
> > --- a/.gitlab-ci.yml
> > +++ b/.gitlab-ci.yml
> > @@ -1,6 +1,29 @@
> > +.artifacts-meson: &artifacts-meson
> > +  when: always
> > +  paths:
> > +   - _build/meson-logs
> > +
> > +.artifacts-autotools: &artifacts-autotools
> > +  when: always
> > +  paths:
> > +    - _build/*.log
> > +    - _build/amdgpu/*.log
> > +    - _build/etnaviv/*.log
> > +    - _build/exynos/*.log
> > +    - _build/freedreno/*.log
> > +    - _build/intel/*.log
> > +    - _build/libkms/*.log
> > +    - _build/nouveau/*.log
> > +    - _build/omap/*.log
> > +    - _build/radeon/*.log
> > +    - _build/tegra/*.log
> > +    - _build/tests/*.log
> > +    - _build/tests/*/*.log
> > +
> >  latest-meson:
> >    stage: build
> >    image: base/archlinux:latest
> > +  artifacts: *artifacts-meson
> >    before_script:
> >      - pacman -Syu --noconfirm --needed
> >          base-devel
> > @@ -35,6 +58,7 @@ latest-meson:
> >  latest-autotools:
> >    stage: build
> >    image: base/archlinux:latest
> > +  artifacts: *artifacts-autotools
> >    before_script:
> >      - pacman -Syu --noconfirm --needed
> >          base-devel
> > @@ -69,6 +93,7 @@ latest-autotools:
> >  oldest-meson:
> >    stage: build
> >    image: debian:stable
> > +  artifacts: *artifacts-meson
> >    before_script:
> >      - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
> >          'path-exclude=/usr/share/doc/*'
> > @@ -125,6 +150,7 @@ oldest-meson:
> >  oldest-autotools:
> >    stage: build
> >    image: debian:stable
> > +  artifacts: *artifacts-autotools
> >    before_script:
> >      - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
> >          'path-exclude=/usr/share/doc/*'
> > -- 
> > 2.19.0.rc0
> > 
> 
> -- 
> 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
index eee6abfc..50ec8527 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,29 @@ 
+.artifacts-meson: &artifacts-meson
+  when: always
+  paths:
+   - _build/meson-logs
+
+.artifacts-autotools: &artifacts-autotools
+  when: always
+  paths:
+    - _build/*.log
+    - _build/amdgpu/*.log
+    - _build/etnaviv/*.log
+    - _build/exynos/*.log
+    - _build/freedreno/*.log
+    - _build/intel/*.log
+    - _build/libkms/*.log
+    - _build/nouveau/*.log
+    - _build/omap/*.log
+    - _build/radeon/*.log
+    - _build/tegra/*.log
+    - _build/tests/*.log
+    - _build/tests/*/*.log
+
 latest-meson:
   stage: build
   image: base/archlinux:latest
+  artifacts: *artifacts-meson
   before_script:
     - pacman -Syu --noconfirm --needed
         base-devel
@@ -35,6 +58,7 @@  latest-meson:
 latest-autotools:
   stage: build
   image: base/archlinux:latest
+  artifacts: *artifacts-autotools
   before_script:
     - pacman -Syu --noconfirm --needed
         base-devel
@@ -69,6 +93,7 @@  latest-autotools:
 oldest-meson:
   stage: build
   image: debian:stable
+  artifacts: *artifacts-meson
   before_script:
     - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
         'path-exclude=/usr/share/doc/*'
@@ -125,6 +150,7 @@  oldest-meson:
 oldest-autotools:
   stage: build
   image: debian:stable
+  artifacts: *artifacts-autotools
   before_script:
     - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
         'path-exclude=/usr/share/doc/*'