diff mbox series

[RESEND,3/3] .travis.yml: Test building with Xcode 11.3

Message ID 20200218142018.7224-4-philmd@redhat.com
State New
Headers show
Series travis-ci: Improve OSX coverage | expand

Commit Message

Philippe Mathieu-Daudé Feb. 18, 2020, 2:20 p.m. UTC
We currently run a CI job on macOS Mojave with Xcode 10.

QEMU policy is to support the two last major OS releases.
Add a job building on macOS Catalina, which comes with Xcode 11.

Split the target list in two, as we don't need to cover twice the
same targets.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 .travis.yml | 36 +++++++++++++++++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

Comments

Alex Bennée Feb. 25, 2020, 12:29 p.m. UTC | #1
Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> We currently run a CI job on macOS Mojave with Xcode 10.
>
> QEMU policy is to support the two last major OS releases.
> Add a job building on macOS Catalina, which comes with Xcode 11.
>
> Split the target list in two, as we don't need to cover twice the
> same targets.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  .travis.yml | 36 +++++++++++++++++++++++++++++++++++-
>  1 file changed, 35 insertions(+), 1 deletion(-)
>
> diff --git a/.travis.yml b/.travis.yml
> index a2a7fd0dd1..d02a477623 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -269,9 +269,10 @@ matrix:
>  
>      # MacOSX builds - cirrus.yml also tests some MacOS builds including latest Xcode
>  
> +    # On macOS Mojave, the SDK comes bundled with Xcode 10.
>      - name: "OSX Xcode 10.3"
>        env:
> -        - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
> +        - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
>        os: osx
>        osx_image: xcode10.3
>        compiler: clang
> @@ -301,6 +302,39 @@ matrix:
>          - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
>  
>  
> +    # On macOS Catalina, the SDK comes bundled with Xcode 11.
> +    - name: "OSX Xcode 11.3"
> +      env:
> +        - CONFIG="--target-list=arm-softmmu,ppc64-softmmu,x86_64-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
> +      os: osx
> +      osx_image: xcode11.3

Are we duplicating what the latest Xcode on Cirrus is here?
Philippe Mathieu-Daudé April 9, 2020, 5:44 p.m. UTC | #2
On 2/25/20 1:29 PM, Alex Bennée wrote:
> 
> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> 
>> We currently run a CI job on macOS Mojave with Xcode 10.
>>
>> QEMU policy is to support the two last major OS releases.
>> Add a job building on macOS Catalina, which comes with Xcode 11.
>>
>> Split the target list in two, as we don't need to cover twice the
>> same targets.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>> ---
>>   .travis.yml | 36 +++++++++++++++++++++++++++++++++++-
>>   1 file changed, 35 insertions(+), 1 deletion(-)
>>
>> diff --git a/.travis.yml b/.travis.yml
>> index a2a7fd0dd1..d02a477623 100644
>> --- a/.travis.yml
>> +++ b/.travis.yml
>> @@ -269,9 +269,10 @@ matrix:
>>   
>>       # MacOSX builds - cirrus.yml also tests some MacOS builds including latest Xcode
>>   
>> +    # On macOS Mojave, the SDK comes bundled with Xcode 10.
>>       - name: "OSX Xcode 10.3"
>>         env:
>> -        - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
>> +        - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
>>         os: osx
>>         osx_image: xcode10.3
>>         compiler: clang
>> @@ -301,6 +302,39 @@ matrix:
>>           - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
>>   
>>   
>> +    # On macOS Catalina, the SDK comes bundled with Xcode 11.
>> +    - name: "OSX Xcode 11.3"
>> +      env:
>> +        - CONFIG="--target-list=arm-softmmu,ppc64-softmmu,x86_64-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
>> +      os: osx
>> +      osx_image: xcode11.3
> 
> Are we duplicating what the latest Xcode on Cirrus is here?

Maybe, I'm not sure. It seems only few people care about 
Cirrus/Shippable but they are not taken seriously by the community, as 
they are often broken and nobody is notified. Currently Travis has a 
broader audience.

Also I sent a series to fix various things that break on Cirrus from 
time to time but I felt there is not many interest so I stopped spending 
energy on it:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg675074.html

