[libcamera-ci,3/3] Move release builds to Debian 13
diff mbox series

Message ID 20260512144520.171290-4-laurent.pinchart@ideasonboard.com
State New
Headers show
Series
  • Move release builds to Debian 13
Related show

Commit Message

Laurent Pinchart May 12, 2026, 2:45 p.m. UTC
All our release builds are run on Debian 12, with more recent compiler
versions in Debian 13 performing debug builds only. Debug vs. release
compilation coverage is more important on newer compiles. Move the
release builds from Debian 12 to Debian 13.

As a drive-by cleanup, drop the explicit 'BUILD_TYPE: debug' as it is
the default provided by .build-full:debian.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 gitlab-ci.yml | 35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)

Comments

Barnabás Pőcze May 12, 2026, 3:52 p.m. UTC | #1
2026. 05. 12. 16:45 keltezéssel, Laurent Pinchart írta:
> All our release builds are run on Debian 12, with more recent compiler
> versions in Debian 13 performing debug builds only. Debug vs. release
> compilation coverage is more important on newer compiles. Move the
> release builds from Debian 12 to Debian 13.
> 
> As a drive-by cleanup, drop the explicit 'BUILD_TYPE: debug' as it is
> the default provided by .build-full:debian.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>   gitlab-ci.yml | 35 +++++++++++++++++------------------
>   1 file changed, 17 insertions(+), 18 deletions(-)
> 
> diff --git a/gitlab-ci.yml b/gitlab-ci.yml
> index f9496fcdc80c..b7e655666347 100644
> --- a/gitlab-ci.yml
> +++ b/gitlab-ci.yml
> @@ -182,14 +182,6 @@ build-full:debian:12:
>         - ARCH: amd64
>           CC: gcc-12
>           CXX: g++-12
> -      - ARCH: amd64
> -        BUILD_TYPE: release
> -        CC: gcc-12
> -        CXX: g++-12
> -        MESON_OPTIONS: >-
> -          ${MESON_ALL_OPTIONS}
> -          -D b_sanitize=none
> -          -D cpp_debugstl=false
>         - ARCH: amd64
>           CC: clang
>           CXX: clang++
> @@ -197,16 +189,6 @@ build-full:debian:12:
>             ${MESON_ALL_OPTIONS}
>             ${MESON_CLANG_LIBCPP_OPTIONS}
>             -D qcam=disabled
> -      - ARCH: amd64
> -        BUILD_TYPE: release
> -        CC: clang
> -        CXX: clang++
> -        MESON_OPTIONS: >-
> -          ${MESON_ALL_OPTIONS}
> -          ${MESON_CLANG_LIBCPP_OPTIONS}
> -          -D b_sanitize=none
> -          -D cpp_debugstl=false
> -          -D qcam=disabled
>   
>   build-full:debian:13:
>     extends:
> @@ -231,6 +213,14 @@ build-full:debian:13:
>             ${MESON_ALL_OPTIONS}
>             -D documentation=enabled
>             -D doc_werror=true
> +      - ARCH: amd64
> +        BUILD_TYPE: release
> +        CC: gcc-14
> +        CXX: g++-14
> +        MESON_OPTIONS: >-
> +          ${MESON_ALL_OPTIONS}
> +          -D b_sanitize=none
> +          -D cpp_debugstl=false
>         - ARCH: amd64
>           CC: clang
>           CXX: clang++
> @@ -239,6 +229,15 @@ build-full:debian:13:
>             # with clang 18 or later due to https://github.com/mesonbuild/meson/issues/13812
>             - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBCPP_OPTIONS} -D qcam=disabled -D cpp_debugstl=false
>             - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBSTDCPP_OPTIONS}
> +      - ARCH: amd64
> +        BUILD_TYPE: release
> +        CC: clang
> +        CXX: clang++
> +        MESON_OPTIONS: >-
> +          ${MESON_ALL_OPTIONS}
> +          ${MESON_CLANG_LIBSTDCPP_OPTIONS}

This became libstdc++, is that intentional? What about duplicating the above
clang debug jobs but with "release"? That should cover both libc++ and libstdc++.


