Compare commits
26 commits
main
...
dev/miniks
Author | SHA1 | Date | |
---|---|---|---|
f1871455ee | |||
544dade1c2 | |||
a7aeb1cee3 | |||
f2b6d98b25 | |||
0c3585750e | |||
c4bf1a59cf | |||
91a6245639 | |||
2d113f5dd5 | |||
19cdf31988 | |||
a473cf2898 | |||
7c47d4b5f8 | |||
0b5e9a4438 | |||
2cc77772b2 | |||
e2be021601 | |||
8dbe3009c2 | |||
8b14ec582a | |||
06910d5aa7 | |||
e7cbeac551 | |||
702780d1b9 | |||
cdc0e240f6 | |||
5378091939 | |||
1bd54fa13d | |||
56009cd99d | |||
801f0668d4 | |||
d7dddf4cdd | |||
940560ab9e |
|
@ -20,13 +20,31 @@ function Generate-File-Links
|
||||||
Out-File -FilePath $helixLinkFile -Append -InputObject "<ul>"
|
Out-File -FilePath $helixLinkFile -Append -InputObject "<ul>"
|
||||||
foreach($file in $files)
|
foreach($file in $files)
|
||||||
{
|
{
|
||||||
Out-File -FilePath $helixLinkFile -Append -InputObject "<li><a href=$($file.Link)>$($file.Name)</a></li>"
|
$url = Append-HelixAccessTokenToUrl $file.Link "{Your-Helix-Access-Token-Here}"
|
||||||
|
Out-File -FilePath $helixLinkFile -Append -InputObject "<li>$($url)</li>"
|
||||||
}
|
}
|
||||||
Out-File -FilePath $helixLinkFile -Append -InputObject "</ul>"
|
Out-File -FilePath $helixLinkFile -Append -InputObject "</ul>"
|
||||||
Out-File -FilePath $helixLinkFile -Append -InputObject "</div>"
|
Out-File -FilePath $helixLinkFile -Append -InputObject "</div>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Append-HelixAccessTokenToUrl
|
||||||
|
{
|
||||||
|
Param ([string]$url, [string]$token)
|
||||||
|
if($token)
|
||||||
|
{
|
||||||
|
if($url.Contains("?"))
|
||||||
|
{
|
||||||
|
$url = "$($url)&access_token=$($token)"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$url = "$($url)?access_token=$($token)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $url
|
||||||
|
}
|
||||||
|
|
||||||
#Create output directory
|
#Create output directory
|
||||||
New-Item $OutputFolder -ItemType Directory
|
New-Item $OutputFolder -ItemType Directory
|
||||||
|
|
||||||
|
@ -63,7 +81,8 @@ foreach ($testRun in $testRuns.value)
|
||||||
if (-not $workItems.Contains($workItem))
|
if (-not $workItems.Contains($workItem))
|
||||||
{
|
{
|
||||||
$workItems.Add($workItem)
|
$workItems.Add($workItem)
|
||||||
$filesQueryUri = "https://helix.dot.net/api/2019-06-17/jobs/$helixJobId/workitems/$helixWorkItemName/files$accessTokenParam"
|
$filesQueryUri = "https://helix.dot.net/api/2019-06-17/jobs/$helixJobId/workitems/$helixWorkItemName/files"
|
||||||
|
$filesQueryUri = Append-HelixAccessTokenToUrl $filesQueryUri $helixAccessToken
|
||||||
$files = Invoke-RestMethodWithRetries $filesQueryUri
|
$files = Invoke-RestMethodWithRetries $filesQueryUri
|
||||||
|
|
||||||
$screenShots = $files | where { $_.Name.EndsWith(".jpg") }
|
$screenShots = $files | where { $_.Name.EndsWith(".jpg") }
|
||||||
|
@ -102,6 +121,7 @@ foreach ($testRun in $testRuns.value)
|
||||||
|
|
||||||
Write-Host "Downloading $link to $destination"
|
Write-Host "Downloading $link to $destination"
|
||||||
|
|
||||||
|
$link = Append-HelixAccessTokenToUrl $link $HelixAccessToken
|
||||||
Download-FileWithRetries $link $destination
|
Download-FileWithRetries $link $destination
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,9 @@ pr: none
|
||||||
|
|
||||||
pool:
|
pool:
|
||||||
name: WinDevPool-L
|
name: WinDevPool-L
|
||||||
demands: ImageOverride -equals WinDevVS16-latest
|
demands:
|
||||||
|
- ImageOverride -equals WinDevVS16-latest
|
||||||
|
- ImageVersionOverride -equals 2.0.0
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
- name: branding
|
- name: branding
|
||||||
|
@ -17,7 +19,7 @@ parameters:
|
||||||
- name: buildTerminal
|
- name: buildTerminal
|
||||||
displayName: "Build Windows Terminal MSIX"
|
displayName: "Build Windows Terminal MSIX"
|
||||||
type: boolean
|
type: boolean
|
||||||
default: true
|
default: false
|
||||||
- name: buildTerminalVPack
|
- name: buildTerminalVPack
|
||||||
displayName: "Build Windows Terminal VPack"
|
displayName: "Build Windows Terminal VPack"
|
||||||
type: boolean
|
type: boolean
|
||||||
|
@ -29,7 +31,7 @@ parameters:
|
||||||
- name: pgoBuildMode
|
- name: pgoBuildMode
|
||||||
displayName: "PGO Build Mode"
|
displayName: "PGO Build Mode"
|
||||||
type: string
|
type: string
|
||||||
default: Optimize
|
default: None
|
||||||
values:
|
values:
|
||||||
- Optimize
|
- Optimize
|
||||||
- Instrument
|
- Instrument
|
||||||
|
@ -43,8 +45,8 @@ parameters:
|
||||||
type: object
|
type: object
|
||||||
default:
|
default:
|
||||||
- x64
|
- x64
|
||||||
- x86
|
# - x86
|
||||||
- arm64
|
# - arm64
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
TerminalInternalPackageVersion: "0.0.7"
|
TerminalInternalPackageVersion: "0.0.7"
|
||||||
|
@ -66,6 +68,7 @@ jobs:
|
||||||
BuildPlatform: ${{ platform }}
|
BuildPlatform: ${{ platform }}
|
||||||
displayName: Build
|
displayName: Build
|
||||||
cancelTimeoutInMinutes: 1
|
cancelTimeoutInMinutes: 1
|
||||||
|
condition: false
|
||||||
steps:
|
steps:
|
||||||
- checkout: self
|
- checkout: self
|
||||||
clean: true
|
clean: true
|
||||||
|
@ -265,6 +268,95 @@ jobs:
|
||||||
IndexSources: false
|
IndexSources: false
|
||||||
SymbolServerType: TeamServices
|
SymbolServerType: TeamServices
|
||||||
|
|
||||||
|
- job: ComplianceTasks
|
||||||
|
displayName: Validate security and compliance
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
#dependsOn: Build
|
||||||
|
steps:
|
||||||
|
- checkout: self
|
||||||
|
fetchDepth: 1
|
||||||
|
clean: true
|
||||||
|
submodules: true
|
||||||
|
persistCredentials: True
|
||||||
|
- task: PkgESSetupBuild@12
|
||||||
|
displayName: 'Package ES - Setup Build'
|
||||||
|
|
||||||
|
- task: NuGetAuthenticate@0
|
||||||
|
|
||||||
|
# 1ES Component Governance onboarding (Detects open source components). See https://docs.opensource.microsoft.com/tools/cg.html
|
||||||
|
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||||
|
displayName: Component Detection
|
||||||
|
|
||||||
|
# PREfast. See https://www.1eswiki.com/wiki/SDL_Native_Rules_Build_Task
|
||||||
|
- task: securedevelopmentteam.vss-secure-development-tools.build-task-prefast.SDLNativeRules@2
|
||||||
|
displayName: 'Run the PREfast SDL Native Rules for MSBuild'
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
|
||||||
|
# Copies output from PREfast SDL Native Rules task to expected location for consumption by PkgESSecComp
|
||||||
|
- task: CopyFiles@1
|
||||||
|
displayName: 'Copy PREfast xml files to SDLNativeRulesDir'
|
||||||
|
inputs:
|
||||||
|
SourceFolder: '$(Agent.BuildDirectory)'
|
||||||
|
Contents: |
|
||||||
|
**\*.nativecodeanalysis.xml
|
||||||
|
TargetFolder: '$(Agent.BuildDirectory)\_sdt\logs\SDLNativeRules'
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Build Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: appx-x64-Release
|
||||||
|
downloadPath: $(System.ArtifactsDirectory)
|
||||||
|
buildType: 'specific'
|
||||||
|
project: $(System.TeamProjectId)
|
||||||
|
pipeline: 70913
|
||||||
|
buildVersionToDownload: 'specific'
|
||||||
|
buildId: 37520569
|
||||||
|
- task: ExtractFiles@1
|
||||||
|
inputs:
|
||||||
|
archiveFilePatterns: '$(System.ArtifactsDirectory)\**\CascadiaPackage*.msix'
|
||||||
|
cleanDestinationFolder: true
|
||||||
|
overwriteExistingFiles: true
|
||||||
|
destinationFolder: $(Build.BinariesDirectory)
|
||||||
|
- task: ExtractFiles@1
|
||||||
|
inputs:
|
||||||
|
archiveFilePatterns: '$(System.ArtifactsDirectory)\**\CascadiaPackage*.appxsym'
|
||||||
|
cleanDestinationFolder: false
|
||||||
|
overwriteExistingFiles: true
|
||||||
|
destinationFolder: $(Build.BinariesDirectory)
|
||||||
|
# Set XES_SERIALPOSTBUILDREADY to run Security and Compliance task once per build
|
||||||
|
- powershell: Write-Host “##vso[task.setvariable variable=XES_SERIALPOSTBUILDREADY;]true”
|
||||||
|
displayName: 'Set XES_SERIALPOSTBUILDREADY Vars'
|
||||||
|
- task: PkgESSecComp@10
|
||||||
|
displayName: 'Security and Compliance tasks'
|
||||||
|
inputs:
|
||||||
|
fileNewBugs: false
|
||||||
|
areaPath: 'OS\WDX\DXP\WinDev\Terminal'
|
||||||
|
teamProject: 'OS'
|
||||||
|
iterationPath: 'OS\Future'
|
||||||
|
bugTags: 'TerminalReleaseCompliance'
|
||||||
|
scanAll: true
|
||||||
|
errOnBugs: false
|
||||||
|
failOnStdErr: true
|
||||||
|
taskLogVerbosity: Diagnostic
|
||||||
|
secCompConfigFromTask: |
|
||||||
|
# Overrides default build sources directory
|
||||||
|
sourceTargetOverrideAll: $(Build.SourcesDirectory)
|
||||||
|
# Overrides default build binaries directory when "Scan all" option is specified
|
||||||
|
binariesTargetOverrideAll: $(Build.BinariesDirectory)
|
||||||
|
|
||||||
|
# Set the tools to false if they should not run in the build
|
||||||
|
tools:
|
||||||
|
- toolName: CheckCFlags
|
||||||
|
enable: true
|
||||||
|
- toolName: CFGCheck
|
||||||
|
enable: true
|
||||||
|
- toolName: Policheck
|
||||||
|
enable: false
|
||||||
|
- toolName: CredScan
|
||||||
|
enable: false
|
||||||
|
- toolName: XFGCheck
|
||||||
|
enable: false
|
||||||
|
|
||||||
- ${{ if eq(parameters.buildTerminal, true) }}:
|
- ${{ if eq(parameters.buildTerminal, true) }}:
|
||||||
- job: BundleAndSign
|
- job: BundleAndSign
|
||||||
displayName: Create and sign AppX/MSIX bundles
|
displayName: Create and sign AppX/MSIX bundles
|
||||||
|
|
|
@ -22,6 +22,7 @@ jobs:
|
||||||
condition: succeededOrFailed()
|
condition: succeededOrFailed()
|
||||||
env:
|
env:
|
||||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||||
|
HelixAccessToken: $(HelixApiAccessToken)
|
||||||
inputs:
|
inputs:
|
||||||
targetType: filePath
|
targetType: filePath
|
||||||
filePath: build\Helix\UpdateUnreliableTests.ps1
|
filePath: build\Helix\UpdateUnreliableTests.ps1
|
||||||
|
@ -32,6 +33,7 @@ jobs:
|
||||||
condition: succeededOrFailed()
|
condition: succeededOrFailed()
|
||||||
env:
|
env:
|
||||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||||
|
HelixAccessToken: $(HelixApiAccessToken)
|
||||||
inputs:
|
inputs:
|
||||||
targetType: filePath
|
targetType: filePath
|
||||||
filePath: build\Helix\OutputTestResults.ps1
|
filePath: build\Helix\OutputTestResults.ps1
|
||||||
|
|
|
@ -15,6 +15,7 @@ parameters:
|
||||||
# if 'useBuildOutputFromBuildId' is set, we will default to using a build from this pipeline:
|
# if 'useBuildOutputFromBuildId' is set, we will default to using a build from this pipeline:
|
||||||
useBuildOutputFromPipeline: $(System.DefinitionId)
|
useBuildOutputFromPipeline: $(System.DefinitionId)
|
||||||
openHelixTargetQueues: 'windows.10.amd64.client19h1.open.xaml'
|
openHelixTargetQueues: 'windows.10.amd64.client19h1.open.xaml'
|
||||||
|
closedHelixTargetQueues: 'windows.10.amd64.client19h1.xaml'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- job: ${{ parameters.name }}
|
- job: ${{ parameters.name }}
|
||||||
|
@ -29,11 +30,11 @@ jobs:
|
||||||
buildConfiguration: ${{ parameters.configuration }}
|
buildConfiguration: ${{ parameters.configuration }}
|
||||||
buildPlatform: ${{ parameters.platform }}
|
buildPlatform: ${{ parameters.platform }}
|
||||||
openHelixTargetQueues: ${{ parameters.openHelixTargetQueues }}
|
openHelixTargetQueues: ${{ parameters.openHelixTargetQueues }}
|
||||||
|
closedHelixTargetQueues: ${{ parameters.closedHelixTargetQueues }}
|
||||||
artifactsDir: $(Build.SourcesDirectory)\Artifacts
|
artifactsDir: $(Build.SourcesDirectory)\Artifacts
|
||||||
taefPath: $(Build.SourcesDirectory)\build\Helix\packages\Microsoft.Taef.10.60.210621002\build\Binaries\$(buildPlatform)
|
taefPath: $(Build.SourcesDirectory)\build\Helix\packages\Microsoft.Taef.10.60.210621002\build\Binaries\$(buildPlatform)
|
||||||
helixCommonArgs: '/binaryLogger:$(Build.SourcesDirectory)/${{parameters.name}}.$(buildPlatform).$(buildConfiguration).binlog /p:HelixBuild=$(Build.BuildId).$(buildPlatform).$(buildConfiguration) /p:Platform=$(buildPlatform) /p:Configuration=$(buildConfiguration) /p:HelixType=${{parameters.helixType}} /p:TestSuite=${{parameters.testSuite}} /p:ProjFilesPath=$(Build.ArtifactStagingDirectory) /p:rerunPassesRequiredToAvoidFailure=${{parameters.rerunPassesRequiredToAvoidFailure}}'
|
helixCommonArgs: '/binaryLogger:$(Build.SourcesDirectory)/${{parameters.name}}.$(buildPlatform).$(buildConfiguration).binlog /p:HelixBuild=$(Build.BuildId).$(buildPlatform).$(buildConfiguration) /p:Platform=$(buildPlatform) /p:Configuration=$(buildConfiguration) /p:HelixType=${{parameters.helixType}} /p:TestSuite=${{parameters.testSuite}} /p:ProjFilesPath=$(Build.ArtifactStagingDirectory) /p:rerunPassesRequiredToAvoidFailure=${{parameters.rerunPassesRequiredToAvoidFailure}}'
|
||||||
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- task: CmdLine@1
|
- task: CmdLine@1
|
||||||
displayName: 'Display build machine environment variables'
|
displayName: 'Display build machine environment variables'
|
||||||
|
@ -140,6 +141,7 @@ jobs:
|
||||||
|
|
||||||
- task: DotNetCoreCLI@2
|
- task: DotNetCoreCLI@2
|
||||||
displayName: 'Run tests in Helix (open queues)'
|
displayName: 'Run tests in Helix (open queues)'
|
||||||
|
condition: and(succeeded(),eq(variables['System.CollectionUri'],'https://dev.azure.com/ms/'))
|
||||||
env:
|
env:
|
||||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||||
inputs:
|
inputs:
|
||||||
|
@ -147,3 +149,15 @@ jobs:
|
||||||
projects: build\Helix\RunTestsInHelix.proj
|
projects: build\Helix\RunTestsInHelix.proj
|
||||||
custom: msbuild
|
custom: msbuild
|
||||||
arguments: '$(helixCommonArgs) /p:IsExternal=true /p:Creator=Terminal /p:HelixTargetQueues=$(openHelixTargetQueues)'
|
arguments: '$(helixCommonArgs) /p:IsExternal=true /p:Creator=Terminal /p:HelixTargetQueues=$(openHelixTargetQueues)'
|
||||||
|
|
||||||
|
- task: DotNetCoreCLI@2
|
||||||
|
displayName: 'Run tests in Helix (closed queues)'
|
||||||
|
condition: and(succeeded(),ne(variables['System.CollectionUri'],'https://dev.azure.com/ms/'))
|
||||||
|
env:
|
||||||
|
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||||
|
HelixAccessToken: $(HelixApiAccessToken)
|
||||||
|
inputs:
|
||||||
|
command: custom
|
||||||
|
projects: build\Helix\RunTestsInHelix.proj
|
||||||
|
custom: msbuild
|
||||||
|
arguments: '$(helixCommonArgs) /p:HelixTargetQueues=$(closedHelixTargetQueues)'
|
||||||
|
|
|
@ -20,11 +20,15 @@ jobs:
|
||||||
inputs:
|
inputs:
|
||||||
artifactName: ${{ parameters.pgoArtifact }}
|
artifactName: ${{ parameters.pgoArtifact }}
|
||||||
downloadPath: $(artifactsPath)
|
downloadPath: $(artifactsPath)
|
||||||
|
|
||||||
- task: NuGetToolInstaller@0
|
- task: NuGetAuthenticate@0
|
||||||
displayName: 'Use NuGet 5.2.0'
|
|
||||||
inputs:
|
inputs:
|
||||||
versionSpec: 5.2.0
|
nuGetServiceConnections: 'Terminal Public Artifact Feed'
|
||||||
|
|
||||||
|
- task: NuGetToolInstaller@0
|
||||||
|
displayName: 'Use NuGet 5.8.0'
|
||||||
|
inputs:
|
||||||
|
versionSpec: 5.8.0
|
||||||
|
|
||||||
- task: CopyFiles@2
|
- task: CopyFiles@2
|
||||||
displayName: 'Copy pgd files to NuGet build directory'
|
displayName: 'Copy pgd files to NuGet build directory'
|
||||||
|
@ -58,5 +62,11 @@ jobs:
|
||||||
displayName: 'NuGet push'
|
displayName: 'NuGet push'
|
||||||
inputs:
|
inputs:
|
||||||
command: push
|
command: push
|
||||||
publishVstsFeed: Terminal/TerminalDependencies
|
nuGetFeedType: external
|
||||||
packagesToPush: $(Build.ArtifactStagingDirectory)/*.nupkg
|
packagesToPush: $(Build.ArtifactStagingDirectory)/*.nupkg
|
||||||
|
# The actual URL and PAT for this feed is configured at
|
||||||
|
# https://microsoft.visualstudio.com/Dart/_settings/adminservices
|
||||||
|
# This is the name of that connection
|
||||||
|
publishFeedCredentials: 'Terminal Public Artifact Feed'
|
||||||
|
feedsToUse: config
|
||||||
|
nugetConfigPath: '$(Build.SourcesDirectory)/NuGet.config'
|
Loading…
Reference in a new issue