mu_devops

Project Mu Developer Operations

OTHER License

Stars
27
Committers
16

Bot releases are visible (Hide)

mu_devops - v9.0.5

Published by github-actions[bot] 10 months ago

What's Changed

  1. No more than 10 artifacts per job in a workflow run.
  2. 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: https://github.com/microsoft/mu_devops/compare/v9.0.4...v9.0.5

mu_devops - v9.0.4

Published by github-actions[bot] 10 months ago

mu_devops - v9.0.3

Published by github-actions[bot] 10 months ago

What's Changed

@makubacki @Flickdm
Please verify that all necessary files are being sycned in this PR.


Full Changelog: https://github.com/microsoft/mu_devops/compare/v9.0.2...v9.0.3

mu_devops - v9.0.2

Published by github-actions[bot] 11 months ago

mu_devops - v9.0.1

Published by github-actions[bot] 11 months ago

What's Changed

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 in UploadCodeCoverage All aforementioned yaml files have been updated with documentation on how to generate code coverage.


Full Changelog: https://github.com/microsoft/mu_devops/compare/v9.0.0...v9.0.1

mu_devops - v8.0.0

Published by github-actions[bot] 11 months ago

What's Changed

⚠️ Breaking Changes

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

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: https://github.com/microsoft/mu_devops/compare/v7.3.0...v8.0.0

mu_devops - v7.3.0

Published by github-actions[bot] 11 months ago

What's Changed

🚀 Features & ✨ Enhancements

  1. 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.

  2. 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 https://github.com/microsoft/mu_rust_hid/pull/12


Full Changelog: https://github.com/microsoft/mu_devops/compare/v7.2.0...v7.3.0

mu_devops - v7.2.0

Published by github-actions[bot] 11 months ago

