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
|
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…
Reference in New Issue