Introduce reusable composite GitHub Actions and refactor workflows#112
Merged
Conversation
Add a suite of composite actions and helper scripts for reusable workflows and update workflows to consume them. New actions include guard-trigger, load-secrets (with keyvault and overrides scripts), resolve-oidc, setup-nuget-sources, sonarcloud-status (with status script), detect-test-runner, apply-catalog-identifiers, apply-source-code-url, update-global-json-sdks, and validate-inputs (with validation scripts). Also add authoring instructions and actions README, a Wrapper Migration workflow, Test composite actions workflow, and a repo README. Many existing workflows were refactored to use these composite actions (replacing inline secret/keyvault pulls and Sonar checks), and one deprecated SRM Function Master Workflow was removed. These changes centralize logic, improve idempotency, standardize secret handling (via env), and make reusable workflows easier to maintain.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Member
Author
|
/test |
|
⏳ Downstream tests triggered from PR #112 ( Triggered repos:
Polling for results... |
|
✅ All downstream tests passed
|
a0c8b00 to
c5fe602
Compare
…e it and test coverage and such is then also handled.
3366fea to
23a3176
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a set of reusable composite GitHub Actions and supporting scripts to standardize and simplify CI/CD workflows, especially for handling secrets, NuGet sources, manifest metadata, OIDC/Azure login, SonarCloud status checks, and test runner detection. The main themes are improved maintainability, security, and DRY (Don't Repeat Yourself) principles for workflow logic.
Key changes:
1. New Composite Actions for Workflow Building Blocks
.github/actions/for common workflow tasks, each with clear documentation and conventions in.github/actions/README.md. These include actions for managing secrets, NuGet sources, manifest fields, OIDC parameters, SonarCloud status, test runner detection, and trigger guarding. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]2. Secrets Management and OIDC Resolution
load-from-keyvault.shandapply-overrides.sh. [1] [2] [3]3. NuGet Source Setup
4. Manifest Metadata Automation
id:field inmanifest.ymlfiles and to fill in missingsource_code_url:fields with the repository URL, ensuring consistency and correctness across manifests. [1] [2] [3] [4]5. SonarCloud and Test Runner Detection
global.jsonto distinguish between Microsoft.Testing.Platform and VSTest runners, exporting the result for use in workflows. [1] [2]These additions lay the groundwork for more maintainable, secure, and reusable CI/CD workflows across the repository.