mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-10-31 19:23:54 +01:00 
			
		
		
		
	DynamicTablesPkg: Add EDK2 Core CI support
The TianoCore EDKII project has introduced a Core CI infrastructure using TianoCore EDKII Tools PIP modules: * https://pypi.org/project/edk2-pytool-library/ * https://pypi.org/project/edk2-pytool-extensions/ The edk2\.pytool\Readme.md provides information to configure the environment and to run local builds. This patch defines the necessary settings for enabling the Core CI builds for DynamicTablesPkg. - Add DynamicTablesPkg.ci.yaml for Core CI - Update ReadMe.md for details and instructions Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
This commit is contained in:
		
							parent
							
								
									e3f8605a23
								
							
						
					
					
						commit
						2d0c42fdf2
					
				
							
								
								
									
										92
									
								
								DynamicTablesPkg/DynamicTablesPkg.ci.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								DynamicTablesPkg/DynamicTablesPkg.ci.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,92 @@ | |||||||
|  | ## @file | ||||||
|  | # CI configuration for DynamicTablesPkg | ||||||
|  | # | ||||||
|  | # Copyright (c) 2020, ARM Limited. All rights reserved.<BR> | ||||||
|  | # SPDX-License-Identifier: BSD-2-Clause-Patent | ||||||
|  | ## | ||||||
|  | { | ||||||
|  |     ## options defined .pytool/Plugin/CompilerPlugin | ||||||
|  |     "CompilerPlugin": { | ||||||
|  |         "DscPath": "DynamicTablesPkg.dsc" | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     ## options defined .pytool/Plugin/HostUnitTestCompilerPlugin | ||||||
|  |     "HostUnitTestCompilerPlugin": { | ||||||
|  |         "DscPath": "" # Don't support this test | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     ## options defined .pytool/Plugin/CharEncodingCheck | ||||||
|  |     "CharEncodingCheck": { | ||||||
|  |         "IgnoreFiles": [] | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     ## options defined .pytool/Plugin/DependencyCheck | ||||||
|  |     "DependencyCheck": { | ||||||
|  |         "AcceptableDependencies": [ | ||||||
|  |             "ArmPlatformPkg/ArmPlatformPkg.dec", | ||||||
|  |             "EmbeddedPkg/EmbeddedPkg.dec", | ||||||
|  |             "DynamicTablesPkg/DynamicTablesPkg.dec", | ||||||
|  |             "MdeModulePkg/MdeModulePkg.dec", | ||||||
|  |             "MdePkg/MdePkg.dec" | ||||||
|  |         ], | ||||||
|  |         # For host based unit tests | ||||||
|  |         "AcceptableDependencies-HOST_APPLICATION":[ | ||||||
|  |             "UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec" | ||||||
|  |         ], | ||||||
|  |         # For UEFI shell based apps | ||||||
|  |         "AcceptableDependencies-UEFI_APPLICATION":[], | ||||||
|  |         "IgnoreInf": [] | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     ## options defined .pytool/Plugin/DscCompleteCheck | ||||||
|  |     "DscCompleteCheck": { | ||||||
|  |         "IgnoreInf": [], | ||||||
|  |         "DscPath": "DynamicTablesPkg.dsc" | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     ## options defined .pytool/Plugin/HostUnitTestDscCompleteCheck | ||||||
|  |     "HostUnitTestDscCompleteCheck": { | ||||||
|  |         "IgnoreInf": [""], | ||||||
|  |         "DscPath": "" # Don't support this test | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     ## options defined .pytool/Plugin/GuidCheck | ||||||
|  |     "GuidCheck": { | ||||||
|  |         "IgnoreGuidName": [], | ||||||
|  |         "IgnoreGuidValue": [], | ||||||
|  |         "IgnoreFoldersAndFiles": [], | ||||||
|  |         "IgnoreDuplicates": [], | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     ## options defined .pytool/Plugin/LibraryClassCheck | ||||||
|  |     "LibraryClassCheck": { | ||||||
|  |         "IgnoreHeaderFile": [] | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     ## options defined .pytool/Plugin/SpellCheck | ||||||
|  |     "SpellCheck": { | ||||||
|  |         "AuditOnly": False, | ||||||
|  |         "IgnoreFiles": [],           # use gitignore syntax to ignore errors | ||||||
|  |                                      # in matching files | ||||||
|  |         "ExtendWords": [ | ||||||
|  |            "CCIDX", | ||||||
|  |            "CCSIDR", | ||||||
|  |            "countof", | ||||||
|  |            "EOBJECT", | ||||||
|  |            "GTBLOCK", | ||||||
|  |            "MPIDR", | ||||||
|  |            "pytool", | ||||||
|  |            "Roadmap", | ||||||
|  |            "SMMUV", | ||||||
|  |            "standardised", | ||||||
|  |            "TABLEEX", | ||||||
|  |            "TNSID", | ||||||
|  |            "Vatos", | ||||||
|  |            "WBINVD" | ||||||
|  |            ],           # words to extend to the dictionary for this package | ||||||
|  |         "IgnoreStandardPaths": [],   # Standard Plugin defined paths that | ||||||
|  |                                      # should be ignore | ||||||
|  |         "AdditionalIncludePaths": [] # Additional paths to spell check | ||||||
|  |                                      # (wildcards supported) | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -131,9 +131,80 @@ Ensure that the iASL compiler used for building *Dynamic Tables Framework* has t | |||||||
| This feature was made available in the *ACPICA Compiler update | This feature was made available in the *ACPICA Compiler update | ||||||
| [Version 20180508](https://www.acpica.org/node/156)*, dated 8 May 2018 (2018-05-08). | [Version 20180508](https://www.acpica.org/node/156)*, dated 8 May 2018 (2018-05-08). | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | Running CI builds locally | ||||||
|  | ------------------------- | ||||||
|  | 
 | ||||||
|  | The TianoCore EDKII project has introduced Core CI infrastructure using TianoCore EDKII Tools PIP modules: | ||||||
|  | 
 | ||||||
|  |    -  *[edk2-pytool-library](https://pypi.org/project/edk2-pytool-library)* | ||||||
|  | 
 | ||||||
|  |    - *[edk2-pytool-extensions](https://pypi.org/project/edk2-pytool-extensions)* | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | The instructions to setup the CI environment are in *'edk2\\.pytool\\Readme.md'* | ||||||
|  | 
 | ||||||
|  | ## Building DynamicTablesPkg with Pytools | ||||||
|  | 
 | ||||||
|  | 1. [Optional] Create a Python Virtual Environment - generally once per workspace | ||||||
|  | 
 | ||||||
|  |     ``` | ||||||
|  |         python -m venv <name of virtual environment> | ||||||
|  | 
 | ||||||
|  |         e.g. python -m venv edk2-ci | ||||||
|  |     ``` | ||||||
|  | 
 | ||||||
|  | 2. [Optional] Activate Virtual Environment - each time new shell/command window is opened | ||||||
|  | 
 | ||||||
|  |     ``` | ||||||
|  |         <name of virtual environment>/Scripts/activate | ||||||
|  | 
 | ||||||
|  |         e.g. On a windows host PC run: | ||||||
|  |              edk2-ci\Scripts\activate.bat | ||||||
|  |     ``` | ||||||
|  | 3. Install Pytools - generally once per virtual env or whenever pip-requirements.txt changes | ||||||
|  | 
 | ||||||
|  |     ``` | ||||||
|  |         pip install --upgrade -r pip-requirements.txt | ||||||
|  |     ``` | ||||||
|  | 
 | ||||||
|  | 4. Initialize & Update Submodules - only when submodules updated | ||||||
|  | 
 | ||||||
|  |     ``` | ||||||
|  |         stuart_setup -c .pytool/CISettings.py TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH> | ||||||
|  | 
 | ||||||
|  |         e.g. stuart_setup -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5 | ||||||
|  |     ``` | ||||||
|  | 
 | ||||||
|  | 5. Initialize & Update Dependencies - only as needed when ext_deps change | ||||||
|  | 
 | ||||||
|  |     ``` | ||||||
|  |         stuart_update -c .pytool/CISettings.py TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH> | ||||||
|  | 
 | ||||||
|  |         e.g. stuart_update -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5 | ||||||
|  |     ``` | ||||||
|  | 
 | ||||||
|  | 6. Compile the basetools if necessary - only when basetools C source files change | ||||||
|  | 
 | ||||||
|  |     ``` | ||||||
|  |         python BaseTools/Edk2ToolsBuild.py -t <ToolChainTag> | ||||||
|  |     ``` | ||||||
|  | 
 | ||||||
|  | 7. Compile DynamicTablesPkg | ||||||
|  | 
 | ||||||
|  |     ``` | ||||||
|  |         stuart_build-c .pytool/CISettings.py TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH> | ||||||
|  | 
 | ||||||
|  |         e.g. stuart_ci_build -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5 -p DynamicTablesPkg -a AARCH64 --verbose | ||||||
|  |     ``` | ||||||
|  | 
 | ||||||
|  |     - use `stuart_build -c .pytool/CISettings.py -h` option to see help on additional options. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| Documentation | Documentation | ||||||
| ------------- | ------------- | ||||||
| 
 | 
 | ||||||
| Refer to the following presentation from *UEFI Plugfest Seattle 2018*: | Refer to the following presentation from *UEFI Plugfest Seattle 2018*: | ||||||
| 
 | 
 | ||||||
| [Dynamic Tables Framework: A Step Towards Automatic Generation of Advanced Configuration and Power Interface (ACPI) & System Management BIOS (SMBIOS) Tables](http://www.uefi.org/sites/default/files/resources/Arm_Dynamic%20Tables%20Framework%20A%20Step%20Towards%20Automatic%20Generation%20of%20Advanced%20Configuration%20and%20Power%20Interface%20%28ACPI%29%20%26%20System%20Management%20BIOS%20%28SMBIOS%29%20Tables%20_0.pdf) | [Dynamic Tables Framework: A Step Towards Automatic Generation of Advanced Configuration and Power Interface (ACPI) & System Management BIOS (SMBIOS) Tables](http://www.uefi.org/sites/default/files/resources/Arm_Dynamic%20Tables%20Framework%20A%20Step%20Towards%20Automatic%20Generation%20of%20Advanced%20Configuration%20and%20Power%20Interface%20%28ACPI%29%20%26%20System%20Management%20BIOS%20%28SMBIOS%29%20Tables%20_0.pdf) | ||||||
|  | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user