From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: Re: [edk2-devel] [RFC] EDK II Continuous Integration Phase 1 To: Laszlo Ersek ,devel@edk2.groups.io From: "Sean" X-Originating-Location: Leander, Texas, US (12.252.7.226) X-Originating-Platform: Windows Chrome 78 User-Agent: GROUPS.IO Web Poster MIME-Version: 1.0 Date: Fri, 13 Sep 2019 14:00:59 -0700 References: <993588d5-b755-9d72-ec2b-7eb1ad6b6a7e@redhat.com> In-Reply-To: <993588d5-b755-9d72-ec2b-7eb1ad6b6a7e@redhat.com> Message-ID: <10937.1568408459627289047@groups.io> Content-Type: multipart/alternative; boundary="flcFdrleJKInCFxIoSIS" --flcFdrleJKInCFxIoSIS Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable These tests require using the "edk2-pytool" stuff but are easy to integrate= with the github PR or CI flow.=C2=A0 Example of it running the code compli= ance tests is here: https://dev.azure.com/tianocore/edk2-ci-play/_build?def= initionId=3D13&_a=3Dsummary A test run takes about 3 minutes. The past week or so we also have been working on a more complete test run = which adds to the above test suite three more tests.=C2=A0 Compile each pac= kage for Debug, Release, and Host Based Unit tests.=C2=A0 Obviously this ad= ds more time and takes more resources but at the moment we have it down to = 13 minutes. You can see it here: https://dev.azure.com/tianocore/edk2-ci-pl= ay/_build?definitionId=3D12&_a=3Dsummary To enable this framework you need the following. 1. pip install a couple of edk2-pytool packages (see requirements.txt file= ) 2. Add the pytool based plugins to the edk2 code tree=C2=A0 See here: http= s://github.com/spbrogan/edk2-staging/tree/edk2-stuart-ci-latest/BaseTools/P= lugin/Ci 3. Add a CiSettings.py file that satisfies the setup, update, and ci_build= = =C2=A0 See here: https://github.com/spbrogan/edk2-staging/blob/edk2-stuart= -ci-latest/CISettings.py 4. Add a *.ci.yaml file to each package to configure test settings, ignore= files, and other configuration for testing the package.=C2=A0 Example here= : https://github.com/spbrogan/edk2-staging/blob/edk2-stuart-ci-latest/MdeMo= dulePkg/MdeModulePkg.ci.yaml 5.=C2=A0 For Azure pipeline support (cloud based CI) you will need to add = Azure pipeline.yaml flles. This can all be seen in the branch here. https://github.com/spbrogan/edk2-= staging/tree/edk2-stuart-ci-latest Be aware that in that same branch we are enabling "Host based unit tests" = which also requires more code changes so if diffing with clean edk2 you can= ignore those (although that is all part of another RFC for unit test so an= y feedback on that would be great too). Feedback would be appreciated.=C2=A0 I am hoping this RFC can move forward= in the next few weeks. Thanks Sean --flcFdrleJKInCFxIoSIS Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable These tests require using the "edk2-pytool" stuff but are easy to integrate= with the github PR or CI flow.  Example of it running the code compli= ance tests is here: https://dev.azure.com/tian= ocore/edk2-ci-play/_build?definitionId=3D13&_a=3Dsummary A tes= t run takes about 3 minutes.  

The past week or so we = also have been working on a more complete test run which adds to the above = test suite three more tests.  Compile each package for Debug, Release,= and Host Based Unit tests.  Obviously this adds more time and takes m= ore resources but at the moment we have it down to 13 minutes. You can see = it here: https://dev.azure.com/tianocore/edk2-= ci-play/_build?definitionId=3D12&_a=3Dsummary 

To e= nable this framework you need the following. 

1. pip instal= l a couple of edk2-pytool packages (see requirements.txt file)
2. Add = the pytool based plugins to the edk2 code tree  See here: https://github.com/spbrogan/edk2-staging/tree/edk2-stuar= t-ci-latest/BaseTools/Plugin/Ci
3. Add a CiSettings.py file that s= atisfies the setup, update, and ci_build  See here: https://github.com/spbrogan/edk2-staging/blob/edk2-stuart-ci-latest/C= ISettings.py
4. Add a *.ci.yaml file to each package to configure = test settings, ignore files, and other configuration for testing the packag= e.  Example here: https://= github.com/spbrogan/edk2-staging/blob/edk2-stuart-ci-latest/MdeModulePkg/Md= eModulePkg.ci.yaml
5.  For Azure pipeline support (cloud base= d CI) you will need to add Azure pipeline.yaml flles.  

This can all be seen in the branch here.  https://github.c= om/spbrogan/edk2-staging/tree/edk2-stuart-ci-latest
Be aware that = in that same branch we are enabling "Host based unit tests" which also requ= ires more code changes so if diffing with clean edk2 you can ignore those (= although that is all part of another RFC for unit test so any feedback on t= hat would be great too).

Feedback would be appreciated.  I = am hoping this RFC can move forward in the next few weeks.  

Thanks
Sean



  --flcFdrleJKInCFxIoSIS--