Skip to content
This repository has been archived by the owner on Jun 30, 2022. It is now read-only.

Update docs with table of contents, styling, CI/CD tutorials #2691

Merged
merged 16 commits into from
Nov 13, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion docs/_data/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ Skills:
Solution Accelerators:
- Assistants
- Samples
- Enable continuous integration
- Enable continuous deployment
- Enable proactive notifications
- View analytics using Power BI
- View analytics with Power BI
Clients and Channels:
- Clients
- Channels
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
category: Skills
category: Archive
subcategory: Samples
language: Experimental Skills
title: Event Skill
Expand Down
4 changes: 2 additions & 2 deletions docs/_docs/overview/virtual-assistant-solution.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ Sample client applications are implementations of clients that will integrate se
{:.toc}

<div class="card-deck">
<a href="{{site.baseurl}}/virtual-assistant/tutorials/csharp/create-assistant/1-intro" class="card">
<a href="{{site.baseurl}}/virtual-assistant/tutorials/create-assistant/csharp/1-intro" class="card">
<div class="card-body">
<img src="{{site.baseurl}}/assets/images/icons/csharp.png" alt="C# icon" width="48px">
<h4 class="card-title no_toc">Create a Virtual Assistant</h4>
Expand All @@ -106,7 +106,7 @@ Sample client applications are implementations of clients that will integrate se
<div class="btn btn-primary">Get started</div>
</div>
</a>
<a href="{{site.baseurl}}/virtual-assistant/tutorials/typescript/create-assistant/1-intro" class="card">
<a href="{{site.baseurl}}/virtual-assistant/tutorials/create-assistant/typescript/1-intro" class="card">
<div class="card-body">
<img src="{{site.baseurl}}/assets/images/icons/typescript.png" alt="TypeScript icon" width="48px">
<h4 class="card-title no_toc">Create a Virtual Assistant</h4>
Expand Down
256 changes: 134 additions & 122 deletions docs/_docs/overview/virtual-assistant-template.md

Large diffs are not rendered by default.

6 changes: 0 additions & 6 deletions docs/_docs/overview/whats-new.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ At it's core is the [Virtual Assistant]({{site.baseurl}}/overview/virtual-assist
For more details on Virtual Assistant review [What is the Virtual Assistant Solution?]({{site.baseurl}}/overview/virtual-assistant-solution).

## Virtual Assistant components
{:.no_toc}

There are four major components within the Virtual Assistant:

Expand Down Expand Up @@ -80,11 +79,6 @@ Microsoft has also improved the conversations in many of the existing skills tha

Microsoft has released a new experimental skill focused on Hospitality scenarios allowing for experiences such as managing reservations, check out, and amenity requests. You can find more details on scenarios that this supports in the [Hospitality Skill documentation]({{site.baseurl}}/skills/samples/hospitality).

#### Event Skill (Experimental)
{:.no_toc}

