Skip to content
This repository was archived by the owner on Jan 5, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
7481638
First try for ci build.
Dec 5, 2019
0e7618c
Add var Parameters.solution
Dec 5, 2019
65d7422
Add second job 'Release-Windows'
Dec 5, 2019
37bb1b5
Fix CoverallsToken
Dec 5, 2019
82f3d2c
Hide CoverallsToken
Dec 5, 2019
360a3cb
Fix job names
Dec 5, 2019
fe3c0b0
Fix path to powershell script.
Dec 5, 2019
ad7e9f9
Add vr BotBuilderDll
Dec 5, 2019
c5ef05e
Add API validation steps
Dec 6, 2019
053c15b
Fix dependsOn
Dec 6, 2019
6eba30e
Add threads generator.
Dec 6, 2019
982a277
Pool reference added to job: generate_thread_variables
Dec 6, 2019
2ab7ba0
Fix generate_thread_variables
Dec 6, 2019
626573b
Fix ci-post-to-github-steps.yml
Dec 6, 2019
3b4c034
Debug matrix execution
Dec 6, 2019
36b71da
Fix generate_thread_variables
Dec 6, 2019
ba77843
Debug generate_threads.threads
Dec 6, 2019
49c83fd
Debug generate_thread_variables 2
Dec 6, 2019
7a6e836
Debug generate_thread_variables 3
Dec 6, 2019
e447deb
Debug generate_thread_variables 4
Dec 6, 2019
a0b292d
Now trying matrix
Dec 6, 2019
84cec4a
matrix fix?
Dec 6, 2019
aaaa684
matrix fix 2?
Dec 6, 2019
b5f2ed5
matrix attempt 5
Dec 6, 2019
4ac9f8e
matrix from scratch example
Dec 6, 2019
7ecdd86
Just the sample code
Dec 6, 2019
be2ee8f
delete dependency
Dec 6, 2019
dcbf19f
Add pool
Dec 6, 2019
e664322
Add pool to parent
Dec 6, 2019
124b61e
Substituting my matrix string...
Dec 6, 2019
a61bded
Fixed string!
Dec 6, 2019
7217ff2
generate_thread_variables fixed
Dec 6, 2019
2a375c5
Getting there with MULTIJOBS
Dec 7, 2019
8d70d25
Fix timeoutInMinutes
Dec 7, 2019
09e7d8d
Re-add template calls.
Dec 7, 2019
65e1c4d
Now with all jobs running.
Dec 7, 2019
bb24461
Replace deprecated CopyPublishBuildArtifacts
Dec 9, 2019
a5267cf
Add dir workspace to post-to-github stage
Dec 9, 2019
00bb236
Comments update.
Dec 9, 2019
47df87c
More comment updates.
Dec 9, 2019
3fc9f63
Comment change 3
Dec 10, 2019
35bd4d7
Comment change 5
Dec 10, 2019
c3cdc72
Comment change 6
Dec 10, 2019
00d1325
Add botbuilder-dotnet-ci-mac.yml
Dec 10, 2019
65f9c04
Set up var pool: vmImage: 'macOS-latest'
Dec 10, 2019
a06a36a
Change vmimage to macOS-10.14
Dec 10, 2019
4e42d1f
Change Parameters.solution to Microsoft.Bot.Builder-Standard.sln
Dec 10, 2019
b9f698f
Remove Parameters.solution
Dec 10, 2019
c5657c1
Cleanup
Dec 10, 2019
458c6d3
Comment fix.
Dec 10, 2019
2a68917
Add build tagging, update comments for signed build.
Dec 10, 2019
78ad6fa
Change build order.
Dec 10, 2019
efda626
Split out the test steps.
Dec 10, 2019
ea2102c
Cleanup
Dec 10, 2019
b6d601d
Merge branch 'master' into v-bruhal/yamlbuild1
Dec 10, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 18 additions & 9 deletions build/PublishToCoveralls.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Arguments example: -coverallsToken $(Coveralls.Token) -pathToCoverageFiles $(Build.SourcesDirectory)\CodeCoverage
#
Param(
[string]$coverallsToken,
[string]$coverallsToken = '', # This arg will display in the Azure pipeline log. To hide it, pass it as environment var CoverallsToken instead.
[string]$pathToCoverageFiles,
[string]$serviceName = 'Azure DevOps'
)
Expand All @@ -28,9 +28,15 @@ $analyzeArgs += $coverageFiles
Foreach ($i in $analyzeArgs) { Write-Host " $i" }
."$coverageAnalyzer" @analyzeArgs

