These tests require using the "edk2-pytool" stuff but are easy to integrate with the github PR or CI flow.  Example of it running the code compliance tests is here: https://dev.azure.com/tianocore/edk2-ci-play/_build?definitionId=13&_a=summary A test run takes about 3 minutes.  

The past week or so we also have been working on a more complete test run which adds to the above test suite three more tests.  Compile each package for Debug, Release, and Host Based Unit tests.  Obviously this adds more time and takes more resources but at the moment we have it down to 13 minutes. You can see it here: https://dev.azure.com/tianocore/edk2-ci-play/_build?definitionId=12&_a=summary 

To enable this framework you need the following. 

1. pip install a couple of edk2-pytool packages (see requirements.txt file)
2. Add the pytool based plugins to the edk2 code tree  See here: https://github.com/spbrogan/edk2-staging/tree/edk2-stuart-ci-latest/BaseTools/Plugin/Ci
3. Add a CiSettings.py file that satisfies the setup, update, and ci_build  See here: https://github.com/spbrogan/edk2-staging/blob/edk2-stuart-ci-latest/CISettings.py
4. Add a *.ci.yaml file to each package to configure test settings, ignore files, and other configuration for testing the package.  Example here: https://github.com/spbrogan/edk2-staging/blob/edk2-stuart-ci-latest/MdeModulePkg/MdeModulePkg.ci.yaml
5.  For Azure pipeline support (cloud based CI) you will need to add Azure pipeline.yaml flles.  

This can all be seen in the branch here.  https://github.com/spbrogan/edk2-staging/tree/edk2-stuart-ci-latest
Be aware that in that same branch we are enabling "Host based unit tests" which also requires more code changes so if diffing with clean edk2 you can ignore those (although that is all part of another RFC for unit test so any feedback on that would be great too).

Feedback would be appreciated.  I am hoping this RFC can move forward in the next few weeks.  

Thanks
Sean