Microsoft has released a new experimental skill focused on finding events from the popular platform [Eventbrite](http://www.eventbrite.com/). More details on scenarios that this supports can be found in the [Event Skill documentation]({{site.baseurl}}/skills/samples/event/).

#### IT Service Management (ITSM) Skill (Experimental)
{:.no_toc}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ The `--luisFolder` parameter can be used to point the Skill CLI at the source LU
botskills connect --botName YOUR_BOT_NAME --remoteManifest "http://<YOUR_SKILL_MANIFEST>.azurewebsites.net/api/skill/manifest" --luisFolder [path] --cs
```

See the [Skill CLI documentation]({{site.baseurl}}/reference/skills/botskills) for detailed CLI documentation.
See the [Skill CLI documentation]({{site.baseurl}}/help/reference/botskills) for detailed CLI documentation.

## Manual Authentication Connection configuration

Expand Down Expand Up @@ -82,7 +82,7 @@ botskills:
botskills disconnect --skillId SKILL_ID
```

> Note: The id of the Skill can also be aquired using the `botskills list` command. You can check the [Skill CLI documentation]({{site.baseurl}}/reference/skills/botskills) on this command.
> Note: The id of the Skill can also be aquired using the `botskills list` command. You can check the [Skill CLI documentation]({{site.baseurl}}/help/reference/botskills) on this command.

## Updating an existing Skill to reflect changes to Actions or LUIS model

Expand Down
18 changes: 0 additions & 18 deletions docs/_docs/skills/samples/experimental.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,24 +290,6 @@ This skill has a very limited LUIS model (available in English, French, Italian,
"BingAnswerSearchKey": "{YOUR_PROJECT_ANSWER_SEARCH_KEY}"
```

### Event Skill

The [Event Skill]({{site.repo}}/tree/master/skills/src/csharp/experimental/eventskill) provides a simple skill that integrates with [Eventbrite](https://www.eventbrite.com/platform/) to show information about events happening in the specified area.

This skill currently supports one scenario to get local event information.

![Event Example]({{site.baseurl}}/assets/images/skills-event-transcript.png)

#### Configuration
{:.no_toc}

1. Get your own [Eventbrite API Key](https://www.eventbrite.com/platform/api-keys).
1. Provide this value in your `appsettings.json` file.

```
"eventbriteKey": "YOUR_EVENTBRITE_API_KEY"
```

### Hospitality Skill

The [Hospitality Skill]({{site.repo}}/tree/master/skills/src/csharp/experimental/hospitalityskill) demonstrates experiences that would be useful in a hospitality specific scenario, such as being able to check out of a hotel, ordering room service, and requesting hotel amenities. This skill does not integrate a hotel service at this time, and is instead simulated with static data for testing purposes.
Expand Down
2 changes: 1 addition & 1 deletion docs/_docs/skills/tutorials/add-prebuilt-skill/1-intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ Install Bot Framework development prerequisites and add one of the Skills provid

### Scenario

Add one of the sample skills provided in the [Bot Framework Solutions GitHub repository]({{site.repo}}/skills/csharp) provide to your Virtual Assistant. The Skills are only available in C# at this time but these can be added to a Typescript based assistant.
Add any of the [sample Skills provided in the Bot Framework Solutions repository]({{site.repo}}/tree/next/skills/csharp) to your Virtual Assistant. The Skills are only available in C# at this time but these can be added to a Typescript based assistant.
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,6 @@ The majority of the skills connected to this sample are [experimental skills]({{
- *Tell me about the jurassic park movie*
- *Who is Bill Gates?*

#### [Event Skill]({{site.baseurl}}/skills/samples/event)
{:.no_toc}
##### Find local events
{:.no_toc}
- *What's happening nearby?*

#### [Hospitality Skill]({{site.baseurl}}/skills/samples/hospitality)
{:.no_toc}
##### Guest reservation changes
Expand Down Expand Up @@ -85,7 +79,6 @@ To configure this sample follow the steps below:
1. Follow the [Create your Virtual Assistant tutorial]({{site.baseurl}}/virtual-assistant/tutorials/create-assistant/csharp/1-intro/) to deploy your assistant. Use the sample project you cloned instead of the Virtual Assistant template to include the hospitality customizations in this project.
1. Clone the following skills from our repository:
- [Hospitality Skill]({{site.repo}}/tree/next/skills/csharp/experimental/hospitalityskill)
- [Event Skill]({{site.repo}}/tree/next/skills//csharp/experimental/eventskill)
- [Point of Interest Skill]({{site.repo}}/tree/next/skills/csharp/pointofinterestskill)
- [Weather Skill]({{site.repo}}/tree/next/skills/csharp/experimental/weatherskill)
- [Bing Search Skill]({{site.repo}}/tree/next/skills/csharp/experimental/bingsearchskill)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
layout: tutorial
category: Solution Accelerators
subcategory: Enable continuous deployment
title: Intro
order: 1
---

# Tutorial: {{page.subcategory}}

## {{ page.title }}
{:.no_toc}

### Purpose
To run a release pipeline, you must generate an artifact based on a recent build. But what is an artifact? IT's a compressed version of the project or solution which contains all of the necessary information to create the base of a release pipeline configuration.

### Prerequisites
- Enable continuous integration by creating a build pipeline with either:
- [C# resources]({{site.baseurl}}/solution-accelerators/tutorials/enable-continuous-integration/csharp/1-intro/)
- [Typescript resources]({{site.baseurl}}/solution-accelerators/tutorials/enable-continuous-integration/typescript/1-intro/)

### Time To Complete
15 minutes

### Scenario
A personalized release pipeline in **Azure DevOps**. This tutorial is based on a sample Virtual Assistant in the [Bot Framework Solutions repository]({{site.repo}}).
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
layout: tutorial
category: Solution Accelerators
subcategory: Enable continuous deployment
title: Create a release pipeline
order: 2
---

# Tutorial: {{page.subcategory}}

## {{ page.title }}
{:.no_toc}

1. Visit your **Azure DevOps** team, select **Releases**, then **New** > **New release pipeline**.
![Create Release Pipeline 1]({{site.baseurl}}/assets/images/create_release_pipeline_1.png)

1. Select the option to add an artifact, this will show different options to manage the configuration like:
- Project
- Name
- Specific artifact (*Note: you can only select one after a build pipeline has been successfully executed)
![Create Release Pipeline 2]({{site.baseurl}}/assets/images/create_release_pipeline_2.png)

1. After the artifact is selected, configure the deployment stage.
![Create Release Pipeline 3]({{site.baseurl}}/assets/images/create_release_pipeline_3.png)

1. In this case to verify the functionality of release configuration, we added an example task to check if the release configuration works without problems and verify the artifact configuration was compressed successfully in the build pipeline with the project information.
![Create Release Pipeline 4]({{site.baseurl}}/assets/images/create_release_pipeline_4.png)

1. Select **Create new release**, verify that the correct stage and artifact will be run and select **Create**.
![Create Release Pipeline 5]({{site.baseurl}}/assets/images/create_release_pipeline_5.png)

1. After the release is executed, check the log of each task added to the Agent Job. This will show you if any tasks run into warnings or errors.
![Create Release Pipeline 6]({{site.baseurl}}/assets/images/create_release_pipeline_6.png)
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
---
layout: tutorial
category: Solution Accelerators
subcategory: Enable continuous deployment
title: Configure the pipeline to update bot services
order: 3
---

# Tutorial: {{page.subcategory}}

## {{ page.title }}
{:.no_toc}

1. First add variables that will be used to connect your project to the bot resources. In the sample screenshot, the highlighted variables are from the `az login` command and the others are used to fill **cognitivemodels.json** In order.
![Configure Release Pipeline 1]({{site.baseurl}}/assets/images/configure_release_pipeline_1.png)

1. Create a **Powershell** task that logs into your Azure account using the [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest).
```node
az login --user $(botUsername) --password $(botPassword) --tenant $(botTenant)
```
![Configure Release Pipeline 2]({{site.baseurl}}/assets/images/configure_release_pipeline_2.png)

1. Create a **Powershell** task that installs the required dependencies to update bot services.
```node
npm install -g botdispatch ludown luis-apis qnamaker luisgen@2.0.2
```
![Configure Release Pipeline 3]({{site.baseurl}}/assets/images/configure_release_pipeline_3.png)

1. Create an **Azure Powershell** task that checks if the resource group exists before running the next command.
```pwsh
Get-AzureRmResourceGroup -Name $(ResourceGroup) -ErrorVariable notPresent -ErrorAction SilentlyContinue

if ($notPresent)
{
Write-Host "ResourceGroup $(ResourceGroup) doesn't exist"
}
else
{
Write-Host "ResourceGroup $(ResourceGroup) exists."
}
```
![Configure Release Pipeline 4]({{site.baseurl}}/assets/images/configure_release_pipeline_4.png)

1. To avoid uploading sensitive keys into the logs, use variable groups to fill in the **Update cognitive models** task. This replaces the configuration of the **cognitivemodels.json** stored in teh artifact configuration. VATest is the example name of the folder that the artifact is located.
```pwsh
Set-Content -Path "$(System.DefaultWorkingDirectory)/$(Release.PrimaryArtifactSourceAlias)/drop/VATest/cognitivemodels.json" -Value '{
"cognitiveModels": {
"en": {
"dispatchModel": {
"subscriptionkey": "$(SubscriptionKey)",
"type": "dispatch",
"region": "$(Region)",
"authoringRegion": "$(AuthoringRegion)",
"appid": "$(AppId)",
"authoringkey": "$(LuisAuthoringKey)",
"name": "$(BotName)_Dispatch"
},
"languageModels": [
{
"region": "$(Region)",
"id": "General",
"name": "$(botName)_General",
"authoringRegion": "$(AuthoringRegion)",
"authoringkey": "$(LuisAuthoringKey)",
"appid": "$(AppIdLanguageModels)",
"subscriptionkey": "$(SubscriptionKey)",
"version": "0.1"
}
],
"knowledgebases": [
{
"kbId": "$(KbIdChitchat)",
"id": "Chitchat",
"subscriptionKey": "$(SubscriptionKeyKb)",
"hostname": "$(hostname)",
"endpointKey": "$(endpointKey)",
"name": "Chitchat"
},
{
"kbId": "$(KbIdFaq)",
"id": "Faq",
"subscriptionKey": "$(SubscriptionKeyKb)",
"hostname": "$(hostname)",
"endpointKey": "$(endpointKey)",
"name": "Faq"
}
]
}
},
"defaultLocale": "en-us"
}' | ConvertFrom-Json
```
![Configure Release Pipeline 5]({{site.baseurl}}/assets/images/configure_release_pipeline_5.png)

1. Finally, the **Run update cognitive models script** task runs the following script to update the Bot Services
```
pwsh.exe -ExecutionPolicy Bypass -File $(System.DefaultWorkingDirectory)/csharp-Virtual-Assistant-Sample/drop/VATest/Deployment/Scripts/update_cognitive_models.ps1
```
![Configure Release Pipeline 6]({{site.baseurl}}/assets/images/configure_release_pipeline_6.png)
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
layout: tutorial
category: Solution Accelerators
subcategory: Enable continuous deployment
title: Next steps
order: 4
---

# Tutorial: {{page.subcategory}}

## {{ page.title }}
{:.no_toc}

<div class="card-deck">
<a href="https://docs.microsoft.com/en-us/azure/devops/pipelines/release/?view=azure-devops" class="card">
<div class="card-body">
<h4 class="card-title">What are release pipelines?</h4>
<p class="card-text">Release pipelines in Azure Pipelines help your team continuously deliver software to your customers at a faster pace and with lower risk</p>
</div>
<div class="card-footer">
<div class="btn btn-primary">Learn more</div>
</div>
</a>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
layout: tutorial
category: Solution Accelerators
subcategory: Enable continuous integration
title: Intro
language: C#
order: 1
---

# Tutorial: {{page.subcategory}} ({{page.language}})

## {{ page.title }}
{:.no_toc}

### Purpose
Learn how to create a build pipeline on **Azure DevOps** using a **YAML** file as configuration, as it's an easy way to configure one or many specific branches with an existing **YAML** or creating a new one. You can add different scripts using the tools of **Azure Pipelines** or manually write the different tasks your build pipeline needs to execute.

### Prerequisites
- [Sign up for Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/user-guide/sign-up-invite-teammates?view=azure-devops).
- Select a project to create a build pipeline for either:
- [Create a Virtual Assistant]({{site.baseurl}}/virtual-assistant/tutorials/create-assistant/csharp/1-intro)
- [Create a Skill]({{site.baseurl}}/skills/tutorials/create-skill/csharp/1-intro)
- Create a repository for you to host your source code.

### Time To Complete
15 minutes

### Scenario
A personalized build pipeline in **Azure DevOps** usign a **YAML** file. This tutorial is based on a sample Virtual Assistant in the [Bot Framework Solutions repository]({{site.repo}}).
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
layout: tutorial
category: Solution Accelerators
subcategory: Enable continuous integration
title: Add Coverlet to the project
language: C#
order: 2
---

# Tutorial: {{page.subcategory}} ({{page.language}})

## {{ page.title }}
{:.no_toc}

First add **Coverlet** package (named **coverlet.msbuild**) to your project. This will enable the **Code Coverage** report to show in your build pipeline.

1. In **Visual Studio**, open your project that needs the **Coverlet** package.

1. Go to **Tools** > **NuGet Package Manager** > Manage NuGet Packages for Solution...**
![Manage NuGet Packages for Solution]({{site.baseurl}}/assets/images/tools.png)

1. Select **Browse** and search for **Coverlet**, installing the **coverlet.msbuild** package to your project.
![Add NuGet Package]({{site.baseurl}}/assets/images/add-nuget.png)

1. Build the solution and **Coverlet** will be added as a dependency in the project

1.
Loading