From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (NAM11-BN8-obe.outbound.protection.outlook.com [40.92.20.69]) by mx.groups.io with SMTP id smtpd.web11.91788.1597854166205453522 for ; Wed, 19 Aug 2020 09:22:47 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@outlook.com header.s=selector1 header.b=GCNnr6k6; spf=pass (domain: outlook.com, ip: 40.92.20.69, mailfrom: spbrogan@outlook.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=afyo3KzfhfAHioQr2mhptAiEmM0mpW6KgyuDOxJ9DcNQ+6z+WI14Z1Dr7mRMB42kaXGxgX1xD8D9vfE6lGNZrPTzC+YvLZHO+6Va+b5fVDW2WmYj4mXHWmms/yQ4BLQQfoGgx+nSleusBUOYUmx9ZHbLhWl3MtLaHVU5wtMqn6NtKUpTymrtl1FUL72pUgx2iaiUUebbqnetujmOFwuGeXkJavnTpZg0CtS9nw2FE0eigaAE8tKO0b/A5o32MpOZALF0rtuGuv8HUed1h6AIEabAjoWhndGxX2m1S5iE9oxxHoe30KxlfwUMY7da9TTn6lkBmraME1XK3ImFdeeWGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OG9brkZzMVIEZ+Kjk9jhvyBjlJeTWhprbQh2UnEUHj0=; b=oFhvagyWvXwmeZCg22Cu89jTAXRI3/jhsUed4mwnl2yqt080yw1lZ0IJYCjBtUVaPbiNbIKA1j9o5piMHlGzvbHqrWw0dLcQxRihtCA89JfKpXn3N5dmCpVJwi1TGSHL1cxXPD5fIOdRBR9xMyz4QBDL4ApGnn3ZG7iioYj2Kf1HJsZPmS1h8l48GMdcUGqYMoTBSuNXEa0/40Rk6fM18kFLK4UxI/453iTfl1d6xHXzHoV6OnUFAvlscW0r0Tl1sLHMZ9MuiVjQvkXBPA9xST7Zsfjc+DYdgsmQH8P1QRlTGA3+rptKkp1+NIeXpCmEfqP2mS4eDvuok4l0Cn/n1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OG9brkZzMVIEZ+Kjk9jhvyBjlJeTWhprbQh2UnEUHj0=; b=GCNnr6k65p06VxmBTeaums8F6+DUoQhBdADkPCWom6kwntJXaWJTC1yxUVKVPe9XvYe7RZOohWVj93HIyI1xFL6PhN0BCMmxH39k0o2o1QnvslXLjkAKHgtm2Z5daIoeyK7Nzg+jrwud6BBo2GoyUkUapz+fWSoKfYc8Pf6tUtp1QPe4grwrJaxWM5ej3qOFoqvLAUeQNtwHI4KM8HNp+wgy1zlkPCRDFalLkNjvrjy9qPtqmBJ3aAJDG2x9X2tchJIYgZL/gykdAmVTmniHuWM/WXdfOysOJ11DER+v04p/5IgVwhzAodBI0+ySyeFm8qGDFKVcuX8VAoWdy54VTA== Received: from BN8NAM11FT031.eop-nam11.prod.protection.outlook.com (2a01:111:e400:fc4b::43) by BN8NAM11HT157.eop-nam11.prod.protection.outlook.com (2a01:111:e400:fc4b::469) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.24; Wed, 19 Aug 2020 16:22:44 +0000 Received: from BN8PR07MB6962.namprd07.prod.outlook.com (2a01:111:e400:fc4b::49) by BN8NAM11FT031.mail.protection.outlook.com (2a01:111:e400:fc4b::281) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.24 via Frontend Transport; Wed, 19 Aug 2020 16:22:44 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:97BDA1733F511A0C9A744BCB7B394FA76E4B8AEE6FB52284E8E7307DFA311FAA;UpperCasedChecksum:0DE69EF2AE3C8BC99D01ED074C0384EFBB6FCAA2A75264AE7973CA286ADAE073;SizeAsReceived:9088;Count:49 Received: from BN8PR07MB6962.namprd07.prod.outlook.com ([fe80::a8fd:820:a09d:b878]) by BN8PR07MB6962.namprd07.prod.outlook.com ([fe80::a8fd:820:a09d:b878%5]) with mapi id 15.20.3283.028; Wed, 19 Aug 2020 16:22:44 +0000 Subject: Re: [edk2-devel] running CI locally To: devel@edk2.groups.io, michael.d.kinney@intel.com, "lersek@redhat.com" , Sean Brogan , Bret Barkelew Cc: Vladimir Olovyannikov , Rebecca Cran , Tom Lendacky References: From: "Sean" Message-ID: Date: Wed, 19 Aug 2020 09:22:42 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 In-Reply-To: X-ClientProxiedBy: MWHPR18CA0046.namprd18.prod.outlook.com (2603:10b6:320:31::32) To BN8PR07MB6962.namprd07.prod.outlook.com (2603:10b6:408:d6::11) Return-Path: spbrogan@outlook.com X-Microsoft-Original-Message-ID: <987f9327-4163-0161-1d1c-6e2d9e36d52b@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.2.78] (50.47.113.221) by MWHPR18CA0046.namprd18.prod.outlook.com (2603:10b6:320:31::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.25 via Frontend Transport; Wed, 19 Aug 2020 16:22:43 +0000 X-Microsoft-Original-Message-ID: <987f9327-4163-0161-1d1c-6e2d9e36d52b@outlook.com> X-TMN: [rHNKiWnoxEkZ9DX5vw1GcOPSx/D+3AN8] X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 49 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 53749509-ba39-43ee-7140-08d8445c1a63 X-MS-TrafficTypeDiagnostic: BN8NAM11HT157: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zbwb8XsvS6hOqaUFv9FoRfQ1TlzkRpGKcFDGkQvBKOySCavLYFRFvtD2skPR7WnWv6DvTT9Cj2LhI9rM3jShVFRRmxj98U3JYfKz6eY3/JunsMCB/32y4HxbOQnCYSlhEHDfAMfzNFd4JDI1K8p+8TQFC5Pos4qvx5Aj2CKayZVsAm2YpxxPrfKIDsDltm8LJnkDKhegZdq6qAI+XRxUFVaX7k8t3Tv5kcwjcwXbHZvRyHUg5ZRemnnCUQPKlEGS X-MS-Exchange-AntiSpam-MessageData: pyO+Rf2IkUtLQJxvbrGqHlcBLTlDdS5jsFSdoebWp9QnlAcP74z7VQ5E2xYV5g4/7/npybKnrkJjFrqXQ9QXyTpTgaZHSFl0Lq8gdQbqemOAHbTLcA5uss0ytX37/zlCDTr1NoM1e1itGqMHG9lZ6Q== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53749509-ba39-43ee-7140-08d8445c1a63 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2020 16:22:44.5908 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT031.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8NAM11HT157 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Laszlo/Mike, This is the joy of distributed repositories. Remember edk2 ci is actually using edk2-pytool-extensions and edk2-pytool-library. Documentation is in those projects. https://github.com/tianocore/edk2-pytool-extensions/tree/master/docs https://github.com/tianocore/edk2-pytool-library/tree/master/docs I won't say they are great and I hope someday relatively soon we can talk about an edk2 static site generator that can include docs from multiple repositories (much like https://microsoft.github.io/mu/) as I think documentation on edk2 is a weak spot. Regarding Mono and nuget. It is one of those things we wish was different as we have found it very inconsistent across different distributions of linux. But we do have docs here. https://github.com/tianocore/edk2-pytool-extensions/blob/master/docs/usability/using_linux.md And more specifically here: https://github.com/tianocore/edk2-pytool-extensions/blob/master/docs/usability/using_extdep.md#a-note-on-nuget-on-linux Finally getting to why you don't run the compile. Core CI (stuart_ci_build) is a plugin runner. Compile test is just one of those tests. OvmfPkg is a platform and thus didn't opt into core ci compile testing. In the table here i tried to document that OvmfPkg didn't compile using core ci and that a user should look at the readme. https://github.com/tianocore/edk2/blob/master/.pytool/Readme.md#basic-status So for OvmfPkg we enabled what we call platform ci (stuart_build). I think the write up here is pretty complete (although i see it has no mention of mono either). https://github.com/tianocore/edk2/tree/master/OvmfPkg/PlatformCI One final note. Yes the logging to console is by default very brief. This is by design as it is easier to quickly look and see what test failed and then use the log file (as mike mentioned) to find the root cause. Hope that helps and it is great to see people using it. Feedback is much appreciated. Thanks Sean On 8/19/2020 8:29 AM, Michael D Kinney wrote: > Hi Laszlo, > > Thank you for the feedback. I agree there are some documentation updates required. > > The spell check requirements are documented here: > > https://github.com/tianocore/edk2/blob/master/.pytool/Readme.md#spell-checking---cspell > > You do need to install nodejs and cspell. > > * Install nodejs from https://nodejs.org/en/ > * Install cspell > 1. Open cmd prompt with access to node and npm > 2. Run `npm install -g cspell` > > I agree that the verbosity of the output is very brief. There is a more complete > log that is always produced in the build output directory in Build/CI_BUILDLOG.txt. > Can you look at that file and see if it provide a more detailed reason for the > failure? > > Thanks, > > Mike > > >> -----Original Message----- >> From: devel@edk2.groups.io On Behalf Of Laszlo Ersek >> Sent: Wednesday, August 19, 2020 5:27 AM >> To: edk2-devel-groups-io ; Sean Brogan ; Bret Barkelew >> >> Cc: Vladimir Olovyannikov ; Rebecca Cran ; Tom Lendacky >> >> Subject: [edk2-devel] running CI locally >> >> Hi! >> >> I'd like to test CI locally. I'm going through ".pytool/Readme.md" with >> the tree checked out at 7e6f150b6902 (= current HEAD). I'm doing this in >> a RHEL8 VM, with a python3 virtual environment set up / entered. >> >> >> * My first note is that the command >> >> pip install --upgrade pip-requirements.txt >> >> under "Prerequisets", has a small typo; it should be >> >> pip install --upgrade -r pip-requirements.txt >> >> (the "-r" option is missing). >> >> ( >> >> After adding "-r", the following components are now installed in my >> virtual env: >> >> - edk2-pytool-library: 0.10.12 >> - edk2-pytool-extensions: 0.13.9 >> - antlr4-python3-runtime: 4.7.1 >> - pyyaml: 5.3.1 >> >> Stating this because it might matter for the rest of my email. >> >> ) >> >> >> * Second, when I run the following command: >> >> stuart_update -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5 >> >> I get the following warnings: >> >>> WARNING - [SDE] Failed to fetch NugetDependecy: mu_nasm@2.14.02: [Nuget] We failed to install this version 2.14.02 of mu_nasm >>> WARNING - [SDE] Failed to fetch NugetDependecy: iasl@20190215.0.0: [Nuget] We failed to install this version 20190215.0.0 of iasl >> >> (repeated one more time:) >> >>> WARNING - [SDE] Failed to fetch NugetDependecy: mu_nasm@2.14.02: [Nuget] We failed to install this version 2.14.02 of mu_nasm >>> WARNING - [SDE] Failed to fetch NugetDependecy: iasl@20190215.0.0: [Nuget] We failed to install this version 20190215.0.0 of iasl >> >> and then finally: >> >>> ERROR - We were unable to successfully update 2 dependencies in environment >>> ERROR - Error >> >> The virtual machine has NASM installed (2.13.03-2.el8) and IASL too >> (acpica-tools-20180629-3.el8). >> >> Where do the NASM and IASL version requirements (2.14.02 and >> 20190215.0.0, respectively) come from? >> >> Hm... After a git-grep for those version numbers, I find: >> >> - BaseTools/Bin/nasm_ext_dep.yaml >> - BaseTools/Bin/iasl_ext_dep.yaml >> >> I was about to say that these version requirements are too strict: for >> example, "BaseTools/Conf/tools_def.template" requires "NASM 2.10 or >> later for use with the GCC toolchain family". What I have installed >> satisfies that, and so CI shouldn't require anything more recent. >> *However*, both of the above YAML files have very helpful comments, so I >> understand these high versions are downloaded afresh, and only for the >> CI run. >> >> And so my question becomes: why do the "nuget" downloads fail for me >> (because, presumably, they work fine in the central CI env on github / >> Azure); and how can I fix the issue if it pops up again? >> >> I've checked "nuget.org" in my browser, and it has: >> >> - https://www.nuget.org/packages/mu_nasm/ --> 2.14.2 >> - https://www.nuget.org/packages/iasl/ --> 20190215.0.0 >> >> ... On a hunch, I've attempted adding the "--verbose" option to the >> "stuart_update" command; this is the output (excerpt): >> >>> DEBUG - Verify 'mu_nasm' returning 'False'. >>> DEBUG - Verify 'iasl' returning 'False'. >>> DEBUG - Creating 4 threads for the SDE update >>> UpdatingDEBUG - Verify 'mu_nasm' returning 'False'. >>> DEBUG - Verify 'gcc_aarch64_linux' returning 'True'. >>> DEBUG - Cleaning dependency directory for 'mu_nasm'... >>> DEBUG - Verify 'gcc_arm_linux' returning 'True'. >>> INFO - Cmd to run is: mono /root/py3venv/lib/python3.6/site-packages/edk2toolext/bin/NuGet.exe locals global-packages -list >>> DEBUG - Verify 'iasl' returning 'False'. >>> INFO - ------------------------------------------------ >>> DEBUG - Cleaning dependency directory for 'iasl'... >>> DEBUG - Verify 'gcc_riscv64_unknown' returning 'True'. >>> INFO - --------------Cmd Output Starting--------------- >>> INFO - Cmd to run is: mono /root/py3venv/lib/python3.6/site-packages/edk2toolext/bin/NuGet.exe locals global-packages -list >>> INFO - ------------------------------------------------ >>> INFO - ------------------------------------------------ >>> INFO - --------------Cmd Output Starting--------------- >>> INFO - ------------------------------------------------ >>> INFO - /bin/sh: mono: command not found >>> INFO - /bin/sh: mono: command not found >>> INFO - ------------------------------------------------ >>> INFO - --------------Cmd Output Finished--------------- >>> INFO - --------- Running Time (mm:ss): 00:00 ---------- >>> INFO - ----------- Return Code: 0x0000007f ------------ >>> INFO - ------------------------------------------------ >>> INFO - Nuget was unable to provide global packages cache location. >>> INFO - Cmd to run is: mono /root/py3venv/lib/python3.6/site-packages/edk2toolext/bin/NuGet.exe install mu_nasm -Source >> https://api.nuget.org/v3/index.json -ExcludeVersion -NonInteractive -Version 2.14.02 -Verbosity detailed -OutputDirectory >> "/root/src/rhel8/edk2/BaseTools/Bin/mu_nasm_extdep_temp" >>> INFO - ------------------------------------------------ >>> INFO - --------------Cmd Output Starting--------------- >>> INFO - ------------------------------------------------ >>> INFO - ------------------------------------------------ >>> INFO - --------------Cmd Output Finished--------------- >>> INFO - --------- Running Time (mm:ss): 00:00 ---------- >>> INFO - ----------- Return Code: 0x0000007f ------------ >>> INFO - ------------------------------------------------ >>> INFO - Nuget was unable to provide global packages cache location. >>> INFO - Cmd to run is: mono /root/py3venv/lib/python3.6/site-packages/edk2toolext/bin/NuGet.exe install iasl -Source >> https://api.nuget.org/v3/index.json -ExcludeVersion -NonInteractive -Version 20190215.0.0 -Verbosity detailed -OutputDirectory >> "/root/src/rhel8/edk2/BaseTools/Bin/iasl_extdep_temp" >>> INFO - ------------------------------------------------ >>> INFO - --------------Cmd Output Starting--------------- >>> INFO - /bin/sh: mono: command not found >>> INFO - ------------------------------------------------ >>> INFO - ------------------------------------------------ >>> INFO - --------------Cmd Output Finished--------------- >>> INFO - --------- Running Time (mm:ss): 00:00 ---------- >>> INFO - ----------- Return Code: 0x0000007f ------------ >>> INFO - ------------------------------------------------ >>> WARNING - [SDE] Failed to fetch NugetDependecy: mu_nasm@2.14.02: [Nuget] We failed to install this version 2.14.02 of mu_nasm >> >> Aha! So "mono" is another requirement. >> >> After installing the "mono-complete" package from EPEL8 (together with >> its dependencies), the "stuart_update" command completes fine for me. >> >> Can we spell out the "mono" dependency in ".pytool/Readme.md" somewhere, >> or can we perhaps check for mono automatically? >> >> >> * Third, attempting >> >> stuart_ci_build -c .pytool/CISettings.py -p OvmfPkg -a IA32,X64 -t DEBUG TOOL_CHAIN_TAG=GCC5 >> >> doesn't seem to do anything: >> >>> SECTION - Init SDE >>> SECTION - Loading Plugins >>> SECTION - Start Invocable Tool >>> SECTION - Getting Environment >>> SECTION - Loading plugins >>> SECTION - Building OvmfPkg Package >>> PROGRESS - --Running OvmfPkg: Compiler Plugin DEBUG -- >>> WARNING - --->Test Skipped: in plugin! Compiler Plugin DEBUG >>> PROGRESS - Overall Build Status: Success >>> SECTION - Summary >>> PROGRESS - Success >> >> If I remove the "-t DEBUG" option, a bit more happens (but it also >> fails): >> >>> SECTION - Init SDE >>> SECTION - Loading Plugins >>> SECTION - Start Invocable Tool >>> SECTION - Getting Environment >>> SECTION - Loading plugins >>> SECTION - Building OvmfPkg Package >>> PROGRESS - --Running OvmfPkg: Char Encoding Check Test NO-TARGET -- >>> PROGRESS - --->Test Success: Char Encoding Check Test NO-TARGET >>> 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 >>> PROGRESS - --Running OvmfPkg: Dependency Check Test NO-TARGET -- >>> PROGRESS - --->Test Success: Dependency Check Test NO-TARGET >>> PROGRESS - --Running OvmfPkg: Dsc Complete Check Test NO-TARGET -- >>> PROGRESS - --->Test Success: Dsc Complete Check Test NO-TARGET >>> PROGRESS - --Running OvmfPkg: Guid Check Test NO-TARGET -- >>> PROGRESS - --->Test Success: Guid Check Test NO-TARGET >>> PROGRESS - --Running OvmfPkg: Library Class Check Test NO-TARGET -- >>> PROGRESS - --->Test Success: Library Class Check Test NO-TARGET >>> PROGRESS - --Running OvmfPkg: Spell Check Test NO-TARGET -- >>> WARNING - NodeJs not installed. Test can't run >>> WARNING - --->Test Skipped: in plugin! Spell Check Test NO-TARGET >>> PROGRESS - --Running OvmfPkg: EccCheck Test NO-TARGET -- >>> PROGRESS - --->Test Success: EccCheck Test NO-TARGET >>> PROGRESS - --Running OvmfPkg: License Check Test NO-TARGET -- >>> PROGRESS - --->Test Success: License Check Test NO-TARGET >>> PROGRESS - --Running OvmfPkg: Host Unit Test Compiler Plugin NOOPT -- >>> WARNING - --->Test Skipped: in plugin! Host Unit Test Compiler Plugin NOOPT >>> PROGRESS - --Running OvmfPkg: Host Unit Test Dsc Complete Check Test NO-TARGET -- >>> PROGRESS - --->Test Success: Host Unit Test Dsc Complete Check Test NO-TARGET >>> PROGRESS - Overall Build Status: Success >>> SECTION - Summary >>> PROGRESS - Success >> >> I'm not sure about the "NodeJs not installed. Test can't run" message -- >> I guess it only relates to the "Spell Check Test". >> >> But what's missing for the actual build? I've noticed the following >> warning: >> >>> Test Skipped: in plugin! Compiler Plugin DEBUG >> >> But even if I add "--verbose", the only lines around that warning are: >> >>> INFO - Running on Package: OvmfPkg >>> PROGRESS - --Running OvmfPkg: Compiler Plugin DEBUG -- >>> WARNING - --->Test Skipped: in plugin! Compiler Plugin DEBUG >>> PROGRESS - Overall Build Status: Success >> >> Why is the build skipped? >> >> --*-- >> >> Summary: >> >> - the typo in "pip install --upgrade -r pip-requirements.txt" should be fixed >> >> - "mono" should be documented, or auto-installed, as a dependency >> >> - I don't know why "stuart_ci_build" skips the actual build. >> >> Thanks! >> Laszlo >> >> >> > > > >