# Edk2 Continuous Integration\r
\r
+This file focuses on information for those working with the `.pytools` directory\r
+directly or interested in lower-level details about how CI works.\r
+\r
+If you just want to get started building code, visit\r
+[Build Instructions](https://github.com/tianocore/tianocore.github.io/wiki/Build-Instruction)\r
+on the TianoCore wiki.\r
+\r
## Basic Status\r
\r
| Package | Windows VS2019 (IA32/X64)| Ubuntu GCC (IA32/X64/ARM/AARCH64) | Known Issues |\r
that a few steps should be followed. Details of EDKII Tools can be found in the\r
[docs folder here](https://github.com/tianocore/edk2-pytool-extensions/tree/master/docs)\r
\r
-### Prerequisets\r
-\r
-1. A supported toolchain (others might work but this is what is tested and validated)\r
- * Windows 10:\r
- * VS 2017 or VS 2019\r
- * Windows SDK (for rc)\r
- * Windows WDK (for capsules)\r
- * Ubuntu 18.04 or Fedora\r
- * GCC5\r
- * Easy to add more but this is the current state\r
-2. Python 3.7.x or newer on path\r
-3. git on path\r
-4. Recommended to setup and activate a python virtual environment\r
-5. Install the requirements `pip install --upgrade pip-requirements.txt`\r
-\r
### Running CI\r
\r
-1. clone your edk2 repo\r
-2. Activate your python virtual environment in cmd window\r
-3. Get code dependencies (done only when submodules change)\r
- * `stuart_setup -c .pytool/CISettings.py TOOL_CHAIN_TAG=<your tag here>`\r
-4. Update other dependencies (done more often)\r
- * `stuart_update -c .pytool/CISettings.py TOOL_CHAIN_TAG=<your tag here>`\r
-5. Run CI build (--help will give you options)\r
- * `stuart_ci_build -c .pytool/CISettings.py TOOL_CHAIN_TAG=<your tag here>`\r
- * -p <pkg1,pkg2,pkg3> : To build only certain packages use a CSV list\r
- * -a <arch1,arch2,arch3>: To run only certain architectures use a CSV list\r
- * -t <target1,target2>: To run only tests related to certain targets use a\r
- CSV list\r
- * By default all tests are opted in. Then given a package.ci.yaml file those\r
- tests can be configured for a package. Finally setting the check to the\r
- value `skip` will skip that plugin. Examples:\r
- * `CompilerPlugin=skip` skip the build test\r
- * `GuidCheck=skip` skip the Guid check\r
- * `SpellCheck=skip` skip the spell checker\r
- * etc\r
-6. Detailed reports and logs per package are captured in the `Build` directory\r
+Quick notes:\r
+\r
+* By default all CI plugins are opted in.\r
+ * Setting the plugin to `skip` as an argument will skip running the plugin.\r
+ Examples:\r
+ * `CompilerPlugin=skip` skip the build test\r
+ * `GuidCheck=skip` skip the Guid check\r
+ * `SpellCheck=skip` skip the spell checker\r
+ * etc.\r
+* Detailed reports and logs per package are captured in the `Build` directory.\r
\r
## Current PyTool Test Capabilities\r
\r
Run the Ecc tool on the package. The Ecc tool is available in the BaseTools\r
package. It checks that the code complies to the EDKII coding standard.\r
\r
+### Coding Standard Compliance - UncrustifyCheck\r
+\r
+Runs the Uncrustify application to check for coding standard compliance issues.\r
+\r
## PyTool Scopes\r
\r
Scopes are how the PyTool ext_dep, path_env, and plugins are activated. Meaning\r