Releases: microsoft/mu_devops
v9.1.0
What's Changed
-
.sync/workflows/codeql: Always remove plugins in .pytools @kenlautner (#302)
Change Details
With the CodeQL plugin moving to BaseTools (from .pytool) starting in release/202311, update the workflow to always remove unnecessary plugins (that slow down the workflow) in .pytools as opposed to relative the CodeQL plugin path.
-
.sync/workflows/codeql: Update sync action to v4 @makubacki (#301)
Change Details
Matches the latest version being propagated by dependabot.
🚀 Features & ✨ Enhancements
-
.sync/workflows/leaf/codeql.yml: Update CodeQL plugin from .pytool to BaseTools @makubacki (#299)
Change Details
The CodeQL plugin moved from .pytool to BaseTools in the Mu Basecore 202311 update. This change first looks for the plugin in BaseTools and falls back to the prior .pytool location if it is not found for backward compatibility with some earlier release branches that have not picked up the change.
Eventually, the .pytool fallback can be removed.
Issue to track removal of the fallback: #300
🐛 Bug Fixes
-
Fix issue with .pytool/Plugin removal which was introduced with the latest codeql.yml change. @kenlautner (#303)
Change Details
The latest codeql.yml change updated the cleanup step to find .pytool/Plugin folder directly instead of using a relevant path form the CodeQL plugin directory.
That change didn't take into account how all branches from release/202302 and older have the .pytool/Plugin version of CodeQL and was deleting all plugins in .pytool besides CompilerPlugin. This change excludes the CodeQL plugin if it exists as well.
Full Changelog: v9.0.6...v9.1.0
v9.0.6
What's Changed
-
Rust: Makefile.toml: Add Feature flag support @Javagedes (#298)
Change Details
Adds additional environment variables to the Makefile.toml to set features when building.
setting the variable
FEATURES
will translate to passing--features <features>
to the underlying build command.
Full Changelog: v9.0.5...v9.0.6
v9.0.5
What's Changed
-
.sync/workflows/leaf: CodeQL workflow changes for upload-artifact v4 @makubacki (#291)
Change Details
Two key new restrictions:
- No more than 10 artifacts per job in a workflow run.
- It is no longer possible to upload to the same named artifact
multiple times.
These workflows can easily split their artifacts up under the 10
artifact limit while also not uploading to the same named artifact
in the process.Full Changelog: v9.0.4...v9.0.5
v9.0.4
What's Changed
-
Bump setup-python action from v4 to v5 in sync files @makubacki (#288)
Change Details
Updates the sync files to use v5 so they will match the latest files updated by dependabot in the synced repo. Also updates the version in the file in the submodule-release-updater action.
Full Changelog: v9.0.3...v9.0.4
v9.0.3
What's Changed
-
Start file sync for secureboot\_objects repo @apop5 (#285)
Change Details
Adding a first pass of filesync for the secureboot_objects repo.
@makubacki @Flickdm
Please verify that all necessary files are being sycned in this PR.
Full Changelog: v9.0.2...v9.0.3
v9.0.2
What's Changed
-
Add secureboot objects repo to notebook queries @apop5 (#282)
Change Details
Adding secureboot_objects repo to the queries for issues and pull requests.
-
pull-request-formatting-validator: Use github-script v7 @makubacki (#281)
Change Details
Ensure that the latest version of the action is synced to other repos (v7).
-
.sync/Version.njk: Update Mu repos to Mu DevOps v9.0.1 @Javagedes (#280)
Change Details
Updates the version.njk file to 9.0.1
Full Changelog: v9.0.1...v9.0.2
v9.0.1
What's Changed
-
MuDevOpsWrapper.yml: Bugfix bad value options @Javagedes (#279)
Change Details
the `values` config does not work as variables are not evaluated until the step runs, so what actually gets passed and verified against the `values` config ends up being the string `$(variable_name)`, which always fails as we were saying the value could only be "ado" or "codecov" or ""
This PR updates all yaml files to no longer pass the environment variable as a parameter from
MuDevOpsWrapper
->Jobs/PrGate
->Steps/PrGate
->UploadCodeCoverage
and instead uses the environment variable directly inUploadCodeCoverage
All aforementioned yaml files have been updated with documentation on how to generate code coverage.
Full Changelog: v9.0.0...v9.0.1
v8.0.0
What's Changed
⚠️ Breaking Changes
-
Jobs/PrGate.yml: Update Code Coverage commands @Javagedes (#273)
Change Details
Updates the Code coverage command to also use the following flags:
CC_FLATTEN=TRUE - de-duplicates source file coverage due to the same source file being used by multiple INFs.
CC_FULL=TRUE - inserts coverage data (correct code line count, but zero lines covered) for all source files in the package that are not present in the original coverage report.
Integration Instructions
Pipelines consuming this change must add pygount to their pip-requirements file.
🚀 Features & ✨ Enhancements
-
Jobs/PrGate.yml: Update Code Coverage commands @Javagedes (#273)
Change Details
Updates the Code coverage command to also use the following flags:
CC_FLATTEN=TRUE - de-duplicates source file coverage due to the same source file being used by multiple INFs.
CC_FULL=TRUE - inserts coverage data (correct code line count, but zero lines covered) for all source files in the package that are not present in the original coverage report.
Integration Instructions
Pipelines consuming this change must add pygount to their pip-requirements file.
Full Changelog: v7.3.0...v8.0.0
v7.3.0
What's Changed
🚀 Features & ✨ Enhancements
-
Steps/UploadCodeCoverage.yml: Remove dependency and conditionalize [Rebase \& FF] @makubacki (#274)
Change Details
Contains two changes related to uploading code coverage:
-
Remove edk2toollib dependency
Some repos (like pure Rust repos) are expected not to depend on
pytools. Since the codecov application can simply be run without
RunCmd()
, do that and prevent the need for those repos to depend
on edk2toollib or unnecessary logic in the pipelines to bring it in. -
Conditionalize coverage upload steps on codecov token presence
Some repos may not upload to codecov for various reasons. Those repos
won't set the code coverage token so conditionalize the upload steps
on the token.
Will unblock microsoft/mu_rust_hid#12
-
Full Changelog: v7.2.0...v7.3.0
v7.2.0
What's Changed
-
.sync/Version.njk: Update Mu repos to Mu DevOps v7.1.0 @makubacki (#268)
Change Details
Changes since last release: https://github.com/microsoft/mu_devops/compare/v7.0.1...v7.1.0
General release info: https://github.com/microsoft/mu_devops/releases
This change is necessary when integrating 649a4ba to prevent the following failure:
/.azurepipelines/MuDevOpsWrapper.yml (Line: 92, Col: 30): Unexpected parameter 'calculate_code_coverage'
</blockquote> <hr> </details>
🚀 Features & ✨ Enhancements
-
MuDevOpsWrapper: Allow coverage uploads to ado or codecov.io @Javagedes (#270)
Change Details
## Description
This change reverts the changes made in #266 in favor of performing the reformatting in the HostBasedUnitTestRunner plugin. From there it allows the consumer of
MuDevOpsWrapper
to configure where code coverage data is uploaded to, eitherado
(The azure devops pipeline that is running) orcodecov
(The codecov account associated with the repository).- Uploading to ado remains the same - A final job runs that merges coverage data and uploads it to azure pipelines
- Due to the advanced capabilities, uploading to codecov runs per matrix job and uploads using flags to separate code coverage data between packages.
Integration Instructions
The previous logic remains the default, that is to say code coverage is uploaded to the azure devops pipeline that is running. Should a consumer set
coverage_publish_target
to 'codecov', they must ensure thatCODECOV_TOKEN
is set as a private variable in the pipeline.</blockquote> <hr> </details>
Full Changelog: v7.1.0...v7.2.0