wabbajack/azure-pipelines.yml
2020-04-03 16:41:17 -06:00

136 lines
3.8 KiB
YAML

# .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:
- wabbajack-2.0
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: DotNetCoreCLI@2
displayName: "Build Release"
inputs:
command: 'build'
projects: 'Wabbajack\Wabbajack.csproj'
arguments: '--runtime win10-x64 --configuration Release /p:Platform=x64'
- task: DotNetCoreCLI@2
displayName: "Test Release"
inputs:
command: 'test'
projects: '**/*.Test.csproj'
arguments: '/p:Platform=x64'
- task: DotNetCoreCLI@2
inputs:
command: 'publish'
publishWebProjects: false
projects: 'Wabbajack\Wabbajack.csproj'
zipAfterPublish: false
modifyOutputPath: false
arguments: '--runtime win10-x64 --configuration Release /p:Platform=x64 -o $(System.DefaultWorkingDirectory)/PublishApp --self-contained'
- task: DotNetCoreCLI@2
inputs:
command: 'publish'
publishWebProjects: false
projects: 'Wabbajack.Launcher\Wabbajack.Launcher.csproj'
zipAfterPublish: false
modifyOutputPath: false
arguments: '--runtime win10-x64 --configuration Release /p:Platform=x64 -o $(System.DefaultWorkingDirectory)/PublishLauncher --self-contained'
- task: DownloadSecureFile@1
inputs:
secureFile: 'CertFile.p12'
- task: codesigning@2
displayName: "Sign main app"
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
inputs:
secureFileId: 'CertFile.p12'
signCertPassword: '$(CertPassword)'
files: '$(System.DefaultWorkingDirectory)/PublishApp/*abbajack*.exe'
hashingAlgorithm: 'SHA256'
description: 'Wabbajack Modlist Installer'
- task: codesigning@2
displayName: "Sign launcher"
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
inputs:
secureFileId: 'CertFile.p12'
signCertPassword: '$(CertPassword)'
files: '$(System.DefaultWorkingDirectory)/PublishLauncher/*abbajack*.exe'
hashingAlgorithm: 'SHA256'
description: 'Wabbajack Modlist Installer Launcher'
#- 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: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)/PublishApp'
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/Wabbajack.zip'
replaceExistingArchive: true
verbose: true
- task: PublishBuildArtifacts@1
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/Wabbajack.zip'
ArtifactName: 'Wabbajack.zip'
publishLocation: 'Container'
- task: PublishBuildArtifacts@1
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
inputs:
PathtoPublish: '$(System.DefaultWorkingDirectory)/PublishLauncher/Wabbajack.exe'
ArtifactName: 'Wabbajack.exe'
publishLocation: 'Container'