trigger: branches: include: - Development paths: include: - "Server/*" - "Shared/*" - "Tests/*" exclude: - "**/*.yaml" - "**/*.yml" - "Archive/*" - "Client/*" - "ClientHub/*" pool: name: Mesa-Windows-Service demands: OI-Metrology-Server-Development variables: # solution: '**/*.sln' # buildPlatform: 'Any CPU' buildConfiguration: "Debug" ASPNETCORE_ENVIRONMENT: "Development" 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://messa017.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" 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: 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 $(Build.ArtifactStagingDirectory)\Server --source $(NugetSource)' workingDirectory: Server displayName: "Core Publish" - task: CopyFiles@2 displayName: "Copy Files" inputs: SourceFolder: '$(Build.ArtifactStagingDirectory)\Server' TargetFolder: 'D:\$(CoreVersion)\$(Build.Repository.Name)\$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)\Server' - script: 'sc stop "$(Build.Repository.Name)-$(Configuration)"' workingDirectory: Server displayName: "Service Control - Stop" continueOnError: true - script: 'sc delete "$(Build.Repository.Name)-$(Configuration)"' workingDirectory: Server displayName: "Service Control - Delete" continueOnError: true - task: DownloadSecureFile@1 name: downloadSecureFileKDBX displayName: "Download secure file" inputs: secureFile: "Infineon-NA.kdbx" - script: echo "<$(downloadSecureFileKDBX.secureFilePath)>" displayName: "Echo Path" - powershell: | $data = @('$(downloadSecureFileKDBX.secureFilePath)', '-c:GetEntryString', '-Field:Password', '-refx-UUID:A6302662940458499454E35D28FCC9F7', '-pw-enc:AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAtBhT01pNnUGaN/uPLxZGvAAAAAACAAAAAAADZgAAwAAAABAAAAAM4xlYguhv7jzchU8dq9pVAAAAAASAAACgAAAAEAAAANS9rIoaYfNq5TwCmTrqElsgAAAA7O4J52FqCctXlCxYB2J5b/W4T+pZCN2zwFj7XCAFW6IUAAAAhQsBDOERAUZJdtSy8AfxwOAZflo=') $data.count $processStartInfo = New-Object System.Diagnostics.ProcessStartInfo $processStartInfo.FileName = "C:\Users\meseafsvc\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 "$(Build.Repository.Name)-$(Configuration)" start= delayed-auto DisplayName= "$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)" binPath= D:\$(CoreVersion)\$(Build.Repository.Name)\$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)\Server\$(ExeName).exe obj= INFINEON\meseafsvc password="$(pipelinePassword)"' workingDirectory: Server displayName: "Service Control - Create" - script: 'sc start "$(Build.Repository.Name)-$(Configuration)"' workingDirectory: Server displayName: "Service Control - Start" - 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" - script: '"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)' workingDirectory: Server displayName: "Core Clean - Server" - script: 'echo $(Build.SourceVersion)-$(Build.BuildId)>bin_x_x_\Debug\$(CoreVersion)\win-x64\$(Build.Repository.Name).txt' workingDirectory: "EAF Viewer" displayName: "Force Fail"