# .NET Desktop # Build and run tests for .NET Desktop or Windows classic desktop solutions. # Add steps that publish symbols, save build artifacts, and more: # https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net trigger: - master pool: name: Default vmImage: 'windows-latest' variables: - group: main-pipeline-keys - name: solution value: 'Wabbajack.sln' - name: buildPlatform value: 'x64' - name: buildConfiguration value: 'Debug' steps: - checkout: self clean: true submodules: true - task: NuGetToolInstaller@1 - task: NuGetCommand@2 inputs: restoreSolution: '$(solution)' - task: VSBuild@1 inputs: solution: '$(solution)' platform: '$(buildPlatform)' configuration: '$(buildConfiguration)' - task: VSTest@2 inputs: platform: '$(buildPlatform)' configuration: '$(buildConfiguration)' testFiltercriteria: 'TestCategory!=ListValidation' - task: DownloadSecureFile@1 inputs: secureFile: 'CertFile.p12' - task: codesigning@2 condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') inputs: secureFileId: 'CertFile.p12' signCertPassword: '$(CertPassword)' files: '$(System.DefaultWorkingDirectory)/Wabbajack/bin/x64/Debug/Wabbajack.exe' timeServer: 'http://timestamp.digicert.com' hashingAlgorithm: 'SHA256' description: 'Wabbajack Modlist Installer' - task: CmdLine@2 inputs: script: 'pip install requests' - task: PythonScript@0 condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') inputs: scriptSource: 'inline' script: | import requests, sys url = 'https://www.virustotal.com/vtapi/v2/file/scan' params = {'apikey': sys.argv[1]} files = {'file': ('Wabbajack.exe', open(sys.argv[2], 'rb'))} response = requests.post(url, files=files, params=params) print(response.json()) arguments: '$(VirusTotalAPIKey) $(System.DefaultWorkingDirectory)/Wabbajack/bin/x64/Debug/Wabbajack.exe' - task: PublishBuildArtifacts@1 condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') inputs: PathtoPublish: '$(System.DefaultWorkingDirectory)/Wabbajack/bin/x64/Debug/Wabbajack.exe' ArtifactName: 'Wabbajack.exe' publishLocation: 'Container'