Hi David, I am sorry to reply this late. Yes, if travis support this configuration, it should be a good solution for me.
Best regards, Wei Yanqin -----Original Message----- From: dwilder <[email protected]> Sent: Wednesday, November 6, 2019 4:32 AM To: Yanqin Wei (Arm Technology China) <[email protected]> Cc: Ilya Maximets <[email protected]>; [email protected]; [email protected]; nd <[email protected]> Subject: Re: RE: RE: [ovs-dev] [PATCH ] travis: support ppc64le builds Hi Wei If I change my matrix:include to use "arch: ppc64le" rather than "os: linux-ppc64le", will it eliminate your concern? matrix: include: - - os: linux-ppc64le + - arch: ppc64le compiler: gcc env: OPTS="--disable-ssl" Later when we want to enable the full matrix on all arch we would add: 1) arch: - amd64 - ppc64le - arm64 2) eliminate the include: -arch: ppc64le 3) Add any exclude: - arch:XXX sections for any tests that dont apply. For example I would add: exclude: - arch: ppc64le env: M32=1 OPTS="--disable-ssl" Regards, David On 2019-11-02 02:09, Yanqin Wei (Arm Technology China) wrote: > Hi David, > > Thanks for your reply. Yes, my concern is how to define arch and os > in .travis.yml after we cover all builds and cases for arm and ppc. > This pattern can enable all builds and testsuits for x86 and arm > arch: > - amd64 > - arm64 > os: > - linux > > This can enable all jobs for x86 and ppc. > arch: > - amd64 //default > os: > - linux > - linux-ppc64le > > But it does not work to combine them. This means four kinds of > arch+os combinations in all. Arm64+linux-ppc64le is invalid. > arch: > - amd64 > - arm64 > os: > - linux > - linux-ppc64le > > So if we finally cover all the builds and cases for arm/ppc, we have > to duplicate all jobs for different cpu arch in the matrix include. > matrix: > include: > - os: linux-ppc64le > env: job1 > - os: linux-ppc64le > env: job2 > ... > - arch: arm64 > env: job1 > - arch: arm64 > env: job2 > ... > > But currently either arm or ppc has not cover all the cases, so they > can coexist in build-matrix. And there is no conflict in > build/prepare scripts, because both of them use TRAVIS_ARCH variable > to indicate cpu arch. > The patch series to enable arm CI is under internal review. It will be > submitted when ready. > > Best Regards, > Wei Yanqin > > > -----Original Message----- > From: dwilder <[email protected]> > Sent: Saturday, November 2, 2019 1:09 AM > To: Yanqin Wei (Arm Technology China) <[email protected]> > Cc: Ilya Maximets <[email protected]>; [email protected]; > [email protected]; nd <[email protected]> > Subject: Re: RE: [ovs-dev] [PATCH ] travis: support ppc64le builds > > On 2019-10-30 19:04, Yanqin Wei (Arm Technology China) wrote: >> Hi, >> >> We are working to support arm64 build for ovs travis CI. It is indeed >> to use arch: arm64 to choose cpu architecture, because travis has >> provided native arm64 option now. >> But in this patch it seems ppc64 builds run on the ppc-VM + x86 >> native machine. >> Currently arm only select a part of jobs to run, which is defined in >> matrix:include. But the final object is to run all jobs. It means >> that >> arch: arm64 will be moved out of marix. If ppc plans to do the same >> in the future, it will conflict with arm jobs. >> >> Best Regards, >> Wei Yanqin > > Hi, > I have added a build only test for ppc64le following the model used > for osx. I think this is a good start for getting multi-arch support > into Ci. > > I agree that running all jobs on the matrix on every arch is good goal. > I dont completely understand your issue, is your concern the use of os: > vs arch: ? > > I am glad to work with you to find a solution. Can you share your > arm64 changes? We can discuss off-list if you prefer. > > >> >> -----Original Message----- >> From: [email protected] >> <[email protected]> On Behalf Of dwilder >> Sent: Wednesday, October 30, 2019 1:55 AM >> To: Ilya Maximets <[email protected]> >> Cc: [email protected]; [email protected] >> Subject: Re: [ovs-dev] [PATCH ] travis: support ppc64le builds >> >> On 2019-10-29 09:52, Ilya Maximets wrote: >>> On 28.10.2019 22:22, David Wilder wrote: >>>> Add support for travis-ci ppc64le builds. >>>> >>>> - Updated matrix in .travis.yml to include a ppc64le build. >>>> - Added support to install packages needed by specific >>>> architectures. >>>> >>>> To keep the total build time at an acceptable level only a single >>>> build job is included in the matrix for ppc64le. >>>> >>>> A build report example can be found here [1] [0] >>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org >>>> _& >>>> d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbe >>>> Ay >>>> z8i_vwCCaI&m=6JANehIfGoxUMtwHhe4yob4UPeby0Y8ovgzRDIyJZFo&s=UMYL8rzJ >>>> Np h87seC0oJLBiWoe-sUSL80AJy0RMTgBzQ&e= >>>> [1] >>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.or >>>> g_ >>>> djlwilder_ovs_builds_604098141&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r= >>>> 7n >>>> dxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=6JANehIfGoxUMtwHhe4yob4 >>>> UP >>>> eby0Y8ovgzRDIyJZFo&s=pyd2yQpQ0snpwGE5El4RYZsatwl74sthM1KLqtIKCnY&e= >>>> Signed-off-by: David Wilder <[email protected]> >>> >>> Hi David, >>> Thanks for working on this. I have a couple of question regarding >>> ppc64le support by TravisCI. It seems that they are not supporting >>> this architecture officially and refusing[1] to solve any issues >>> that appears while using it. There also no official documentation. >>> It's kind of a hidden feature that some projects are using for their >>> own risk [2]. Do you know why this happens or maybe you have some >>> insights about what is going on/how it works? >> >> Work is going on to increase ppc64le support on Travis by the end of >> the year. I dont have any details yet. My plan is to keep this to >> build-only ci until then. Important, ppc64le VM are only available >> on travis-ci.org, they are not available on travis-ci.com. >> >>> The API is also a bit strange because Travis started to officially >>> support arm builds, but this is done via 'arch' knob, not the 'os'. >>> Will it be changed over time for ppc64le? >>> >> >> Sorry, I dont know. >> >>> [1] >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.com >>> mu >>> nity_t_ppc64le-2Darch-2Dsupport-2Don-2Dtravis-2Dci-2Dcom-2Dvs-2Dtrav >>> is >>> -2Dci-2Dorg_2898_2&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD >>> 68 >>> Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=6JANehIfGoxUMtwHhe4yob4UPeby0Y8ovgzRD >>> Iy JZFo&s=TrXdSxjvnbbVQz7EzR5r0aE93lZMSdCiIUQT2wt8E3I&e= >>> [2] >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_open >>> ss >>> l_openssl_commit_13da3ad00c80e1da816ca27f6c15b0ecee1bb0b8&d=DwICaQ&c >>> =j >>> f_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI& >>> m= >>> 6JANehIfGoxUMtwHhe4yob4UPeby0Y8ovgzRDIyJZFo&s=RWVuli-BT8E2IsW3rAA9Mt >>> qC >>> VPZahNk8k7yqxEbgTT4&e= >>> >>> Few code comments inline. >>> >>>> --- >>>> .travis.yml | 5 +++-- >>>> .travis/linux-prepare.sh | 18 ++++++++++++++---- >>>> 2 files changed, 17 insertions(+), 6 deletions(-) >>>> >>>> diff --git a/.travis.yml b/.travis.yml index 5676d9748..c99f26815 >>>> 100644 >>>> --- a/.travis.yml >>>> +++ b/.travis.yml >>>> @@ -14,7 +14,6 @@ addons: >>>> apt: >>>> packages: >>>> - bc >>>> - - gcc-multilib >>>> - libssl-dev >>>> - llvm-dev >>>> - libjemalloc1 >>>> @@ -24,7 +23,6 @@ addons: >>>> - libelf-dev >>>> - selinux-policy-dev >>>> - libunbound-dev >>>> - - libunbound-dev:i386 >>>> - libunwind-dev >>>> before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh >>>> @@ -50,6 +48,9 @@ matrix: >>>> - os: osx >>>> compiler: clang >>>> env: OPTS="--disable-ssl" >>>> + - os: linux-ppc64le >>>> + compiler: gcc >>>> + env: OPTS="--disable-ssl" >>>> script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS >>>> diff --git a/.travis/linux-prepare.sh b/.travis/linux-prepare.sh >>>> index e546d32cb..f3a9a6d44 100755 >>>> --- a/.travis/linux-prepare.sh >>>> +++ b/.travis/linux-prepare.sh >>>> @@ -15,8 +15,18 @@ cd .. >>>> pip install --disable-pip-version-check --user six flake8 hacking >>>> pip install --user --upgrade docutils >>>> -if [ "$M32" ]; then >>>> - # 32-bit and 64-bit libunwind can not be installed at the same >>>> time. >>>> - # This will remove the 64-bit libunwind and install 32-bit >>>> version. >>>> - sudo apt-get install -y libunwind-dev:i386 >>>> +# Include packages needed by specific architectures. >>>> +if [ $TRAVIS_ARCH == amd64 ]; then >>>> + sudo apt-get install -y \ >>>> + libunbound-dev:i386 \ >>>> + gcc-multilib >>> >>> These packages are only needed for 32bit build, so you may just move >>> them to the command that installs 32bit version of libunwind. >>> And since you're not building 32bit with ppc64le, the code could >>> look >>> like: >>> >>> if [ "$M32" ]; then >>> # install 32 bit libs >>> fi >>> >>> if [ $TRAVIS_ARCH == ppc64le ]; then >>> # install ppc64le specific things. >>> fi >> >> Agreed. >> >>> >>>> + >>>> + if [ "$M32" ]; then >>>> + # 32-bit and 64-bit libunwind can not be installed at the >>>> + same >>>> time. >>>> + # This will remove the 64-bit libunwind and install 32-bit >>>> version. >>>> + sudo apt-get install -y libunwind-dev:i386 >>>> + fi >>>> + >>>> +elif [ $TRAVIS_ARCH == ppc64le ]; then >>>> + sudo apt-get install -y flex >>> >>> Why 'flex' is needed? >> >> I found that Flex was needed for kernel builds, but since I am not >> doing that yet I can remove it. >> >> Thanks for the review, I will post a V2 patch shortly. >> >>> >>> Best regards, Ilya Maximets. >> _______________________________________________ >> dev mailing list >> [email protected] >> https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch >> .org_mailman_listinfo_ovs-2Ddev&d=DwIFAg&c=jf_iaSHvJObTbx-siA1ZOg&r=7 >> ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=_QMOOwopXhBHpUCeEDvwONjc >> iJxP_WEksZXnZOBIFHM&s=W1XHbP-_Wjy0FfaSXS37Lx5F-tHW0oK9VRLwt5YpMro&e= _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