What's Changed

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

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, either ado (The azure devops pipeline that is running) or codecov (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 that CODECOV_TOKEN is set as a private variable in the pipeline.

  </blockquote>
  <hr>
</details>

Full Changelog: https://github.com/microsoft/mu_devops/compare/v7.1.0...v7.2.0

mu_devops - v7.1.0

Published by github-actions[bot] 12 months ago

What's Changed

✨ Enhancements

I have confirmed this as working using MuDevOpsWrapper for MU_BASECORE PRs:

Windows: Pipelines - Run 20231102.11 (azure.com)
Linux: Pipelines - Run 20231102.11 (azure.com)


Integration Instructions

Code Coverage is now disabled by default for MuDevOpsWrapper.yml. To enable CodeCoverage, set the calculate_code_coverage: parameter to true for MuDevOpsWrapper. Code Coverage now requires that your build_file (typically CISetting.py) subclasses ParseSettingsManager, which was introduced in edk2-pytool-extensions v0.26.0

Full Changelog: https://github.com/microsoft/mu_devops/compare/v7.0.2...v7.1.0

mu_devops - v7.0.2

Published by github-actions[bot] 12 months ago

What's Changed


Can precede but pairs with BaseTools/Plugin: Add tool exclusion to RustEnvironmentCheck


Also updates the container to the latest version 1082f35.

General release info: https://github.com/microsoft/mu_devops/releases


Full Changelog: https://github.com/microsoft/mu_devops/compare/v7.0.1...v7.0.2

mu_devops - v7.0.1

Published by github-actions[bot] about 1 year ago

mu_devops - v7.0.0

Published by github-actions[bot] about 1 year ago

What's Changed

⚠️ Breaking Changes

Also, tool like pytools are releasing 3.12 support. This change fixes
the minor version to prevent unintentional minor version updates in
the future and explicitly sets the minor version to 12.

This files synced from this PR should merged into repos after the pytools
release is out with 3.12 support and this mu_basecore change is completed
(https://github.com/microsoft/mu_basecore/pull/586). Though since pipelines
already moved to 3.12 as-is, it won't make much of a practical difference.

Three commits:


Fix Python minor version

Set to Python 3.11 (current) but do not allow newer minor versions to
be picked up unless explicitly specified.


Update to Python 3.12

Repos had already started picking up 3.12 because the minor version
was previously not fixed. This change update the Python version to
3.12 to accelerate adoption and ensure compatibility.


.sync/Version.njk: Update Mu repos to Mu DevOps v7.0.0

Changes since last release:
https://github.com/microsoft/mu_devops/compare/v6.5.1...v7.0.0

General release info: https://github.com/microsoft/mu_devops/releases


Full Changelog: https://github.com/microsoft/mu_devops/compare/v6.5.2...v7.0.0

mu_devops - v6.5.2

Published by github-actions[bot] about 1 year ago

What's Changed

Uses the -Z flag, which will cause the step to fail if uploading fails for any reason.

See: https://dev.azure.com/projectmu/mu/_build/results?buildId=55185&view=results for a working example.

Closed #257 but this should be usable in non-rust environments. I will start uploading all code coverage (such as for mu_basecore) once I have stuart_report merged and being used to clean up the code coverage data.


General release info: https://github.com/microsoft/mu_devops/releases


Full Changelog: https://github.com/microsoft/mu_devops/compare/v6.5.1...v6.5.2

mu_devops - v6.5.1

Published by github-actions[bot] about 1 year ago

mu_devops - v6.5.0

Published by github-actions[bot] about 1 year ago

What's Changed

General release info: https://github.com/microsoft/mu_devops/releases


🚀 Features & ✨ Enhancements

Repos that only contain pure Rust code may choose to pass conventional
cargo commands or custom wrapper commands.


Full Changelog: https://github.com/microsoft/mu_devops/compare/v6.4.1...v6.5.0

mu_devops - v6.4.1

Published by github-actions[bot] about 1 year ago

What's Changed

🐛 Bug Fixes

On Windows AARCH64 agents, the failure is due to the installation of toolchain is currently specified to be x86_64, which will not succeed on AARCH64 systems in the self-host pool. In addition, the update will apply to installed cargo, which could cause conflict when multiple agents run on the same host system.

On Linux agents, the failure is due to modifications made to container permissions. Self-hosted Linux agents do not use containers.

The change here removes the toolchain installation steps for selfhost agent matrix builds as it assumes these systems preset the needed environment properly.


Full Changelog: https://github.com/microsoft/mu_devops/compare/v6.4.0...v6.4.1

mu_devops - v6.4.0

Published by github-actions[bot] about 1 year ago

What's Changed

🚀 Features & ✨ Enhancements

🐛 Bug Fixes

The clap crate (Command Line Argument Parser) dependency within
tarpaulin was upgraded in the 0.27 release from an old version
(v2) to the latest major version (v4):

  Upgraded from clap v2 to v4. This has a few changes, notably any
  arguments which can be specified more than once require multiple
  entries so --run-types doc test needs to be turned into
  --run-types doc --run-types test

This means passing packages to a single -p parameter as a comma-
separated list is no longer supported:

  [cargo-make] Execute Command: "cargo" "tarpaulin" "-p" \
    "HelloWorldRustDxe,RustBootServicesAllocatorDxe"

  cargo_tarpaulin::config: Creating config
  cargo_tarpaulin: Running Tarpaulin
  cargo_tarpaulin: Building project
  cargo_tarpaulin::cargo: Cleaning project
  error: invalid character `,` in pkgid:
    `HelloWorldRustDxe,RustBootServicesAllocatorDxe`, characters must
    be Unicode XID characters (numbers, `-`, `_`, or most letters)

Providing users the ability to pass packages separated by commas to
cargo make coverage is convenient and assumed in our documentation
and wrapper scripts.

This change retains the same user-facing interface to cargo make coverage
while using a duckscript within the cargo makefile to transform the
list to the format accepted by tarpaulin. Other commands are unchanged.

Duckscript is useful because it is readily embedded in cargo-make so
no additional dependencies are required and it is cross-platform.


In addition, a minor fix is made by changing Html to html for the
following issue:

  [cargo-make] Execute Command: "cargo" "tarpaulin" "--out" "Html"
    "--exclude-files" "**/tests/*" "--output-dir" "D:\\src\\mu_plus/target"
  error: invalid value 'Html' for '--out [<FMT>...]'
    [possible values: json, stdout, xml, html, lcov]

    tip: a similar value exists: 'html'
  </blockquote>
  <hr>
</details>

Full Changelog: https://github.com/microsoft/mu_devops/compare/v6.3.0...v6.4.0

mu_devops - v6.3.0

Published by github-actions[bot] about 1 year ago

What's Changed

🚀 Features & ✨ Enhancements

D:\a\mu_tiano_platforms\Build\QemuQ35Pkg
  \DEBUG_VS2022\X64\MsCorePkg\HelloWorldRustDxe\HelloWorldRustDxe
  \DEBUG\x86_64-unknown-uefi\debug\incremental
  \rust_boot_services_allocator_dxe-2f5m6unckl0t8
  \s-gorl2pbwn9-18oh534-e4zntah436u40i7hceav0825j

CodeQL actions have well known and unresolved issues with long paths
when they're scanning directories for files.

The directories where these files may be left are not needed after
build and it takes about 3 seconds to remove them so that is done
in this change.


Tested on fork. Example:
https://github.com/makubacki/mu_tiano_platforms/actions/runs/6204825673


Full Changelog: https://github.com/microsoft/mu_devops/compare/v6.2.0...v6.3.0

mu_devops - v6.2.0

Published by github-actions[bot] about 1 year ago

What's Changed


🚀 Features & ✨ Enhancements

This adds a cargo make check command that reuses similar
flags to our build so the check results are similar. check_json
is added to be used by tools like VS Code that need JSON
output.


The CodeQL platform workflow is agnostic to specific platform details.

It works by discovering all buildable platforms in a repo before any
dependencies are cloned and then verifying the build files in the
platform package directory support platform build. If they do, it is
checked if they support CodeQL. Only platforms that meet all of these
conditions are actually built via a dynamic platform package matrix.

This allows the workflow to scale across platform repos and
automatically pick up new platforms as they onboard support for
CodeQL.


Tested in mu_tiano_platforms.


Full Changelog: https://github.com/microsoft/mu_devops/compare/v6.1.1...v6.2.0

mu_devops - v6.1.1

Published by github-actions[bot] about 1 year ago

What's Changed

Add extra_cargo_steps parameter in MuDevOpsWrapper.yml

The extra_cargo_steps parameter allows a repo extending
MuDevOpsWrapper.yml to specify a step list that should be executed
before running the standard set of cargo commands in the repo
(to build and test).


Opt mu_tiano_platforms into Rust file sync

Syncs the normal set of workspace-level Rust files to the
mu_tiano_platforms repo.


cargo-make is cached so it can be reused across runs until the
next version is published in the upstream repo.


General release info: https://github.com/microsoft/mu_devops/releases


Full Changelog: https://github.com/microsoft/mu_devops/compare/v6.1.0...v6.1.1

Related Projects