> +          -D b_sanitize=none
> +          -D cpp_debugstl=false
>         - ARCH: armhf
>         - ARCH: arm64
>
Laurent Pinchart May 12, 2026, 6:37 p.m. UTC | #2
On Tue, May 12, 2026 at 05:52:04PM +0200, Barnabás Pőcze wrote:
> 2026. 05. 12. 16:45 keltezéssel, Laurent Pinchart írta:
> > All our release builds are run on Debian 12, with more recent compiler
> > versions in Debian 13 performing debug builds only. Debug vs. release
> > compilation coverage is more important on newer compiles. Move the
> > release builds from Debian 12 to Debian 13.
> > 
> > As a drive-by cleanup, drop the explicit 'BUILD_TYPE: debug' as it is
> > the default provided by .build-full:debian.
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> >   gitlab-ci.yml | 35 +++++++++++++++++------------------
> >   1 file changed, 17 insertions(+), 18 deletions(-)
> > 
> > diff --git a/gitlab-ci.yml b/gitlab-ci.yml
> > index f9496fcdc80c..b7e655666347 100644
> > --- a/gitlab-ci.yml
> > +++ b/gitlab-ci.yml
> > @@ -182,14 +182,6 @@ build-full:debian:12:
> >         - ARCH: amd64
> >           CC: gcc-12
> >           CXX: g++-12
> > -      - ARCH: amd64
> > -        BUILD_TYPE: release
> > -        CC: gcc-12
> > -        CXX: g++-12
> > -        MESON_OPTIONS: >-
> > -          ${MESON_ALL_OPTIONS}
> > -          -D b_sanitize=none
> > -          -D cpp_debugstl=false
> >         - ARCH: amd64
> >           CC: clang
> >           CXX: clang++
> > @@ -197,16 +189,6 @@ build-full:debian:12:
> >             ${MESON_ALL_OPTIONS}
> >             ${MESON_CLANG_LIBCPP_OPTIONS}
> >             -D qcam=disabled
> > -      - ARCH: amd64
> > -        BUILD_TYPE: release
> > -        CC: clang
> > -        CXX: clang++
> > -        MESON_OPTIONS: >-
> > -          ${MESON_ALL_OPTIONS}
> > -          ${MESON_CLANG_LIBCPP_OPTIONS}
> > -          -D b_sanitize=none
> > -          -D cpp_debugstl=false
> > -          -D qcam=disabled
> >   
> >   build-full:debian:13:
> >     extends:
> > @@ -231,6 +213,14 @@ build-full:debian:13:
> >             ${MESON_ALL_OPTIONS}
> >             -D documentation=enabled
> >             -D doc_werror=true
> > +      - ARCH: amd64
> > +        BUILD_TYPE: release
> > +        CC: gcc-14
> > +        CXX: g++-14
> > +        MESON_OPTIONS: >-
> > +          ${MESON_ALL_OPTIONS}
> > +          -D b_sanitize=none
> > +          -D cpp_debugstl=false
> >         - ARCH: amd64
> >           CC: clang
> >           CXX: clang++
> > @@ -239,6 +229,15 @@ build-full:debian:13:
> >             # with clang 18 or later due to https://github.com/mesonbuild/meson/issues/13812
> >             - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBCPP_OPTIONS} -D qcam=disabled -D cpp_debugstl=false
> >             - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBSTDCPP_OPTIONS}
> > +      - ARCH: amd64
> > +        BUILD_TYPE: release
> > +        CC: clang
> > +        CXX: clang++
> > +        MESON_OPTIONS: >-
> > +          ${MESON_ALL_OPTIONS}
> > +          ${MESON_CLANG_LIBSTDCPP_OPTIONS}
> 
> This became libstdc++, is that intentional? What about duplicating the above
> clang debug jobs but with "release"? That should cover both libc++ and libstdc++.

Then we would have to disable qcam, as it would fail to link against Qt
compiles with libstdc++. If you think that's better I'll do so.

