Skip to content

TALXIS/tools-devkit-build

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TODO: Version nuspec dependnecy in GitHub Actions

Power Platform MSBuild Tasks

NuGet Version

Warning

This project is currently in a development phase and not ready for production use. While we actively use these tools internally, our aim is to share and collaborate with the broader community to refine and enhance their capabilities. We are in the process of gradually open-sourcing the code, removing internal dependencies to make it universally applicable. At this stage, it serves as a source of inspiration and a basis for collaboration. We welcome feedback, suggestions, and contributions through pull requests.

If wish to use this project for your team, please contact us at [email protected] for a personalized onboarding experience and customization to meet your specific needs.

Caution

Only modify the source code if you use standard platform customization capabilities. Manual changes might make the source source code invalid but still importable to Dataverse. In some situations, this could cause your environment to become irreversibly corrupted.

Goal

The primary objective of this NuGet package is to help Power Platform developers customize the MSBuild process (dotnet build) for their Dataverse solution components. Customizations are done using a set of build tasks which make development workflows more productive and automated.

Status

Supported functionality

The package currently supports a MSBuild Tasks aimed at extending the build process for Power Platform solutions with useful steps:

Solution Component Schema Validation

Ensures XML and JSON artifacts comply with expected schemas. Supported components can be found in the ValidationSchema folder. If your build fails and you belive it should be successful create an issue in this repository or send a PR with corrected definitions.

Version Number Generator

Generates version numbers based on Git commit history, applying these versions across various solution components including Solution XML, Plugin Assembly Metadata Files, Workflow Activity Groups, Workflow Files, and SdkMessageProcessingStep Files. See here for more details.

Build Number From Dependencies

Project dependency folders are analyzed for Git changes to be reflected in generated version numbers. See here for more details.

Getting Started

Tip

You can find demo steps for creating a new solution using PAC CLI and this package here.

Warning

You may have troubles building .cdsproj projects produced by PAC CLI. Also adding them to Visual Studio Solutins (.sln files) might not work. To work around this you can add the following property to your .cdsproj: <DefaultProjectTypeGuid>FAE04EC0-301F-11D3-BF4B-00C04F79EFBC</DefaultProjectTypeGuid>. Alternatively you can rename .cdsproj extension to .csproj and add Sdk="Microsoft.NET.Sdk" attribute to the Project element in your .csproj.

Configure defaults

Defaults can be set per project or per folder via Directory.Build.props file. For more information see here

<Project>
   <PropertyGroup>
      <ApplyToBranches>master:1;main:1;develop:2;pr/*:3</ApplyToBranches>
      <LocalBranchBuildVersionNumber>0.0.12345.0</LocalBranchBuildVersionNumber>
   </PropertyGroup>
</Project>

Using ready-made packages

For fastest setup, use TALXIS.DevKit.Build.Dataverse.Solution, TALXIS.DevKit.Build.Dataverse.Plugin and TALXIS.DevKit.Build.Dataverse.Pcf packages to replace the Microsoft.PowerApps.MSBuild.* packages and have everything already wired in (the version is locked to the latest known compatible version).

Using TALXIS.DevKit.Build.Dataverse.Tasks

You can use the raw targets to integrate with your existing setup. See here.

Using with CI/CD

This action should work in any cloud build environment, as long as you clone the entire Git repository with deep clone.

With GitHub actions:

- uses: actions/checkout@v2
  with:
    fetch-depth: 0

With Azure Pipelines:

- uses: actions/checkout@v2
  with:
    fetch-depth: 0

Collaboration

See Developing.

Work in progress

  • Solution Packaging: Facilitates the use of the PAC CLI for running the solution packager, simplifying the packaging process.
    • Currently provided by Microsoft.PowerApps.MSBuild.Solution package.

Contact us

For further information or to discuss potential use cases for your team, please reach out to us at [email protected].

About

Customize the build process of Power Platform projects with MSBuild tasks

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages