oi-metrology/azure-pipelines-server.yml
2023-10-31 22:40:01 -07:00

383 lines
17 KiB
YAML

trigger:
branches:
include:
- master
paths:
include:
- "Server/*"
- "Shared/*"
- "Tests/*"
exclude:
- "**/*.yaml"
- "**/*.yml"
- "Archive/*"
- "Client/*"
- "ClientHub/*"
variables:
# solution: '**/*.sln'
# buildPlatform: 'Any CPU'
buildConfiguration: "Release"
ASPNETCORE_ENVIRONMENT: "Production"
stages:
# - stage: IFX
# pool:
# name: eaf
# demands: OI-Metrology-Server-IFX
# jobs:
# - job: IFX
# steps:
# - script: |
# set exeName=OI.Metrology.Server
# echo %exeName%
# echo ##vso[task.setvariable variable=ExeName;]%exeName%
# echo $(ExeName)
# displayName: ExeName
# - script: |
# set coreVersion=net7.0
# echo %coreVersion%
# echo ##vso[task.setvariable variable=CoreVersion;]%coreVersion%
# echo $(CoreVersion)
# displayName: CoreVersion
# - script: |
# set configuration=Debug
# echo %configuration%
# echo ##vso[task.setvariable variable=Configuration;]%configuration%
# echo $(Configuration)
# displayName: Configuration
# - script: |
# set nugetSource=https://eaf-dev-reporting.mes.infineon.com/v3/index.json
# echo %nugetSource%
# echo ##vso[task.setvariable variable=NugetSource;]%nugetSource%
# echo $(NugetSource)
# displayName: NugetSource
# - script: |
# set gitCommit=$(Build.SourceVersion)
# set gitCommitSeven=%gitCommit:~0,7%
# echo %gitCommitSeven%
# echo ##vso[task.setvariable variable=GitCommitSeven;]%gitCommitSeven%
# echo $(GitCommitSeven)
# displayName: GitCommitSeven
# - script: |
# set uuId=A6302662940458499454E35D28FCC9F7
# echo %uuId%
# echo ##vso[task.setvariable variable=UUId;]%uuId%
# echo $(UUId)
# displayName: UUId
# - script: |
# set pwEncoding=AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAtBhT01pNnUGaN/uPLxZGvAAAAAACAAAAAAADZgAAwAAAABAAAAAM4xlYguhv7jzchU8dq9pVAAAAAASAAACgAAAAEAAAANS9rIoaYfNq5TwCmTrqElsgAAAA7O4J52FqCctXlCxYB2J5b/W4T+pZCN2zwFj7XCAFW6IUAAAAhQsBDOERAUZJdtSy8AfxwOAZflo=
# echo %pwEncoding%
# echo ##vso[task.setvariable variable=PwEncoding;]%pwEncoding%
# echo $(PwEncoding)
# displayName: PwEncoding
# - script: |
# echo $(Build.BuildId)
# echo $(Build.Reason)
# echo $(Build.Repository.Id)
# echo $(Build.Repository.Name)
# echo $(Build.SourceVersion)
# echo $(Configuration)
# echo $(CoreVersion)
# echo $(GitCommitSeven)
# echo $(NugetSource)
# echo $(PwEncoding)
# echo $(UUId)
# REM echo $(pipelinePassword)
# displayName: "Echo Check"
# - script: '"C:\program files\dotnet\dotnet.exe" nuget locals all --clear'
# displayName: "Nuget Clear"
# enabled: false
# - script: |
# "C:\program files\dotnet\dotnet.exe" user-secrets init
# "C:\program files\dotnet\dotnet.exe" user-secrets set "BuildNumber" "$(Build.BuildId)"
# "C:\program files\dotnet\dotnet.exe" user-secrets set "GitCommitSeven" "$(GitCommitSeven)"
# "C:\program files\dotnet\dotnet.exe" user-secrets list
# workingDirectory: Server
# displayName: "Safe storage of app secrets - Server"
# - script: |
# "C:\program files\dotnet\dotnet.exe" user-secrets set "IsDevelopment" true
# "C:\program files\dotnet\dotnet.exe" user-secrets set "MockRoot" "/Data/Tests"
# "C:\program files\dotnet\dotnet.exe" user-secrets set "URLs" "http://localhost:5002;"
# "C:\program files\dotnet\dotnet.exe" user-secrets set "MonAResource" "OI_Metrology_Viewer_IFX"
# "C:\program files\dotnet\dotnet.exe" user-secrets set "ApiExportPath" "\\messdv002.na.infineon.com\Candela\Archive\API"
# "C:\program files\dotnet\dotnet.exe" user-secrets set "ConnectionString" "Data Source=MESSAD1001\TEST1,59583;Integrated Security=True;Initial Catalog=Metrology;"
# "C:\program files\dotnet\dotnet.exe" user-secrets set "Oi2SqlConnectionString" "Data Source=MESSAD1001\TEST1,59583;Initial Catalog=LSL2SQL;Persist Security Info=True;User ID=srpadmin;Password=0okm9ijn;"
# workingDirectory: Server
# displayName: "Safe storage of app secrets II - Server"
# - script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)'
# workingDirectory: Tests
# displayName: "Core Build - Tests"
# - script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)'
# workingDirectory: Server
# displayName: "Core Build - Server"
# - powershell: Get-ChildItem .\ -include TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
# workingDirectory: "$(System.DefaultWorkingDirectory)/.vscode"
# displayName: "PowerShell Script"
# - script: "dotnet test --configuration $(Configuration)"
# workingDirectory: Tests
# displayName: "Core Test"
# enabled: false
# - script: '"C:\program files\dotnet\dotnet.exe" tool restore'
# workingDirectory: Server
# displayName: "Tool Restore"
# enabled: false
# - script: '"C:\program files\dotnet\dotnet.exe" ReportGenerator -reports:.vscode/TestResults/*/coverage.cobertura.xml -targetDir:$(Build.ArtifactStagingDirectory)\Coverage -reportTypes:Html_Dark'
# workingDirectory: Server
# displayName: "Report Generator"
# enabled: false
# - task: PublishTestResults@2
# displayName: "Publish Test Results **/*.trx"
# inputs:
# testResultsFormat: VSTest
# testResultsFiles: "**/*.trx"
# testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
# searchFolder: "$(System.DefaultWorkingDirectory)/.vscode"
# - task: PublishTestResults@2
# displayName: "Publish Test Results **/coverage.cobertura.xml"
# inputs:
# testResultsFormat: VSTest
# testResultsFiles: "**/coverage.cobertura.xml"
# testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
# searchFolder: "$(System.DefaultWorkingDirectory)/.vscode"
# - task: PublishCodeCoverageResults@1
# inputs:
# codeCoverageTool: "Cobertura"
# summaryFileLocation: "$(System.DefaultWorkingDirectory)/.vscode/TestResults/*/coverage.cobertura.xml"
# enabled: false
# - task: mspremier.CreateWorkItem.CreateWorkItem-task.CreateWorkItem@1
# displayName: "Create work item"
# inputs:
# teamProject: "Mesa_FI"
# workItemType: Bug
# title: $(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)
# assignedTo: "$(Build.RequestedForId)"
# enabled: false
# - script: '"C:\program files\dotnet\dotnet.exe" publish --configuration $(Configuration) --runtime win-x64 --self-contained -o "D:\$(CoreVersion)\$(Build.Repository.Name)\$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)\Server" --source $(NugetSource)'
# workingDirectory: Server
# displayName: "Core Publish"
# - task: DownloadSecureFile@1
# name: downloadSecureFileKDBX
# displayName: "Download secure file"
# inputs:
# secureFile: "Infineon-NA.kdbx"
# - script: echo "<$(downloadSecureFileKDBX.secureFilePath)>"
# displayName: "Echo Path"
# - script: '"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)'
# workingDirectory: Tests
# displayName: "Core Clean - Tests"
# enabled: false
# - script: '"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)'
# workingDirectory: Server
# displayName: "Core Clean - Server"
# - powershell: |
# $data = @('$(downloadSecureFileKDBX.secureFilePath)', '-c:GetEntryString', '-Field:Password', '-refx-UUID:$(UUId)', '-pw-enc:$(PwEncoding)')
# $data.count
# $processStartInfo = New-Object System.Diagnostics.ProcessStartInfo
# $processStartInfo.FileName = "C:\Users\$(USERNAME)\AppData\Local\IFXApps\KeePass-2.51.1---KPScript-2.51.1\KPScript.exe"
# $processStartInfo.RedirectStandardError = $true
# $processStartInfo.RedirectStandardOutput = $true
# $processStartInfo.UseShellExecute = $false
# $processStartInfo.Arguments = $data
# $process = New-Object System.Diagnostics.Process
# $process.StartInfo = $processStartInfo
# $process.Start() | Out-Null
# $process.WaitForExit()
# $stdout = $process.StandardOutput.ReadToEnd()
# $stderr = $process.StandardError.ReadToEnd()
# Write-Host "stderr: $stderr"
# Write-Host "exit code: " + $process.ExitCode
# Write-Host "##vso[task.setvariable variable=pipelinePassword;]$stdout"
# displayName: pipelinePassword
# - script: 'sc create "$(ExeName)" start= delayed-auto DisplayName= "$(Build.Repository.Name)-$(Configuration)-$(GitCommitSeven)-$(Build.BuildId)" binPath= D:\$(CoreVersion)\$(Build.Repository.Name)\Server\$(ExeName).exe obj= INFINEON\$(USERNAME) password="$(pipelinePassword)"'
# workingDirectory: Server
# displayName: "Service Control - Create"
# continueOnError: true
# - script: 'sc config "$(ExeName)" DisplayName= "$(Build.Repository.Name)-$(Configuration)-$(GitCommitSeven)-$(Build.BuildId)"'
# displayName: "Service Control - Configure"
# - script: 'sc stop "$(ExeName)"'
# displayName: "Service Control - Stop"
# continueOnError: true
# - script: 'rmdir "D:\$(CoreVersion)\$(Build.Repository.Name)\Server"'
# displayName: "Remove directory"
# continueOnError: true
# - script: 'mklink /J "D:\$(CoreVersion)\$(Build.Repository.Name)\Server" "D:\$(CoreVersion)\$(Build.Repository.Name)\$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)\Server"'
# displayName: "Link directory"
# continueOnError: true
# - script: 'sc start "$(ExeName)"'
# displayName: "Service Control - Start"
# - task: PublishBuildArtifacts@1
# displayName: "Publish Artifact: drop"
# enabled: false
# - script: 'echo $(Build.SourceVersion)-$(Build.BuildId)>bin_x_x_\$(Configuration)\$(CoreVersion)\win-x64\$(Build.Repository.Name).txt'
# displayName: "Force Fail"
# enabled: false
- stage: EC
pool:
name: open-insight-metrology-viewer
demands: OI-Metrology-Server-EC
jobs:
- job: EC
steps:
- script: |
set coreVersion=net7.0
echo %coreVersion%
echo ##vso[task.setvariable variable=CoreVersion;]%coreVersion%
echo $(CoreVersion)
displayName: CoreVersion
- script: |
set configuration=Release
echo %configuration%
echo ##vso[task.setvariable variable=Configuration;]%configuration%
echo ($Configuration)
displayName: Configuration
- script: |
set nugetSource=https://eaf-prod.mes.infineon.com/v3/index.json
echo %nugetSource%
echo ##vso[task.setvariable variable=NugetSource;]%nugetSource%
echo $(NugetSource)
displayName: NugetSource
- script: |
set gitCommit=$(Build.SourceVersion)
set gitCommitSeven=%gitCommit:~0,7%
echo %gitCommitSeven%
echo ##vso[task.setvariable variable=GitCommitSeven;]%gitCommitSeven%
echo $(GitCommitSeven)
displayName: GitCommitSeven
- script: |
echo $(Build.BuildId)
echo $(Build.Reason)
echo $(Build.Repository.Id)
echo $(Build.Repository.Name)
echo $(Build.SourceVersion)
echo $(CoreVersion)
echo $(Configuration)
echo $(NugetSource)
echo $(GitCommitSeven)
REM echo $(pipelinePassword)
displayName: "Echo Check"
- script: '"C:\program files\dotnet\dotnet.exe" nuget locals all --clear'
displayName: "Nuget Clear"
enabled: false
- script: |
"C:\program files\dotnet\dotnet.exe" user-secrets init
"C:\program files\dotnet\dotnet.exe" user-secrets set "BuildNumber" "$(Build.BuildId)"
"C:\program files\dotnet\dotnet.exe" user-secrets set "GitCommitSeven" "$(GitCommitSeven)"
"C:\program files\dotnet\dotnet.exe" user-secrets list
workingDirectory: Server
displayName: "Safe storage of app secrets - Server"
- script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)'
workingDirectory: Tests
displayName: "Core Build - Tests"
- script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)'
workingDirectory: Server
displayName: "Core Build - Server"
- powershell: Get-ChildItem .\ -include TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
workingDirectory: "$(System.DefaultWorkingDirectory)/.vscode"
displayName: "PowerShell Script"
- script: "dotnet test --configuration $(Configuration)"
workingDirectory: Tests
displayName: "Core Test"
# enabled: false
- script: '"C:\program files\dotnet\dotnet.exe" tool restore'
workingDirectory: Server
displayName: "Tool Restore"
enabled: false
- script: '"C:\program files\dotnet\dotnet.exe" ReportGenerator -reports:.vscode/TestResults/*/coverage.cobertura.xml -targetDir:$(Build.ArtifactStagingDirectory)\Coverage -reportTypes:Html_Dark'
workingDirectory: Server
displayName: "Report Generator"
enabled: false
- task: PublishTestResults@2
displayName: "Publish Test Results **/*.trx"
inputs:
testResultsFormat: VSTest
testResultsFiles: "**/*.trx"
testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
searchFolder: "$(System.DefaultWorkingDirectory)/.vscode"
- task: PublishTestResults@2
displayName: "Publish Test Results **/coverage.cobertura.xml"
inputs:
testResultsFormat: VSTest
testResultsFiles: "**/coverage.cobertura.xml"
testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
searchFolder: "$(System.DefaultWorkingDirectory)/.vscode"
- task: mspremier.CreateWorkItem.CreateWorkItem-task.CreateWorkItem@1
displayName: "Create work item"
inputs:
teamProject: "Mesa_FI"
workItemType: Bug
title: $(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)
assignedTo: "$(Build.RequestedForId)"
enabled: false
- script: '"C:\program files\dotnet\dotnet.exe" publish --configuration $(Configuration) --runtime win-x64 --self-contained -o "D:\$(CoreVersion)\$(Build.Repository.Name)\$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)\Server" --source $(NugetSource)'
workingDirectory: Server
displayName: "Core Publish"
- task: PublishBuildArtifacts@1
displayName: "Publish Artifact: drop"
enabled: false
- script: '"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)'
workingDirectory: Tests
displayName: "Core Clean - Tests"
- script: '"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)'
workingDirectory: Server
displayName: "Core Clean - Server"