> > +          -D b_sanitize=none
> > +          -D cpp_debugstl=false
> >         - ARCH: armhf
> >         - ARCH: arm64
> >
Barnabás Pőcze May 12, 2026, 7:27 p.m. UTC | #3
2026. 05. 12. 20:37 keltezéssel, Laurent Pinchart írta:
> On Tue, May 12, 2026 at 05:52:04PM +0200, Barnabás Pőcze wrote:
>> 2026. 05. 12. 16:45 keltezéssel, Laurent Pinchart írta:
>>> All our release builds are run on Debian 12, with more recent compiler
>>> versions in Debian 13 performing debug builds only. Debug vs. release
>>> compilation coverage is more important on newer compiles. Move the
>>> release builds from Debian 12 to Debian 13.
>>>
>>> As a drive-by cleanup, drop the explicit 'BUILD_TYPE: debug' as it is
>>> the default provided by .build-full:debian.
>>>
>>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>> ---
>>>    gitlab-ci.yml | 35 +++++++++++++++++------------------
>>>    1 file changed, 17 insertions(+), 18 deletions(-)
>>>
>>> diff --git a/gitlab-ci.yml b/gitlab-ci.yml
>>> index f9496fcdc80c..b7e655666347 100644
>>> --- a/gitlab-ci.yml
>>> +++ b/gitlab-ci.yml
>>> @@ -182,14 +182,6 @@ build-full:debian:12:
>>>          - ARCH: amd64
>>>            CC: gcc-12
>>>            CXX: g++-12
>>> -      - ARCH: amd64
>>> -        BUILD_TYPE: release
>>> -        CC: gcc-12
>>> -        CXX: g++-12
>>> -        MESON_OPTIONS: >-
>>> -          ${MESON_ALL_OPTIONS}
>>> -          -D b_sanitize=none
>>> -          -D cpp_debugstl=false
>>>          - ARCH: amd64
>>>            CC: clang
>>>            CXX: clang++
>>> @@ -197,16 +189,6 @@ build-full:debian:12:
>>>              ${MESON_ALL_OPTIONS}
>>>              ${MESON_CLANG_LIBCPP_OPTIONS}
>>>              -D qcam=disabled
>>> -      - ARCH: amd64
>>> -        BUILD_TYPE: release
>>> -        CC: clang
>>> -        CXX: clang++
>>> -        MESON_OPTIONS: >-
>>> -          ${MESON_ALL_OPTIONS}
>>> -          ${MESON_CLANG_LIBCPP_OPTIONS}
>>> -          -D b_sanitize=none
>>> -          -D cpp_debugstl=false
>>> -          -D qcam=disabled
>>>
>>>    build-full:debian:13:
>>>      extends:
>>> @@ -231,6 +213,14 @@ build-full:debian:13:
>>>              ${MESON_ALL_OPTIONS}
>>>              -D documentation=enabled
>>>              -D doc_werror=true
>>> +      - ARCH: amd64
>>> +        BUILD_TYPE: release
>>> +        CC: gcc-14
>>> +        CXX: g++-14
>>> +        MESON_OPTIONS: >-
>>> +          ${MESON_ALL_OPTIONS}
>>> +          -D b_sanitize=none
>>> +          -D cpp_debugstl=false
>>>          - ARCH: amd64
>>>            CC: clang
>>>            CXX: clang++
>>> @@ -239,6 +229,15 @@ build-full:debian:13:
>>>              # with clang 18 or later due to https://github.com/mesonbuild/meson/issues/13812
>>>              - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBCPP_OPTIONS} -D qcam=disabled -D cpp_debugstl=false
>>>              - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBSTDCPP_OPTIONS}
>>> +      - ARCH: amd64
>>> +        BUILD_TYPE: release
>>> +        CC: clang
>>> +        CXX: clang++
>>> +        MESON_OPTIONS: >-
>>> +          ${MESON_ALL_OPTIONS}
>>> +          ${MESON_CLANG_LIBSTDCPP_OPTIONS}
>>
>> This became libstdc++, is that intentional? What about duplicating the above
>> clang debug jobs but with "release"? That should cover both libc++ and libstdc++.
> 
> Then we would have to disable qcam, as it would fail to link against Qt
> compiles with libstdc++. If you think that's better I'll do so.

I'm proposing:

       - ARCH: amd64
         CC: clang
         CXX: clang++
         BUILD_TYPE: release
         MESON_OPTIONS:
           - ${MESON_ALL_OPTIONS} -D b_sanitize=none -D cpp_debugstl=false ${MESON_CLANG_LIBCPP_OPTIONS} -D qcam=disabled
           - ${MESON_ALL_OPTIONS} -D b_sanitize=none -D cpp_debugstl=false ${MESON_CLANG_LIBSTDCPP_OPTIONS}

