Ah, thanks. I made a wrong assumption about how it works. So I can get it to fail faster by running "stuart_ci_build -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5 -t NO-TARGET" - i.e. running NO-TARGET without also running DEBUG,RELEASE,NOOPT too.

It turns out that because of the repo I'm running it against, where I haven't kept `master` up-to-date, it thinks almost all the files have changed - and so it runs Ecc against code that hasn't really changed for a long time.

"INFO - Cmd to run is: git diff --name-status HEAD origin/master"


So, now I've updated my repo's `master`, it both runs much faster, and succeeds.

A weekly build which runs Ecc over all the code and compiles a report of issues might be nice.


--
Rebecca Cran


On 9/30/20 5:59 PM, Sean Brogan wrote:
Not sure i follow your first question but running without a "-t" specified at the command line and "-t NO-TARGET" is two different things.  For edk2 ci you can see the CISettings.py file defines targets supported as a tuple of all 4 ("DEBUG", "RELEASE", "NO-TARGET", "NOOPT").
https://github.com/tianocore/edk2/blob/master/.pytool/CISettings.py#L72

and you can see that if the cli parameter for target is empty then the value is assigned to whatever is declared as supported. https://github.com/tianocore/edk2-pytool-extensions/blob/master/edk2toolext/invocables/edk2_multipkg_aware_invocable.py#L121

By creating a specific target "NO-TARGET" we could easily enable/disable their execution and thus we could control it in the matrix on the CI servers.  Example here: https://github.com/tianocore/edk2/blob/master/.azurepipelines/templates/pr-gate-build-job.yml#L32


Most of the static code tests run for NO-TARGET.  ECC is such a test so it only runs when NO-TARGET is run.

Finally please be aware EccCheck runs git commands and can change your local workspace.  This was something i recently learned and should probably be revisited as it means running it locally can be destructive to changes you don't yet have committed.

Hope that helps.

Thanks
Sean







On 9/30/2020 2:59 PM, Rebecca Cran wrote:
Is it expected that the EDK2 CI run without errors in NO-TARGET mode - that is, when "-t" isn't specified?

When I run it locally with "stuart_ci_build -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5 -a X64,AARCH64" I get lots of errors: one in ArmVirtPkg/PrePi/PrePi.c about a missing comment above a function, and then loads in DynamicTablesPkg - e.g.:

PROGRESS - --Running ArmVirtPkg: EccCheck Test NO-TARGET --

ERROR -
ERROR - EFI coding style error
ERROR - *Error code: 8003
ERROR - *The #ifndef at the start of an include file should use both prefix and postfix underscore characters, '_'
ERROR - *file: .../edk2/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h
ERROR - *Line number: 41
ERROR - *The #ifndef name [AML_HANDLE] does not follow the rules
ERROR -


When I specify "-t DEBUG,RELEASE,NOOPT" it completes successfully.




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#65776): https://edk2.groups.io/g/devel/message/65776
Mute This Topic: https://groups.io/mt/77232387/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to