From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: Re: [edk2-devel] [PATCH] .azurepipelines: Enable CI for OvmfPkg and EmulatorPkg To: Zhang, Shenglei ,devel@edk2.groups.io From: "Sean" X-Originating-Location: Redmond, Washington, US (50.35.74.15) X-Originating-Platform: Windows Chrome 83 User-Agent: GROUPS.IO Web Poster MIME-Version: 1.0 Date: Fri, 27 Mar 2020 19:29:12 -0700 References: <20200326070418.25824-1-shenglei.zhang@intel.com> In-Reply-To: <20200326070418.25824-1-shenglei.zhang@intel.com> Message-ID: <15209.1585362552937064110@groups.io> Content-Type: multipart/alternative; boundary="Swn8ShmsutfRKdNkwb1F" --Swn8ShmsutfRKdNkwb1F Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable There are two parts of this I think should be discussed. 1. Core-Ci for emulator, ovmf, armvirt packages. a. I think there is some value here for those package maintainers.=C2=A0 T= he core ci does spell checks, char encoding checks, lib class declaration, = etc.=C2=A0 Those seem valuable to help keep the package clean. B. The core ci works on an assumption that the DSC builds every module wit= hin the package and for that I think you would want to create new DSC file = in those packages that included every module in the package and used NULL l= ibs to resolve as many dependencies as possible. That DSC would be only for= Core CI. 2. Platform Ci for emulator, ovmf, armvirt packages. a. I think this is what we want long term.=C2=A0 It would compile the plat= form and ideally do boot testing and checks. b. Platform Ci should scale out to all sorts of platforms (open and closed= src) that want to register for CI and are willing to keep their platform c= urrent. c. Should be a signal into the PR process.=C2=A0 I don't think it should b= lock by policy, but reviewers should use the results to evaluate the impact= of the PR. d. I have setup a branch here with Platform CI. 1. Code changes to enable pytool to build of OVMF and EmulatorPkg. https:/= /github.com/spbrogan/edk2/tree/ci-for-ovmf 2. 4 pipelines here: https://dev.azure.com/tianocore/edk2-ci-play/_build?t= reeState=3DXEVtdWxhdG9yUGtnJFxPVk1G&view=3Dfolders 3. OVMF GCC5: 8 builds.=C2=A0 see the matrix here https://dev.azure.com/ti= anocore/edk2-ci-play/_build/results?buildId=3D4915&view=3Dresults and https= ://github.com/spbrogan/edk2/blob/ci-for-ovmf/.azurepipelines/platforms/Ovmf= /Ubuntu-GCC5.yml#L22.=C2=A0 This worked without issue. 4.=C2=A0 OVMF VS2019: Same 8 builds.=C2=A0 Results here: https://dev.azure= .com/tianocore/edk2-ci-play/_build/results?buildId=3D4916&view=3Dresults an= d matrix file here https://github.com/spbrogan/edk2/blob/ci-for-ovmf/.azure= pipelines/platforms/Ovmf/Windows-VS2019.yml#L22.=C2=A0 The full build fails= 2 of the "flavors".=C2=A0 See https://bugzilla.tianocore.org/show_bug.cgi?= id=3D2636 5. EmulatorPkg GCC: 2 builds. https://dev.azure.com/tianocore/edk2-ci-play= /_build?definitionId=3D39&_a=3Dsummary IA32 fails so it currently only buil= ds X64 6. EmulatorPkg VS2019: 2 builds https://dev.azure.com/tianocore/edk2-ci-pl= ay/_build?definitionId=3D40&_a=3Dsummary IA32 fails so it currently only bu= ilds X64. Feedback wanted.=C2=A0 =C2=A0Happy to add more if there is some agreement = that you like this direction. Also if you have ideas how to run the images and then exit from the shell = with a status so we can tell success/failure that would be great. Thanks Sean --Swn8ShmsutfRKdNkwb1F Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable There are two parts of this I think should be discussed. 
1. Core= -Ci for emulator, ovmf, armvirt packages. 
  a. I think the= re is some value here for those package maintainers.  The core ci does= spell checks, char encoding checks, lib class declaration, etc.  Thos= e seem valuable to help keep the package clean.    
&nb= sp; B. The core ci works on an assumption that the DSC builds every module = within the package and for that I think you would want to create new DSC fi= le in those packages that included every module in the package and used NUL= L libs to resolve as many dependencies as possible. That DSC would be only = for Core CI.  

2. Platform Ci for emulator, ovmf, armv= irt packages. 
  a. I think this is what we want long term.&= nbsp; It would compile the platform and ideally do boot testing and checks.=   
  b. Platform Ci should scale out to all sorts of pl= atforms (open and closed src) that want to register for CI and are willing = to keep their platform current. 
  c. Should be a signal int= o the PR process.  I don't think it should block by policy, but review= ers should use the results to evaluate the impact of the PR. 
&nb= sp; d. I have setup a branch here with Platform CI.
    &nbs= p;  1. Code changes to enable pytool to build of OVMF and EmulatorPkg.=   h= ttps://github.com/spbrogan/edk2/tree/ci-for-ovmf
    &nb= sp;  2. 4 pipelines here: https://dev.azure.com/tianocore/ed= k2-ci-play/_build?treeState=3DXEVtdWxhdG9yUGtnJFxPVk1G&view=3Dfolders
       3. OVMF GCC5: 8 builds.  see the ma= trix here 
https://dev.azure.com/tianocore/edk2-ci-play/_build/results?buildId= =3D4915&view=3Dresults and https://github.com/spbrogan/edk2/blob/ci-for-ovmf/.azurepipelines/= platforms/Ovmf/Ubuntu-GCC5.yml#L22 .  This worked without iss= ue.
      4.  OVMF VS2019: Same 8 builds.  Re= sults here: https://dev.azure.com/tianocore/edk2-ci-play/_build/results?buildId= = =3D4916&view=3Dresults and matrix file here https://github.com/spbrogan/edk2/blob/ci-for-o= vmf/.azurepipelines/platforms/Ovmf/Windows-VS2019.yml#L22 .  = The full build fails 2 of the "flavors".  See https://bugzilla.tianocore.o= rg/show_bug.cgi?id=3D2636
      5. EmulatorPkg GCC:= 2 builds.  https://dev.azure.com/tianocore/edk2-ci-play/_build?definitionId=3D39= &_a=3Dsummary  IA32 fails so it currently only builds X64
      6. EmulatorPkg VS2019: 2 builds  https://dev.azure.com/tian= ocore/edk2-ci-play/_build?definitionId=3D40&_a=3Dsummary  IA32= fails so it currently only builds X64.  

Feedback wan= ted.   Happy to add more if there is some agreement that you like= this direction.  

Also if you have ideas how to run t= he images and then exit from the shell with a status so we can tell success= /failure that would be great.  

Thanks
Sean
--Swn8ShmsutfRKdNkwb1F--