From aded3facb5434279f9c5a2ef3445224298b2052e Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Wed, 22 Jun 2022 06:30:16 -0500 Subject: [PATCH] This cannot possibly work, right? --- build/pipelines/ci.yml | 10 +++ .../templates/localtest-console-ci.yml | 78 +++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 build/pipelines/templates/localtest-console-ci.yml diff --git a/build/pipelines/ci.yml b/build/pipelines/ci.yml index 7e225d7cb8..d4d1318bc0 100644 --- a/build/pipelines/ci.yml +++ b/build/pipelines/ci.yml @@ -71,6 +71,16 @@ stages: - template: ./templates/test-console-ci.yml parameters: platform: x64 + + - stage: LocalTest_x64 + displayName: Local Test x64 + dependsOn: [Build_x64] + condition: succeeded() + jobs: + - template: ./templates/localtest-console-ci.yml + parameters: + platform: x64 + - stage: Test_x86 displayName: Test x86 dependsOn: [Build_x86] diff --git a/build/pipelines/templates/localtest-console-ci.yml b/build/pipelines/templates/localtest-console-ci.yml new file mode 100644 index 0000000000..7ecdccd98e --- /dev/null +++ b/build/pipelines/templates/localtest-console-ci.yml @@ -0,0 +1,78 @@ +parameters: + configuration: 'Release' + platform: '' + additionalBuildArguments: '' + artifactName: 'drop' + testLogPath: '$(Build.BinariesDirectory)\$(BuildPlatform)\$(BuildConfiguration)\testsOnBuildMachine.wtl' + +jobs: +- job: Test${{ parameters.platform }}${{ parameters.configuration }} + displayName: Test ${{ parameters.platform }} ${{ parameters.configuration }} + variables: + BuildConfiguration: ${{ parameters.configuration }} + BuildPlatform: ${{ parameters.platform }} + pool: + vmImage: 'windows-2019' + + steps: + - checkout: self + submodules: true + clean: true + fetchDepth: 1 + + - task: DownloadBuildArtifacts@0 + inputs: + artifactName: ${{ parameters.artifactName }} + + - task: PowerShell@2 + displayName: 'Rationalize build platform' + inputs: + targetType: inline + script: | + $Arch = "$(BuildPlatform)" + If ($Arch -Eq "x86") { $Arch = "Win32" } + Write-Host "##vso[task.setvariable variable=RationalizedBuildPlatform]${Arch}" + + - task: PowerShell@2 + displayName: 'Run Local Tests' + inputs: + targetType: filePath + filePath: build\scripts\Run-Tests.ps1 + arguments: -MatchPattern '*LocalTest*.dll' -Platform '$(RationalizedBuildPlatform)' -Configuration '$(BuildConfiguration)' -LogPath '${{ parameters.testLogPath }}' -Root "$(System.ArtifactsDirectory)\\${{ parameters.artifactName }}\\$(BuildConfiguration)\\$(BuildPlatform)\\test" + condition: and(and(succeeded(), ne(variables['PGOBuildMode'], 'Instrument')), or(eq(variables['BuildPlatform'], 'x64'), eq(variables['BuildPlatform'], 'x86'))) + + - task: PowerShell@2 + displayName: 'Convert Test Logs from WTL to xUnit format' + inputs: + targetType: filePath + filePath: build\Helix\ConvertWttLogToXUnit.ps1 + arguments: -WttInputPath '${{ parameters.testLogPath }}' -WttSingleRerunInputPath 'unused.wtl' -WttMultipleRerunInputPath 'unused2.wtl' -XUnitOutputPath 'onBuildMachineResults.xml' -TestNamePrefix '$(BuildConfiguration).$(BuildPlatform)' + condition: and(ne(variables['PGOBuildMode'], 'Instrument'),or(eq(variables['BuildPlatform'], 'x64'), eq(variables['BuildPlatform'], 'x86'))) + + - task: PublishTestResults@2 + displayName: 'Upload converted test logs' + condition: ne(variables['PGOBuildMode'], 'Instrument') + inputs: + testResultsFormat: 'xUnit' # Options: JUnit, NUnit, VSTest, xUnit, cTest + testResultsFiles: '**/onBuildMachineResults.xml' + #searchFolder: '$(System.DefaultWorkingDirectory)' # Optional + #mergeTestResults: false # Optional + #failTaskOnFailedTests: false # Optional + testRunTitle: 'On Build Machine Tests' # Optional + buildPlatform: $(BuildPlatform) # Optional + buildConfiguration: $(BuildConfiguration) # Optional + #publishRunAttachments: true # Optional + + - task: CopyFiles@2 + displayName: 'Copy result logs to Artifacts' + inputs: + Contents: | + **/*.wtl + **/*onBuildMachineResults.xml + ${{ parameters.testLogPath }} + TargetFolder: '$(Build.ArtifactStagingDirectory)/$(BuildConfiguration)/$(BuildPlatform)/test-logs' + OverWrite: true + flattenFolders: true + + - publish: '$(Build.ArtifactStagingDirectory)/$(BuildConfiguration)/$(BuildPlatform)/test-logs' + artifact: TestLogs$(BuildPlatform)$(BuildConfiguration)