-
Notifications
You must be signed in to change notification settings - Fork 198
Static templates infrastructure
These templates are directly consumed by the development tools outside of the context of bundles. They are either fetched directly from the tooling feed or are pre-packaged with the tools themselves. They also required manual extension installation. The flow chart shows how the template artifacts flow through the build and deployment infrastructure designed for templates. It is explained further in detail below:
Core tools ships with a copy of templates that work with that version of core tools. It has 2 types of template artifacts pre-packaged in the box. The steps below explain how the templates are built and deployed to core tools.
- Template devOps pipeline generates 2.x.x.zip or (3.x.x.zip) file and dotnet (pre-compiled) templates (itemTemplate.nupkg and projectTemplate.nupkg).
- Template release pipeline is used to deploy the 2.x.x.zip to the azure functions cdn. It also deploys the itemTemplate.nupkg and projectTemplate.nupkg to nuget.org
- NuGet package files are deployed to myGet and myGet staging for local development and OGF testing purpose before pushing them to Nuget.org
- The zip file version and the NuGet package version are hardcoded in the core tools build project. The core tools build downloads the templates.json and NuGet packages from their respective locations and includes them in the deployment packages.
Like Core tools, VS Code supports both dotnet (pre-compiled) and non-dotnet templates. The steps below explain how the templates are used by VS Code.
- Template devOps pipeline generates 2.x.x.zip file and dotnet (pre-compiled) templates (itemTemplate.nupkg and projectTemplate.nupkg).
- Template release pipeline is used to deploy the 2.x.x.zip to the azure functions cdn. It also deploys the itemTemplate.nupkg and projectTemplate.nupkg to nuget.org
- NuGet package files are deployed to myGet and myGet staging for local development and OGF testing purpose before pushing them to Nuget.org
- The "templateApi.zip" property of the tooling feed needs to be manually updated to the deployed version.
- The tooling feed dev ops build automatically fetches the latest version of item templates and project templates NuGet package versions and generates the tooling feed entries accordingly.
- Once the tooling feed is generated by the build, we need to manually update the tooling feed GitHub repo via PR.`
- Once tooling feed master branch has been updated with correct entries, we then go ahead and publish the updated tooling feed to CDN via the tooling feed devOps release.
- At the startup of VS Code, it automatically checks for the latest version templates and core tools published to tooling feed on CDN.
- Once it identifies a new release on the tooling feed, it automatically downloads and uses that for the function projects.
Visual studio only uses the dotnet (pre-compiled) templates.
- Template devOps pipeline generates dotnet (pre-compiled) templates (itemTemplate.nupkg and projectTemplate.nupkg).
- Template release pipeline is used to deploy the itemTemplate.nupkg and projectTemplate.nupkg to nuget.org
- NuGet package files are deployed to myGet and myGet staging for local development and OGF testing purpose before pushing them to Nuget.org
- The tooling feed dev ops build automatically fetches the latest version of item templates and project templates NuGet package versions and generates the tooling feed entries accordingly.
- Once the tooling feed is generated by the build, we need to manually update the tooling feed GitHub repo via PR.
- Once tooling feed master branch has been updated with correct entries, we then go ahead and publish the updated tooling feed to CDN via the tooling feed devOps release.
- At the startup of Visual Studio, it automatically checks for the latest version of templates and core tools published to tooling feed on CDN.
- Once it identifies a new release on the tooling feed, it automatically downloads and uses that for the function projects.
Portal only support non-precompiled and C# script templates. It gets all of the required template through ARM APIs. It does not support extension installation anymore. For v2/v3 portal only supports template via extension bundles as supporting templates outside of extension bundles would require extension installation.
- A set of default templates for v1, v2 and v3 are generated via template devOps build
- Default V2 and V3 templates only include http and timer trigger templates
- Template release pipeline is used to deploy the v1.x.zip , v2.x.zip and v3.x.zip templates to the azure functions CDN.
- Geo Master fetches the templates from a pre-defined location when requested by portal.