-
Notifications
You must be signed in to change notification settings - Fork 6
Description
There are plenty of other build tools in the .NET ecosystem that are used to manage dependencies and coordinate the build. Examples are Nuke, cake, or fake. Building projects that use these build tools is currently not working with buildpack out of the box and I have also not found documentation to adapt this via project configuration.
Describe the Enhancement
Detect the build tool by their tool configuration and the location of their configuration file/directories:
- .config/dotnet-tools.json contains usually one of the build tools
- Nuke jsonpath: 'tools."nuke.globaltool"'
- Cake jsonpath: 'tools.
- Fake jsonpath: 'tools.fake-cli'
- nuke (repo contains a folder configuring nuke. default _nuke)
- cake (repo contains a folder configuring cake. default build.cake)
- fake (repo contains a file build.fsx / build.fsproj)
- repo contain a script called build.cmd or build.sh
- often used by the chosen CI/CD solution to execute the build
- sometimes add additional nuget sources
Execute the build using the configured build tool of the repo.
Possible Solution
I see several possibilities to do this:
- Detect the different build tools and execute these instead of dotnet workflow, or
- Add a build pack configuration variable that allows to override the dotnet workflow with a build script.
Option 1. has the advantage that it will be easier to map to the buildpack work flow and the understanding of the different DSLs used by the build tools gives indication whether what libraries and binaries exist.
Option 2 is a very simple solution, but comes at the cost that the BP user might need to adapt their script targets to what the BP actually needs.
Motivation
There are a lot of complex C# projects that use the more advanced DSL of the build tools above to build and package their project. Adding the support for this to the BP is important for a lot of .NET users.