This is +1 job, but I think that's acceptable. If not, then let's keep it with libstdc++.

> 
>>> +          -D b_sanitize=none
>>> +          -D cpp_debugstl=false
>>>          - ARCH: armhf
>>>          - ARCH: arm64
>>>
> 
> --
> Regards,
> 
> Laurent Pinchart
Laurent Pinchart May 12, 2026, 7:40 p.m. UTC | #4
On Tue, May 12, 2026 at 09:27:16PM +0200, Barnabás Pőcze wrote:
> 2026. 05. 12. 20:37 keltezéssel, Laurent Pinchart írta:
> > On Tue, May 12, 2026 at 05:52:04PM +0200, Barnabás Pőcze wrote:
> >> 2026. 05. 12. 16:45 keltezéssel, Laurent Pinchart írta:
> >>> All our release builds are run on Debian 12, with more recent compiler
> >>> versions in Debian 13 performing debug builds only. Debug vs. release
> >>> compilation coverage is more important on newer compiles. Move the
> >>> release builds from Debian 12 to Debian 13.
> >>>
> >>> As a drive-by cleanup, drop the explicit 'BUILD_TYPE: debug' as it is
> >>> the default provided by .build-full:debian.
> >>>
> >>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >>> ---
> >>>    gitlab-ci.yml | 35 +++++++++++++++++------------------
> >>>    1 file changed, 17 insertions(+), 18 deletions(-)
> >>>
> >>> diff --git a/gitlab-ci.yml b/gitlab-ci.yml
> >>> index f9496fcdc80c..b7e655666347 100644
> >>> --- a/gitlab-ci.yml
> >>> +++ b/gitlab-ci.yml
> >>> @@ -182,14 +182,6 @@ build-full:debian:12:
> >>>          - ARCH: amd64
> >>>            CC: gcc-12
> >>>            CXX: g++-12
> >>> -      - ARCH: amd64
> >>> -        BUILD_TYPE: release
> >>> -        CC: gcc-12
> >>> -        CXX: g++-12
> >>> -        MESON_OPTIONS: >-
> >>> -          ${MESON_ALL_OPTIONS}
> >>> -          -D b_sanitize=none
> >>> -          -D cpp_debugstl=false
> >>>          - ARCH: amd64
> >>>            CC: clang
> >>>            CXX: clang++
> >>> @@ -197,16 +189,6 @@ build-full:debian:12:
> >>>              ${MESON_ALL_OPTIONS}
> >>>              ${MESON_CLANG_LIBCPP_OPTIONS}
> >>>              -D qcam=disabled
> >>> -      - ARCH: amd64
> >>> -        BUILD_TYPE: release
> >>> -        CC: clang
> >>> -        CXX: clang++
> >>> -        MESON_OPTIONS: >-
> >>> -          ${MESON_ALL_OPTIONS}
> >>> -          ${MESON_CLANG_LIBCPP_OPTIONS}
> >>> -          -D b_sanitize=none
> >>> -          -D cpp_debugstl=false
> >>> -          -D qcam=disabled
> >>>
> >>>    build-full:debian:13:
> >>>      extends:
> >>> @@ -231,6 +213,14 @@ build-full:debian:13:
> >>>              ${MESON_ALL_OPTIONS}
> >>>              -D documentation=enabled
> >>>              -D doc_werror=true
> >>> +      - ARCH: amd64
> >>> +        BUILD_TYPE: release
> >>> +        CC: gcc-14
> >>> +        CXX: g++-14
> >>> +        MESON_OPTIONS: >-
> >>> +          ${MESON_ALL_OPTIONS}
> >>> +          -D b_sanitize=none
> >>> +          -D cpp_debugstl=false
> >>>          - ARCH: amd64
> >>>            CC: clang
> >>>            CXX: clang++
> >>> @@ -239,6 +229,15 @@ build-full:debian:13:
> >>>              # with clang 18 or later due to https://github.com/mesonbuild/meson/issues/13812
> >>>              - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBCPP_OPTIONS} -D qcam=disabled -D cpp_debugstl=false
> >>>              - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBSTDCPP_OPTIONS}
> >>> +      - ARCH: amd64
> >>> +        BUILD_TYPE: release
> >>> +        CC: clang
> >>> +        CXX: clang++
> >>> +        MESON_OPTIONS: >-
> >>> +          ${MESON_ALL_OPTIONS}
> >>> +          ${MESON_CLANG_LIBSTDCPP_OPTIONS}
> >>
> >> This became libstdc++, is that intentional? What about duplicating the above
> >> clang debug jobs but with "release"? That should cover both libc++ and libstdc++.
> > 
> > Then we would have to disable qcam, as it would fail to link against Qt
> > compiles with libstdc++. If you think that's better I'll do so.
> 
> I'm proposing:
> 
>        - ARCH: amd64
>          CC: clang
>          CXX: clang++
>          BUILD_TYPE: release
>          MESON_OPTIONS:
>            - ${MESON_ALL_OPTIONS} -D b_sanitize=none -D cpp_debugstl=false ${MESON_CLANG_LIBCPP_OPTIONS} -D qcam=disabled
>            - ${MESON_ALL_OPTIONS} -D b_sanitize=none -D cpp_debugstl=false ${MESON_CLANG_LIBSTDCPP_OPTIONS}
> 
> This is +1 job, but I think that's acceptable. If not, then let's keep it with libstdc++.

