Skip to content

Introduce reusable composite GitHub Actions and refactor workflows#112

Merged
MichielOda merged 7 commits into
mainfrom
AI
May 20, 2026
Merged

Introduce reusable composite GitHub Actions and refactor workflows#112
MichielOda merged 7 commits into
mainfrom
AI

Conversation

@MichielOda
Copy link
Copy Markdown
Member

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

  • Added several composite actions under .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

  • Implemented a robust secrets loading action that fetches secrets from Azure Key Vault and allows for safe overrides, with masking and environment export. Includes supporting scripts load-from-keyvault.sh and apply-overrides.sh. [1] [2] [3]
  • Added an action to resolve Azure OIDC parameters, supporting both explicit inputs and organization-based defaults, with clear signaling when OIDC is not available.

3. NuGet Source Setup

  • Provided a composite action and PowerShell script to register required NuGet sources (GitHub Packages and, optionally, Skyline Azure feeds) in an idempotent way, supporting both public and private feeds based on repository ownership and tokens. [1] [2]

4. Manifest Metadata Automation

  • Added actions and scripts to automate updating the id: field in manifest.yml files and to fill in missing source_code_url: fields with the repository URL, ensuring consistency and correctness across manifests. [1] [2] [3] [4]

5. SonarCloud and Test Runner Detection

  • Introduced an action to query SonarCloud project status, determine if initial analysis is needed, and provide actionable errors if the token is invalid. [1] [2]
  • Added a test runner detection action that inspects global.json to 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.

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.
@MichielOda

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

@MichielOda

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

@MichielOda

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

@MichielOda
Copy link
Copy Markdown
Member Author

/test

@github-actions
Copy link
Copy Markdown

All downstream tests passed

PR #112 (a01eb3c)

Repository Status Link
SkylineCommunications/BOOST-DailyRegression-Connector-SDK ✅ success View run
SkylineCommunications/BOOST-DailyRegression-Connector-Legacy ✅ success View run
SkylineCommunications/BOOST-DailyRegression-Automation-SDK ✅ success View run
SkylineCommunications/BOOST-DailyRegression-Automation-Legacy ✅ success View run
SkylineCommunications/BOOST-DailyRegression-InternalNuGet ✅ success View run
SkylineCommunications/BOOST-DailyRegression-Skyline.DataMiner.Sdk ✅ success View run

@MichielOda MichielOda force-pushed the AI branch 3 times, most recently from a0c8b00 to c5fe602 Compare May 20, 2026 08:30
…e it and test coverage and such is then also handled.
@MichielOda MichielOda force-pushed the AI branch 2 times, most recently from 3366fea to 23a3176 Compare May 20, 2026 08:53
@MichielOda MichielOda merged commit 2c2e731 into main May 20, 2026
33 checks passed
@MichielOda MichielOda deleted the AI branch May 20, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant