windows-x64-release.yml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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: archNumber
  15. value: '64'
  16. - name: architecture
  17. value: 'x$(archNumber)'
  18. - name: buildPlatform
  19. value: 'win-$(architecture)'
  20. - name: buildConfiguration
  21. value: 'Release'
  22. steps:
  23. - task: UseDotNet@2
  24. inputs:
  25. packageType: 'sdk'
  26. version: '7.0.203'
  27. - task: NuGetToolInstaller@1
  28. - task: NuGetCommand@2
  29. inputs:
  30. restoreSolution: '$(solution)'
  31. - task: DotNetCoreCLI@2
  32. displayName: "Build PixiEditor Solution"
  33. inputs:
  34. command: 'build'
  35. projects: 'src/PixiEditor'
  36. arguments: '-r "$(buildPlatform)" -c $(buildConfiguration)'
  37. - task: DotNetCoreCLI@2
  38. displayName: "Build release PixiEditor.UpdateInstaller"
  39. inputs:
  40. command: 'publish'
  41. publishWebProjects: false
  42. projects: '**/PixiEditor.UpdateInstaller.csproj'
  43. arguments: '-o "UpdateInstaller" -r "$(buildPlatform)" --self-contained=false -p:PublishSingleFile=true -c $(buildConfiguration)'
  44. zipAfterPublish: false
  45. - task: PowerShell@2
  46. displayName: "Set tag version"
  47. inputs:
  48. filePath: 'assemblyVerReader.ps1'
  49. - task: PowerShell@2
  50. displayName: Publish PixiEditor
  51. inputs:
  52. filePath: 'src/PixiEditor.Builder/build.ps1'
  53. arguments: '--project-path "$(System.DefaultWorkingDirectory)\src\PixiEditor" --build-configuration "$(buildConfiguration)" --runtime "$(buildPlatform)" -o "$(System.DefaultWorkingDirectory)\Builds\PixiEditor-$(architecture)-light\PixiEditor" --crash-report-webhook-url "$(crash-webhook-url)"'
  54. workingDirectory: 'src/PixiEditor.Builder'
  55. - task: ArchiveFiles@2
  56. inputs:
  57. rootFolderOrFile: 'Builds\PixiEditor-$(architecture)-light'
  58. includeRootFolder: false
  59. archiveType: 'zip'
  60. archiveFile: 'PixiEditor.$(TagVersion).$(architecture).zip'
  61. replaceExistingArchive: true
  62. - task: PublishPipelineArtifact@1
  63. displayName: "Publish zip artifact"
  64. inputs:
  65. targetPath: '$(System.DefaultWorkingDirectory)\PixiEditor.$(TagVersion).$(architecture).zip'
  66. artifact: 'PixiEditor.$(TagVersion).$(architecture).zip'
  67. publishLocation: 'pipeline'
  68. - task: CopyFiles@2
  69. displayName: "Copy updater to PixiEditor target dir"
  70. inputs:
  71. SourceFolder: 'UpdateInstaller'
  72. Contents: '**'
  73. TargetFolder: 'Builds/PixiEditor-$(architecture)-light/PixiEditor'
  74. flattenFolders: true
  75. - task: PowerShell@2
  76. displayName: "Compile installer"
  77. inputs:
  78. targetType: 'inline'
  79. script: '& "$env:userprofile\.nuget\packages\tools.innosetup\6.2.1\tools\ISCC.exe" src\Installer\installer-setup-$(architecture)-light.iss'
  80. - task: PublishPipelineArtifact@1
  81. displayName: "Publish artifact"
  82. inputs:
  83. targetPath: 'src/Installer/Assets/PixiEditor-$(architecture)-light/'
  84. artifact: 'PixiEditor-setup-$(architecture).exe'
  85. publishLocation: 'pipeline'
  86. - task: ArchiveFiles@2
  87. displayName: "Create zipped installer"
  88. inputs:
  89. rootFolderOrFile: 'src/Installer/Assets/PixiEditor-$(architecture)-light'
  90. includeRootFolder: false
  91. archiveType: 'zip'
  92. archiveFile: '$(Build.ArtifactStagingDirectory)/PixiEditor-$(TagVersion)-setup$(archNumber).zip'
  93. replaceExistingArchive: true
  94. - task: PublishPipelineArtifact@1
  95. displayName: "Publish installer zip artifact"
  96. inputs:
  97. targetPath: '$(Build.ArtifactStagingDirectory)/PixiEditor-$(TagVersion)-setup$(archNumber).zip'
  98. artifact: 'PixiEditor-$(TagVersion)-setup$(archNumber).zip'
  99. publishLocation: 'pipeline'