As often with CI it's a bit hard to decide what brings enough value to
justify the CPU cycles cost. I don't think anyone has ever reported a
clang + libc++ + release issue that slipped through, so I was hoping we
could avoid adding extra jobs. If you think it's valuable enough I can
add it.

> >>> +          -D b_sanitize=none
> >>> +          -D cpp_debugstl=false
> >>>          - ARCH: armhf
> >>>          - ARCH: arm64
> >>>

Patch
diff mbox series

diff --git a/gitlab-ci.yml b/gitlab-ci.yml
index f9496fcdc80c..b7e655666347 100644
--- a/gitlab-ci.yml
+++ b/gitlab-ci.yml
@@ -182,14 +182,6 @@  build-full:debian:12:
       - ARCH: amd64
         CC: gcc-12
         CXX: g++-12
-      - ARCH: amd64
-        BUILD_TYPE: release
-        CC: gcc-12
-        CXX: g++-12
-        MESON_OPTIONS: >-
-          ${MESON_ALL_OPTIONS}
-          -D b_sanitize=none
-          -D cpp_debugstl=false
       - ARCH: amd64
         CC: clang
         CXX: clang++
@@ -197,16 +189,6 @@  build-full:debian:12:
           ${MESON_ALL_OPTIONS}
           ${MESON_CLANG_LIBCPP_OPTIONS}
           -D qcam=disabled
-      - ARCH: amd64
-        BUILD_TYPE: release
-        CC: clang
-        CXX: clang++
-        MESON_OPTIONS: >-
-          ${MESON_ALL_OPTIONS}
-          ${MESON_CLANG_LIBCPP_OPTIONS}
-          -D b_sanitize=none
-          -D cpp_debugstl=false
-          -D qcam=disabled
 
 build-full:debian:13:
   extends:
@@ -231,6 +213,14 @@  build-full:debian:13:
           ${MESON_ALL_OPTIONS}
           -D documentation=enabled
           -D doc_werror=true
+      - ARCH: amd64
+        BUILD_TYPE: release
+        CC: gcc-14
+        CXX: g++-14
+        MESON_OPTIONS: >-
+          ${MESON_ALL_OPTIONS}
+          -D b_sanitize=none
+          -D cpp_debugstl=false
       - ARCH: amd64
         CC: clang
         CXX: clang++
@@ -239,6 +229,15 @@  build-full:debian:13:
           # with clang 18 or later due to https://github.com/mesonbuild/meson/issues/13812
           - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBCPP_OPTIONS} -D qcam=disabled -D cpp_debugstl=false
           - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBSTDCPP_OPTIONS}
+      - ARCH: amd64
+        BUILD_TYPE: release
+        CC: clang
+        CXX: clang++
+        MESON_OPTIONS: >-
+          ${MESON_ALL_OPTIONS}
+          ${MESON_CLANG_LIBSTDCPP_OPTIONS}
+          -D b_sanitize=none
+          -D cpp_debugstl=false
       - ARCH: armhf
       - ARCH: arm64