We could change that by refusing to merge pullreq that break such CI.
Daniel P. Berrangé April 9, 2020, 5:54 p.m. UTC | #3
On Thu, Apr 09, 2020 at 07:44:46PM +0200, Philippe Mathieu-Daudé wrote:
> On 2/25/20 1:29 PM, Alex Bennée wrote:
> > 
> > Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> > 
> > > We currently run a CI job on macOS Mojave with Xcode 10.
> > > 
> > > QEMU policy is to support the two last major OS releases.
> > > Add a job building on macOS Catalina, which comes with Xcode 11.
> > > 
> > > Split the target list in two, as we don't need to cover twice the
> > > same targets.
> > > 
> > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> > > ---
> > >   .travis.yml | 36 +++++++++++++++++++++++++++++++++++-
> > >   1 file changed, 35 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/.travis.yml b/.travis.yml
> > > index a2a7fd0dd1..d02a477623 100644
> > > --- a/.travis.yml
> > > +++ b/.travis.yml
> > > @@ -269,9 +269,10 @@ matrix:
> > >       # MacOSX builds - cirrus.yml also tests some MacOS builds including latest Xcode
> > > +    # On macOS Mojave, the SDK comes bundled with Xcode 10.
> > >       - name: "OSX Xcode 10.3"
> > >         env:
> > > -        - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
> > > +        - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
> > >         os: osx
> > >         osx_image: xcode10.3
> > >         compiler: clang
> > > @@ -301,6 +302,39 @@ matrix:
> > >           - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
> > > +    # On macOS Catalina, the SDK comes bundled with Xcode 11.
> > > +    - name: "OSX Xcode 11.3"
> > > +      env:
> > > +        - CONFIG="--target-list=arm-softmmu,ppc64-softmmu,x86_64-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
> > > +      os: osx
> > > +      osx_image: xcode11.3
> > 
> > Are we duplicating what the latest Xcode on Cirrus is here?
> 
> Maybe, I'm not sure. It seems only few people care about Cirrus/Shippable
> but they are not taken seriously by the community, as they are often broken
> and nobody is notified. Currently Travis has a broader audience.
> 
> Also I sent a series to fix various things that break on Cirrus from time to
> time but I felt there is not many interest so I stopped spending energy on
> it:
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg675074.html
> 
> We could change that by refusing to merge pullreq that break such CI.

IMHO less is more. IOW, we should use/support the fewest  possible CI
systems required to get the coverage we want.  If we can get all macOS
coverage on Travis, I'd remove it from Cirrus, or vica-verca. The fewer
places we have to look at the more likely we'll pay attention to it
when it breaks.

Regards,
Daniel
diff mbox series

Patch

diff --git a/.travis.yml b/.travis.yml
index a2a7fd0dd1..d02a477623 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -269,9 +269,10 @@  matrix:
 
     # MacOSX builds - cirrus.yml also tests some MacOS builds including latest Xcode
 
+    # On macOS Mojave, the SDK comes bundled with Xcode 10.
     - name: "OSX Xcode 10.3"
       env:
-        - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
+        - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
       os: osx
       osx_image: xcode10.3
       compiler: clang
@@ -301,6 +302,39 @@  matrix:
         - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
 
 
+    # On macOS Catalina, the SDK comes bundled with Xcode 11.
+    - name: "OSX Xcode 11.3"
+      env:
+        - CONFIG="--target-list=arm-softmmu,ppc64-softmmu,x86_64-softmmu --extra-cflags=-I/usr/local/opt/ncurses/include --extra-ldflags=-L/usr/local/opt/ncurses/lib"
+      os: osx
+      osx_image: xcode11.3
+      compiler: clang
+      addons:
+        homebrew:
+          packages:
+            - ccache
+            - libgcrypt
+            - libiscsi
+            - libssh2
+            - libusb
+            - lzfse
+            - lzo
+            - gettext
+            - glib
+            - gnu-sed
+            - ncurses
+            - pixman
+            - python
+            - snappy
+            - vde
+          update: true
+      before_script:
+        - brew link --overwrite python
+        - export PATH="/usr/local/opt/ccache/libexec:$PATH"
+        - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
+        - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
+
+
     # Python builds
     - name: "GCC Python 3.5 (x86_64-softmmu)"
       env: