mirror of https://github.com/acidanthera/audk.git
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
|
@ -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
|
||||
[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
|
||||
-------------
|
||||
|
||||
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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue