-
Notifications
You must be signed in to change notification settings - Fork 343
EDK II Continuous Integration
Michael Kinney edited this page Sep 19, 2019
·
8 revisions
- Remove write access to edk2 repo
- EDK II Maintainers use GitHub Pull Request instead of push
- Only accept PR from EDK II Maintainers. Reject all other PRs.
- Run basic Pre-commit checks
- If all Pre-commit checks pass, then auto commit changes
- If any Pre-commit check fails, then notify submitter
- Limit pre-commit check execution time to 10 minutes
- Provide on-demand builds to EDK II Maintainers
- PatchCheck.py
- Verify Reviewed-by and Acked-by tags are present with correct maintainers
- Verify no non-ASCII characters in modified files
- Verify no binary files in set of modified files
- Verify Package Dependency rules in modified files
- Run ECC on modified files
- Verify modified modules/libs build
- Run available Host Based tests against modified modules/libs
- Build all modules/libs/platforms that consume modified content
- Build critical packages
- Build critical platforms
- Verify that Doxygen Documentation can be generated
- Build all packages
- Build all platforms
- Publish Doxygen Documentation to a web site
- Same as weekly builds
- Full regression testing
- Publishes binary files to release pages
- PatchCheck.py
- Verify Reviewed-by and Acked-by tags are maintainers
- Verify no non-ASCII characters in modified source files
- Verify no binary files in set of modified files
- Verify Package Dependency rules in modified files
- Verify modified modules/libs build
- Run Host Based tests against modified modules/libs
- cppcheck
- ECC (EFI Code Checker)
- Difficult to address all warnings/issues/false positives reported
- May need to maintain an exception list
- Static Analysis against modified modules/libs
- CLANG static analysis
- Coverity: https://scan.coverity.com/
- Difficult to address all warnings/issues/false positives reported
- May need to maintain an exception list
- pyflakes (for python sources)
- pylama (for python sources)
- Generate Package Documentation (Doxygen based)
- Build all Packages/Platforms for all supported CPU architectures (IA32, X64, ARM, AARCH64, EBC), all supported tool chains (VS2015, VS2017, GCC5, XCODE5), and all supported build targets (DEBUG, RELEASE, NOOPT). Needs further discussion on required coverage.
- Boot platforms to UEFI Shell
- Run UEFI SCTs and collect results for platforms
- Linaro LAVA CI
- Boot platforms to OS(s)
- Integration/Regression tests that require full OS boots
- Build binary releases of components (e.g. UEFI Shell, OVMF)
- OVMF
- IA32 DXE boot tests
- X64 DXE boot tests
- ArmVirt QEMU boot tests
- S3 enabled tests
- SMM_REQUIRE enabled tests
- Boot using both KVM and QEMU environments
- HTTPS Boot Tests
- UEFI Secure Boot Sanity Testing
- Enroll UEFI Secure Boot Keys
- UEFI Secure Boot testing of "unsigned" images
- UEFI Secure Boot testing of "signed but not recognized" images
- UEFI Secure Boot testing of "signed and accepted" images
- UEFI Secure Boot testing of "signed but blacklisted" images
- Project that offers a python script that automates communicating with the UEFI shell over the emulated serial port. Used in downstream package builds, for packaging a pre-enrolled variable store template file.
- Support non-maintainer GitHub Pull Requests that are submitted after code review is complete. Maintainers must still be part of the review/approval process before the PR is run through pre-commit tests auto committed.
- Background
- GitHub Continuous Integration services
- Jenkins Evaluation
- GitLab Evaluation
- Contacts
- Laszlo Ersek lersek@redhat.com
- Philippe Mathieu-Daudé philmd@redhat.com
- https://gitlab.com/philmd/edk2/pipelines
- Contacts
- Azure Pipeline Evaluation for CPU Archs, tool chain tags, and build targets
- Azure Pipelines Evaluation with HBFA integration
- Contacts
- Sean Brogan sean.brogan@microsoft.com
- Bret Barkelew Bret.Barkelew@microsoft.com
- https://github.com/spbrogan/edk2-staging/tree/edk2-stuart-ci-latest
- To work with this branch and run tests immediately, all you need to do is:
- Contacts
pip install --upgrade -r requirements.txt
stuart_setup -c .\CISettings.py
stuart_update -c .\CISettings.py
stuart_ci_build -c .\CISettings.py --Tool_Chain VS2017
- Branch is monitored for CI and PR gating in the following Azure build pipeline.
- Results show that this CI process is running build CI and DSC checking and automatically running a host-based unit test and all of the results are visible in a single view.
- Depends on pip installable tool from the following TianoCore repos
- Documentation for edk2-pytools
Home
Getting Started with EDK II
Build Instructions
EDK II Platforms
EDK II Documents
EDK II Release Planning
Reporting Issues
Reporting Security Issues
Community Information
Inclusive Language
Additional Projects & Tasks
Training
Community Support
Community Virtual Meetings
GHSA GitHub Security Advisories Proceess (Draft)