-
Notifications
You must be signed in to change notification settings - Fork 197
Build Infrastructure (v1 only)
Naren Soni edited this page Mar 20, 2020
·
1 revision
With the release of VS 2017 tooling we now have a single template consumed by 2 hosts (Portal and visual studio). Both hosts expect the template in different formats (class vs script). The template essentially has the same code but requires different artifacts to support both the hosts. I have updated the templates build and test infrastructure to address this and streamline the overall process to creating a template for both hosts. Here is a quick rundown of the updated process.
- Execute the dotnet templating engine (used by build for file transformation) to fetch the relevant part of the code file
- Apply Code formatter to properly indent the code
- Package the files as required by the dotnet templating engine (used by Visual Studio 2017)
- Individual Template
- Run.cs
- .template.config/template.json
- .template.config/vs-2017.3.host.json
- .template.config/vs-2017.3/function_f.png
- Individual Template
- Execute build for project template, this creates a NuGet package for Visual Studio project template
- AppVeyor executes this build on every commit. Publish the packages from AppVeyor at the time of release
- Visual Studio manually fetches these files at the moment but they are going to update so that it picks up the NuGet packages from a feed.
- Execute the dotnet templating engine (used by build for file transformation) to fetch the relevant part of the code file
- Apply Code formatter to properly indent the code
- Rename the all the code files .cs to .csx
- Package all the templates along with the templates additional artifacts required by the portal. Below is the list of files require by portal
- Individual Template
- Run.csx
- Metadata.json
- Sample file.dat
- Function.json
- Artifacts (common to all templates combined)
- Documentation
- Resources files
- Binding.json
- Individual Template
- Extract the package contents for use. This package will be directly integrated into the portal so extraction is not required.
- Portal’s template webjob executes the template build and copies the release bit for use.
- Additionally the solution also generates the files needed for testing the templates from portal.