Re: running CI locally


Laszlo Ersek
 

Hi Mike, Sean;

On 08/19/20 19:59, Laszlo Ersek wrote:

I'll report back with more results.
I installed a Fedora 32 Server VM.

Installed the "mono-complete" package (+its deps).

Installed the "nodejs" package.

Installed "cspell" (+deps) with "npm" (with the latter coming from the
nodejs package).

Edk2 checked out at current HEAD
(5a6d764e1d073d28e8f398289ccb5592bf9a72ba).


* Platform CI results:

- <https://github.com/tianocore/edk2/tree/master/OvmfPkg/PlatformCI>:

Built successfully for IA32, X64, and IA32X64 (toolchain: GCC5).

- <https://github.com/tianocore/edk2/tree/master/ArmVirtPkg/PlatformCI>:

Built successfully for ARM and AARCH64 (toolchain: GCC5).


* Core CI results:

- <https://github.com/tianocore/edk2/blob/master/.pytool/Readme.md>

Complete run successful (toolchain: GCC5); no package / arch / target
/ test restrictions.

I got the following WARNINGs:

- ArmVirtPkg, EmulatorPkg, and OvmfPkg are covered by Platform CI, not
Core CI -- these are expected:

PROGRESS - --Running ArmVirtPkg: Compiler Plugin DEBUG --
WARNING - --->Test Skipped: in plugin! Compiler Plugin DEBUG
PROGRESS - --Running ArmVirtPkg: Compiler Plugin RELEASE --
WARNING - --->Test Skipped: in plugin! Compiler Plugin RELEASE
PROGRESS - --Running EmulatorPkg: Compiler Plugin DEBUG --
WARNING - --->Test Skipped: in plugin! Compiler Plugin DEBUG
PROGRESS - --Running EmulatorPkg: Compiler Plugin RELEASE --
WARNING - --->Test Skipped: in plugin! Compiler Plugin RELEASE
PROGRESS - --Running OvmfPkg: Compiler Plugin DEBUG --
WARNING - --->Test Skipped: in plugin! Compiler Plugin DEBUG
PROGRESS - --Running OvmfPkg: Compiler Plugin RELEASE --
WARNING - --->Test Skipped: in plugin! Compiler Plugin RELEASE
- ArmVirtPkg, DynamicTablesPkg, CryptoPkg, EmulatorPkg, FatPkg,
NetworkPkg, OvmfPkg, PcAtChipsetPkg, SecurityPkg and ShellPkg are
not covered by host-based unit tests -- I think also expected:

PROGRESS - --Running ArmVirtPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT
PROGRESS - --Running DynamicTablesPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT
PROGRESS - --Running CryptoPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT
PROGRESS - --Running EmulatorPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT
PROGRESS - --Running FatPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT
PROGRESS - --Running NetworkPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT
PROGRESS - --Running OvmfPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT
PROGRESS - --Running PcAtChipsetPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT
PROGRESS - --Running SecurityPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT
PROGRESS - --Running ShellPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT
- I'm not really sure about the following warnings. They were emitted
for a subset of the above packages. I read the docs at
<https://github.com/tianocore/edk2/blob/master/.pytool/Readme.md#host-module-inclusion-test---hostunittestdsccompletecheck>
but I still don't understand :)

PROGRESS - --Running CryptoPkg: Host Unit Test Dsc Complete Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Host Unit Test Dsc Complete Check Test NO-TARGET
PROGRESS - --Running FatPkg: Host Unit Test Dsc Complete Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Host Unit Test Dsc Complete Check Test NO-TARGET
PROGRESS - --Running NetworkPkg: Host Unit Test Dsc Complete Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Host Unit Test Dsc Complete Check Test NO-TARGET
PROGRESS - --Running PcAtChipsetPkg: Host Unit Test Dsc Complete Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Host Unit Test Dsc Complete Check Test NO-TARGET
PROGRESS - --Running SecurityPkg: Host Unit Test Dsc Complete Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Host Unit Test Dsc Complete Check Test NO-TARGET
PROGRESS - --Running ShellPkg: Host Unit Test Dsc Complete Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Host Unit Test Dsc Complete Check Test NO-TARGET
- Still related to host-based unit tests, I believe the following
warnings, for FmpDevicePkg, MdeModulePkg, MdePkg, UefiCpuPkg, and
UnitTestFrameworkPkg, report that running the tests on the build
host (understandably) prevents the tests from covering all edk2
architectures:

PROGRESS - --Running FmpDevicePkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - Allowing Override for key TARGET_ARCH
PROGRESS - --Running MdeModulePkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - Allowing Override for key TARGET_ARCH
PROGRESS - --Running MdePkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - Allowing Override for key TARGET_ARCH
PROGRESS - --Running UefiCpuPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - Allowing Override for key TARGET_ARCH
PROGRESS - --Running UnitTestFrameworkPkg: Host Unit Test Compiler Plugin NOOPT --
WARNING - Allowing Override for key TARGET_ARCH
- The below seems to be related to the "spell checking in audit
mode" known issues at
<https://github.com/tianocore/edk2/blob/master/.pytool/Readme.md>.

What does "audit mode" mean?

FWIW, the packages listed below (EmulatorPkg, MdeModulePkg,
MdePkg, NetworkPkg, OvmfPkg, ShellPkg, UefiCpuPkg) is a proper
subset of the packges noted in ".pytool/Readme.md" -- the latter
mentions CryptoPkg and SecurityPkg in addition.

PROGRESS - --Running EmulatorPkg: Spell Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Spell Check Test NO-TARGET
PROGRESS - --Running MdeModulePkg: Spell Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Spell Check Test NO-TARGET
PROGRESS - --Running MdePkg: Spell Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Spell Check Test NO-TARGET
PROGRESS - --Running NetworkPkg: Spell Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Spell Check Test NO-TARGET
PROGRESS - --Running OvmfPkg: Spell Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Spell Check Test NO-TARGET
PROGRESS - --Running ShellPkg: Spell Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Spell Check Test NO-TARGET
PROGRESS - --Running UefiCpuPkg: Spell Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Spell Check Test NO-TARGET
- Not sure about the last one:

PROGRESS - --Running FatPkg: Library Class Check Test NO-TARGET --
WARNING - --->Test Skipped: in plugin! Library Class Check Test NO-TARGET

* One suggestion (in addition to the others made in this thread):

- Please add "BaseToolsBuild" to "BaseTools/.gitignore".


* A question:

- On github, there is some logic that restricts the full Core CI build
to packages that may be affected by a patch series. Is this available
locally?

According to the Core CI documentation, the "stuart_ci_build" command
can be limited with "-p" / "-a" / "-t" flags; given a commit range,
how do we calculate the "tightest" flag values?

Thank you very much!
Laszlo

Join {devel@edk2.groups.io to automatically receive all group messages.