windows-x64-release.yml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. # .NET Desktop
  2. # Build and run tests for .NET Desktop or Windows classic desktop solutions.
  3. # Add steps that publish symbols, save build artifacts, and more:
  4. # https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net
  5. trigger:
  6. - release
  7. pr: none
  8. pool:
  9. vmImage: 'windows-latest'
  10. variables:
  11. - group: Release Secrets
  12. - name: solution
  13. value: '**/*.sln'
  14. - name: buildPlatform
  15. value: 'win-x64'
  16. - name: buildConfiguration
  17. value: 'Release'
  18. steps:
  19. - task: UseDotNet@2
  20. inputs:
  21. packageType: 'sdk'
  22. version: '7.0.104'
  23. - task: NuGetToolInstaller@1
  24. - task: NuGetCommand@2
  25. inputs:
  26. restoreSolution: '$(solution)'
  27. - task: DotNetCoreCLI@2
  28. displayName: "Build PixiEditor Solution"
  29. inputs:
  30. command: 'build'
  31. projects: 'src/PixiEditor'
  32. arguments: '-r "$(buildPlatform)" -c $(buildConfiguration)'
  33. - task: DotNetCoreCLI@2
  34. displayName: "Build release PixiEditor.UpdateInstaller"
  35. inputs:
  36. command: 'publish'
  37. publishWebProjects: false
  38. projects: '**/PixiEditor.UpdateInstaller.csproj'
  39. arguments: '-o "UpdateInstaller" -r "$(buildPlatform)" --self-contained=false -p:PublishSingleFile=true -c $(buildConfiguration)'
  40. zipAfterPublish: false
  41. - task: PowerShell@2
  42. displayName: "Set tag version"
  43. inputs:
  44. filePath: 'assemblyVerReader.ps1'
  45. - task: PowerShell@2
  46. displayName: Publish PixiEditor
  47. inputs:
  48. filePath: 'src/PixiEditor.Builder/build.ps1'
  49. arguments: '--project-path "$(System.DefaultWorkingDirectory)\src\PixiEditor" --build-configuration "$(buildConfiguration)" --runtime "$(buildPlatform)" -o "$(System.DefaultWorkingDirectory)\Builds\PixiEditor-x64-light\PixiEditor" --crash-report-webhook-url "$(crash-webhook-url)"'
  50. workingDirectory: 'src/PixiEditor.Builder'
  51. - task: ArchiveFiles@2
  52. inputs:
  53. rootFolderOrFile: 'Builds\PixiEditor-x64-light'
  54. includeRootFolder: false
  55. archiveType: 'zip'
  56. archiveFile: 'PixiEditor.$(TagVersion).x64.zip'
  57. replaceExistingArchive: true
  58. - task: PublishPipelineArtifact@1
  59. displayName: "Publish zip artifact"
  60. inputs:
  61. targetPath: '$(System.DefaultWorkingDirectory)\PixiEditor.$(TagVersion).x64.zip'
  62. artifact: 'PixiEditor.$(TagVersion).x64.zip'
  63. publishLocation: 'pipeline'
  64. - task: CopyFiles@2
  65. displayName: "Copy updater to PixiEditor target dir"
  66. inputs:
  67. SourceFolder: 'UpdateInstaller'
  68. Contents: '**'
  69. TargetFolder: 'Builds/PixiEditor-x64-light/PixiEditor'
  70. flattenFolders: true
  71. - task: PowerShell@2
  72. displayName: "Compile installer"
  73. inputs:
  74. targetType: 'inline'
  75. script: '& "$env:userprofile\.nuget\packages\tools.innosetup\6.2.1\tools\ISCC.exe" src\Installer\installer-setup-x64-light.iss'
  76. - task: PublishPipelineArtifact@1
  77. displayName: "Publish artifact"
  78. inputs:
  79. targetPath: 'src/Installer/Assets/PixiEditor-x64-light/'
  80. artifact: 'PixiEditor-setup-x64.exe'
  81. publishLocation: 'pipeline'