# Get $coverallsToken from environment var
if ($coverallsToken -eq '') {
$coverallsToken = $Env:CoverallsToken;
}

Write-Host "Upload coverage [$coverageUploader] with args"
if (Test-Path env:System_PullRequest_SourceBranch) {
$branchName = $env:System_PullRequest_SourceBranch -replace "refs/heads/", "" }
$branchName = $env:System_PullRequest_SourceBranch -replace "refs/heads/", ""
}
$uploadArgs = @(
"--dynamiccodecoverage",
"-i ""$pathToCoverageFiles\coverage.coveragexml""",
Expand All @@ -45,17 +51,20 @@ $uploadArgs = @(
"--commitMessage ""$env:Build_SourceVersionMessage""",
"--serviceName ""$serviceName"""
);
if (Test-Path env:System_PullRequest_SourceBranch)
{
if (Test-Path env:System_PullRequest_SourceBranch) {
$uploadArgs += "--commitBranch ""$($env:System_PullRequest_SourceBranch -replace ""refs/heads/"", """")"""
}
else
{
else {
$uploadArgs += "--commitBranch ""$($env:Build_SourceBranch -replace ""refs/heads/"", """")"""
}
if (Test-Path env:System_PullRequest_PullRequestNumber)
{
if (Test-Path env:System_PullRequest_PullRequestNumber) {
$uploadArgs += "--pullRequest ""$env:System_PullRequest_PullRequestNumber"""
}
Foreach ($i in $uploadArgs) { Write-Host " $i" }
Foreach ($i in $uploadArgs) {
if (-not $i.StartsWith("--repoToken")) {
Write-Host " $i";
} else {
Write-Host " --repoToken ******";
}
}
Start-Process $coverageUploader -ArgumentList $uploadArgs -NoNewWindow
59 changes: 59 additions & 0 deletions build/yaml/botbuilder-dotnet-ci-mac.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#
# This YAML build definition replaces the classic BotBuilder-DotNet-master-CI-PR-(MacLinux)
#

# "name" here defines the build number format. Build number is accessed via $(Build.BuildNumber)
name: $(Build.BuildId)
variables:
BuildConfiguration: debug
#Parameters.solution: Microsoft.Bot.Builder-Standard.sln

pool:
vmImage: 'macOS-10.14'
steps:
- task: UseDotNet@2
displayName: 'Use .Net Core sdk 2.1.x'
inputs:
version: 2.1.x

- task: UseDotNet@2
displayName: 'Use .Net Core sdk 3.0.x'
inputs:
version: 3.0.x

- task: NuGetToolInstaller@0
displayName: 'Use NuGet 4.9.1'
inputs:
versionSpec: 4.9.1

- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: Microsoft.Bot.Builder-Standard.sln

- task: DotNetCoreCLI@2
displayName: 'dotnet build'
inputs:
projects: Microsoft.Bot.Builder.sln

- task: DotNetCoreCLI@2
displayName: 'dotnet test'
inputs:
command: test
projects: |
Tests/**/*Tests.csproj

arguments: '-v n --configuration $(BuildConfiguration) --no-build --no-restore --filter TestCategory!=IgnoreInAutomatedBuild --collect:"Code Coverage" --settings $(Build.SourcesDirectory)\CodeCoverage.runsettings'

- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: build folder'
inputs:
PathtoPublish: build
ArtifactName: build

- powershell: |
cd ..
ls -R
displayName: 'Dir workspace'
continueOnError: true
condition: succeededOrFailed()
81 changes: 81 additions & 0 deletions build/yaml/botbuilder-dotnet-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#
# This YAML build definition replaces the classic BotBuilder-DotNet-master-CI-PR
#

# "name" here defines the build number format. Build number is accessed via $(Build.BuildNumber)
name: $(Build.BuildId)
variables:
ApiCompatVersion: 4.6.3
BotBuilderDll: Microsoft.Bot.Builder.AI.Luis,Microsoft.Bot.Builder.AI.QnA,Microsoft.Bot.Builder.ApplicationInsights,Microsoft.Bot.Builder.Azure,Microsoft.Bot.Builder.Dialogs,Microsoft.Bot.Builder.Integration.ApplicationInsights.Core,Microsoft.Bot.Builder.Integration.AspNet.Core,Microsoft.Bot.Builder.TemplateManager,Microsoft.Bot.Builder.Testing,Microsoft.Bot.Builder,Microsoft.Bot.Configuration,Microsoft.Bot.Connector,Microsoft.Bot.Schema,Microsoft.Bot.Streaming
BuildConfiguration: Debug-Windows
BuildPlatform: any cpu
CoverallsToken: define this in Azure
GitHubCommentApiKey: define this in Azure
IsBuildServer: true # This is consumed by projects in Microsoft.Bot.Builder.sln.
Parameters.solution: Microsoft.Bot.Builder.sln
PreviewPackageVersion: 4.6.0-preview-$(Build.BuildNumber) # This is consumed by projects in Microsoft.Bot.Builder.sln.
ReleasePackageVersion: 4.6.0-preview-$(Build.BuildNumber) # This is consumed by projects in Microsoft.Bot.Builder.sln.
pool:
name: Hosted Windows 2019 with VS2019
demands:
- msbuild
- visualstudio

#The following 2 stages run multi-configuration, multi-agent parallel jobs
stages:
- stage: Build
jobs:
- job: Debug_Windows_Configuration
variables:
BuildConfiguration: Debug-Windows
steps:
- template: ci-build-steps.yml
- template: ci-test-steps.yml
- job: Release_Windows_Configuration
variables:
BuildConfiguration: Release-Windows
steps:
- template: ci-build-steps.yml
- template: ci-test-steps.yml

- stage: API_Compatibility_Validation
dependsOn: Build
jobs:
- job: generate_multijob_vars
steps:
- powershell: |
$multijobs = '{';

$env:BotBuilderDll.Split(",") | ForEach {
$library = $_.Trim()
Write-Host $library

$threadName = $library.Split(".")[-1];
$multijobs += "'" + $threadName + "':{'BotBuilderDll':'" + $library + "'}, ";
}
$multijobs = $multijobs.TrimEnd(' ').TrimEnd(',') + "}";
$multijobs

"##vso[task.setVariable variable=MULTIJOBS;isOutput=true]$multijobs"
name: generate_vars
- script: echo $(generate_vars.MULTIJOBS)

- job: check_api_for
dependsOn: generate_multijob_vars
timeoutInMinutes: 10
strategy:
maxParallel: 10
matrix: $[ dependencies.generate_multijob_vars.outputs['generate_vars.MULTIJOBS'] ]
steps:
- script: echo $(BotBuilderDll)
- template: ci-api-validation-steps.yml

- stage: Post_Results_to_GitHub
dependsOn: API_Compatibility_Validation
jobs:
- job: Post_to_GitHub
variables:
BuildConfiguration: Release-Windows
steps:
#- script: echo Executing this 3
- template: ci-post-to-github-steps.yml
59 changes: 59 additions & 0 deletions build/yaml/ci-api-validation-steps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
steps:
- task: DownloadPipelineArtifact@1
displayName: 'Download BotBuilderDLLs artifact'
inputs:
artifactName: 'BotBuilderDLLs-Debug-Windows'
targetPath: '$(System.ArtifactsDirectory)/Artifacts'

- task: NuGetCommand@2
displayName: 'NuGet Install of Compatability Target Package: $(BotBuilderDll)'
inputs:
command: custom
arguments: 'install $(BotBuilderDll) -Version $(ApiCompatVersion) -OutputDirectory $(System.DefaultWorkingDirectory)\DownloadedNuGet'

- task: CmdLine@1
displayName: 'Run dir'
inputs:
filename: dir
arguments: '..\*.* /s'
enabled: false

- task: SOUTHWORKS.binaries-comparer.custom-build-release-task.binaries-comparer@0
displayName: 'Compare Binaries'
inputs:
contractsRootFolder: 'DownloadedNuGet\$(BotBuilderDll).$(ApiCompatVersion)\lib\netstandard2.0'
contractsFileName: '$(BotBuilderDll).dll'
implFolder: '$(System.ArtifactsDirectory)/Artifacts'
failOnIssue: true
resolveFx: false
generateLog: true
outputFilename: '$(BotBuilderDll).$(ApiCompatVersion).CompatResults.txt'
outputFolder: '$(Build.ArtifactStagingDirectory)'
useBaseline: false

- powershell: |
$FileName = "$(Build.ArtifactStagingDirectory)\$(BotBuilderDll).$(ApiCompatVersion).CompatResults.txt"
$FileContent = @(Get-Content $FileName)

$FileContent[0] = $FileContent[0] + " compared against [version $(ApiCompatVersion)](https://www.nuget.org/packages/$(BotBuilderDll)/$(ApiCompatVersion))"

if ($FileContent.Length -eq 1) {
[system.io.file]::WriteAllText($fileName,$FileContent)
} else {
Set-Content $fileName $FileContent
}

Write-Host "The updated line 1: `n$FileContent[0]"
displayName: 'Insert nuget link into ApiCompat results file.'

- task: PublishBuildArtifacts@1
displayName: 'Publish Compat Results artifact'
inputs:
ArtifactName: '$(BotBuilderDll).$(ApiCompatVersion).CompatResults'

- script: |
cd ..
dir /s
displayName: 'Dir workspace'
continueOnError: true
condition: succeededOrFailed()
46 changes: 46 additions & 0 deletions build/yaml/ci-build-steps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
steps:
- powershell: 'gci env:* | sort-object name | Format-Table -AutoSize -Wrap'
displayName: 'Display env vars'

- task: UseDotNet@2
displayName: 'Use .Net Core sdk 2.1.x'
inputs:
version: 2.1.x

- task: UseDotNet@2
displayName: 'Use .Net Core sdk 3.0.x'
inputs:
version: 3.0.x

# Variables ReleasePackageVersion and PreviewPackageVersion are consumed by projects in Microsoft.Bot.Builder.sln.
# For the signed build, they should be settable at queue time. To set that up, define the variables in Azure on the Variables tab.
- task: colinsalmcorner.colinsalmcorner-buildtasks.tag-build-task.tagBuildOrRelease@0
displayName: 'Tag Build with PackageVersion'
inputs:
tags: 'Version=$(ReleasePackageVersion)'

- task: NuGetToolInstaller@0
displayName: 'Use NuGet 4.9.1'
inputs:
versionSpec: 4.9.1

- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: '$(Parameters.solution)'

- task: VSBuild@1
displayName: 'Build solution Microsoft.Bot.Builder.sln'
inputs:
solution: '$(Parameters.solution)'
vsVersion: 16.0
msbuildArgs: '-p:SignAssembly=false -p:delaySign=false'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'

- script: |
cd ..
dir *.* /s
displayName: 'Dir workspace'
continueOnError: true
condition: succeededOrFailed()
29 changes: 29 additions & 0 deletions build/yaml/ci-post-to-github-steps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
steps:
- task: DownloadBuildArtifacts@0
displayName: 'Download Compat Results artifact'
inputs:
downloadType: specific
itemPattern: '**\*.txt'
downloadPath: '$(System.ArtifactsDirectory)\ApiCompat'

- task: SOUTHWORKS.github-pr-comment.custom-publish-comment-task.github-pr-comment@0
displayName: 'Publish Compat Results to Github'
inputs:
userToken: '$(GitHubCommentApiKey)'
bodyFilePath: '$(System.ArtifactsDirectory)\ApiCompat'
getSubFolders: true

- task: Southworks-Pipelines-Test.github-pr-comment-multiple-files.custom-publish-comment-task.github-pr-comment-multiple-files@0
displayName: 'GitHub Comment Publisher -OLD'
inputs:
userToken: '$(GitHubCommentApiKey)'
bodyFilePath: '$(System.ArtifactsDirectory)\ApiCompat'
getSubFolders: true
enabled: false

- script: |
cd ..
dir /s
displayName: 'Dir workspace'
continueOnError: true
condition: succeededOrFailed()
Loading