Azure / azure-sdk-for-java

This repository is for active development of the Azure SDK for Java. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/java/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-java.
MIT License
2.25k stars 1.93k forks source link

[FEATURE REQ] Find a way to standardize Artifacts list parameters in individual SDK/area CI.yml files. #28532

Closed JimSuplizio closed 1 year ago

JimSuplizio commented 2 years ago

In order to be able to release a set of libraries belonging to multiple SDK/areas we need the ability to be able to generate a complete list of Artifacts, and potentially AdditionalModules, from the lists being used by the individual SDK/area CI.yml files. The reason we need to generate the uber list from the existing Artifacts entries to get the pieces of metadata associated with each library that may or may not be there for any given library but aren't required for every library.

For example, the only 3 pieces of required for each library are the name, groupId and safeName (which may go away). There are additional, optional, pieces of metadata which affect libraries during the verification and release processes:

For existing SDK/area pipelines, the CI.yml files contain the list of Artifacts that can be released from that pipeline. The problem is that these lists aren't defined in the same manner in each CI.yml. Core, for example, is pretty standard in the location of the definition of their artifacts but this differs from the location Spring has their list defined, which is due to their usages. We need to find a way to makes standard so we can dynamically grab the list of metadata and additional metadata for a pipeline that would be capable of releasing a set of libraries that spans multiple SDK/areas.

JimSuplizio commented 2 years ago

Update: With recent updates for Batch release, the ci.yml files for client track libraries are now all homogenous, in terms of the Artifact and AdditionalModules lists. I've already got a tool written that, when given a library list, it'll pull the library metadata from the service directory yml files and use those entries to update a patch release yml file.

JimSuplizio commented 1 year ago

I'm closing this. With the ci.yml files being homogenous now I'd created a script to handle this. It was merged as part of this PR