This repository now contains an Azure DevOps extension scaffold for Merge-DailyBuildBranch.ps1 under:
azure-devops-extension/vss-extension.jsonazure-devops-extension/tasks/PrepareDailyBuildBranch/task.json
Before publishing, configure the environment variables used by the publish workflow (MARKETPLACE_PUBLISHER_ID and MARKETPLACE_EXTENSION_ID).
D365GitOps/functions/DailyBuild/Merge-DailyBuildBranch.ps1 is the source of truth; the publish workflow copies it into the extension task folder during packaging.
The task GUID in azure-devops-extension/tasks/PrepareDailyBuildBranch/task.json must remain unique if this task is forked or republished under another extension.
A prettified pipeline with parameterized usage is available at:
.azuredevops/MergeDailyBuildBranch.yml
.github/workflows/create-release.yml- Creates a GitHub release automatically when a semver tag (
vX.Y.Z) is pushed.
- Creates a GitHub release automatically when a semver tag (
.github/workflows/publish-marketplace.yml- Supports manual publish (
workflow_dispatchwith explicit semver input). - Supports manual environment selection (
marketplaceormarketplace-preview). - Downloads
vss-extension.schema.jsonnext to the manifest and validatesazure-devops-extension/vss-extension.jsonbefore packaging. - Publishes automatically when a GitHub release is published.
- Supports manual publish (
- Create (or reuse) an Entra ID application/service principal.
- In GitHub repository Settings → Environments configure:
marketplace(default publish target)marketplace-preview
- Add the following environment variables in each environment:
MARKETPLACE_PUBLISHER_IDMARKETPLACE_EXTENSION_IDAZURE_CLIENT_IDAZURE_TENANT_ID
- In Entra ID app, add a Federated credential:
- Issuer:
https://token.actions.githubusercontent.com - Subject for branch-based runs (example):
repo:BE-terna/D365-GitOps-MPL:ref:refs/heads/main - Subject for release-based runs (recommended):
repo:BE-terna/D365-GitOps-MPL:environment:marketplace(if environments are used) - If preview publishes use a separate federated credential, add:
repo:BE-terna/D365-GitOps-MPL:environment:marketplace-preview
- Issuer:
- Grant the app permissions/access required to publish under your Azure DevOps Marketplace publisher.
- Push a semver tag (
v1.2.3) to auto-create a release, or manually create a GitHub release. - Publishing workflow logs in with OIDC (
azure/login) and requests an Azure DevOps access token for resource id499b84ac-1321-427f-aa17-267ca6975798.