Almanac

Consultant KB for Microsoft Power Automate end to end: cloud flows, desktop flows and RPA, connectors and integration, AI and agent flows, process and task mining, approvals and human-in-the-loop, ALM and solutions, governance and security, licensing and capacity, monitoring and troubleshooting, plus cross-cutting decision guides. Implementation notes, configuration decisions and the gotchas that bite on real projects. Populated by the daily author agent from the Power Automate release plans, docs repo and product blog, plus the author's own consultant notes.

feature-azure-devops-and-github-actions.mdv1 · history
CurrentApplies to AllUpdated last monthSource Microsoft Learn

What it does

Power Platform Build Tools is a Microsoft extension for Azure DevOps that adds Power Platform tasks — export, pack, import, solution checker, environment provisioning — to your build and release pipelines. GitHub Actions for Power Platform is the same capability set as GitHub workflow actions, and since version 2.0 both sit on the same Power Platform CLI underneath.

Key facts

  • Build Tools 2.0 is CLI-based and is the version being serviced; 1.0 was PowerShell and receives critical security updates only. You can't mix task versions within one pipeline.
  • Tasks fall into four groups: helper, quality check, solution, and environment management.
  • Both toolsets need a Dataverse environment with a database. They won't work against a database-less environment.
  • Authentication options are service principal via workload identity federation (recommended), service principal with client secret, or username and password. Username and password doesn't support multifactor authentication.
  • pac admin create-service-principal registers the app in Entra ID and adds it to the tenant, returning the tenant ID, application ID, client secret and expiry. The secret is shown once.
  • The application user needs a security role in each environment — System Administrator is the default, and solution checker specifically needs the prvAppendmsdyn_analysisjob privilege.
  • Both are free. You pay for Azure DevOps or GitHub, not the tasks.
  • GitHub Actions run on Windows and Linux runners. Build Tools are available in GCC and GCC High.
  • Solution checker output is a SARIF file, viewable in VS Code and Visual Studio.

When to use / skip

Go this way when the client already has an engineering practice — branch policies, pull requests, a build agent, someone who owns the YAML. It's the right answer for multi-tenant deployment, code components with a real build step, or anywhere the Power Platform work is one part of a wider release train. Skip it when the client's Power Platform team is three business analysts and a SharePoint list, because you'll build something correct that nobody can maintain after you leave. In-product pipelines exist precisely for that case, and extending them to call DevOps later is supported.

Configuration decisions

  • Azure DevOps or GitHub, which is usually decided by whatever the rest of the organisation already uses rather than by anything Power Platform specific.
  • Workload identity federation versus client secret, and if secrets, who owns rotation before they expire mid-release.
  • Pipeline shape — the common split is Initiate, Export from Dev, Build, and Release, with the build producing a managed artefact from source rather than exporting managed straight from dev.
  • Whether solution checker runs as a gate that blocks the build or as a warning, and at which stage.
  • How connection references and environment variables are populated, which in practice means a deployment settings file per environment held in source control.

Gotchas

  • Service principal secrets expire. The pipeline that has worked for a year fails on a Tuesday and nobody connects it to a credential set up during mobilisation. Diarise the expiry.
  • Being an owner of the app registration isn't the same as owning the enterprise application. Several Power Platform operations need the latter.
  • Lower-privilege security roles can't deploy plug-ins and other code components, so trimming the service principal's role tends to fail late in the pipeline rather than early.
  • Preview-era Power Apps Build Tools can't be upgraded in place. Moving to Power Platform Build Tools means new service connections and reworked pipelines.
  • Deployment settings files hold connection IDs that are specific to each target environment. They're environment configuration masquerading as source, and they drift.

Consultant notes

  • Establish who owns the pipeline after go-live before you build it. An unowned release pipeline degrades into manual solution imports within about six months.
  • Build the managed artefact from source control rather than exporting managed from the dev environment. It's the difference between source control being the source of truth and being a backup.
  • Price the DevOps setup separately and honestly. It's genuine engineering effort and it disappears if you fold it into a flow-building estimate.
  • Where the client is unsure, start with in-product pipelines and keep DevOps as the documented upgrade path. Fewer clients need full CI/CD than ask for it.

Worth revisiting when Build Tools 1.0 is finally retired, or if the authentication options change again.

Was this accurate?