You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

162 lines
6.0 KiB

5 years ago
5 years ago
5 years ago
3 years ago
5 years ago
5 years ago
2 years ago
5 years ago
3 years ago
5 years ago
3 years ago
3 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
4 years ago
5 years ago
3 years ago
5 years ago
3 years ago
3 years ago
3 years ago
5 years ago
3 years ago
5 years ago
  1. # ASP.NET Core
  2. # Build and test ASP.NET Core projects targeting .NET Core.
  3. # Add steps that run tests, create a NuGet package, deploy, and more:
  4. # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
  5. trigger:
  6. - master
  7. variables:
  8. netCoreSdkVersion: '7.0.101'
  9. buildConfiguration: 'Release'
  10. imageName: 'sscms/core'
  11. productVersion: '7.2.1'
  12. jobs:
  13. - job: Windows
  14. pool:
  15. vmImage: 'windows-latest'
  16. steps:
  17. - task: UseDotNet@2
  18. inputs:
  19. version: $(netCoreSdkVersion)
  20. - task: NodeTool@0
  21. inputs:
  22. versionSpec: '12.x'
  23. - script: npm install
  24. - script: npm run build-win-x64
  25. - task: NuGetToolInstaller@1
  26. inputs:
  27. versionSpec: 6.4.0
  28. - task: NuGetCommand@2
  29. inputs:
  30. command: 'restore'
  31. restoreSolution: './build-win-x64/build.sln'
  32. feedsToUse: 'select'
  33. - script: dotnet build ./build-win-x64/build.sln -c $(buildConfiguration)
  34. - script: dotnet publish ./build-win-x64/src/SSCMS.Cli/SSCMS.Cli.csproj -c $(buildConfiguration) -o ./publish/sscms-$(productVersion)-win-x64
  35. - script: dotnet publish ./build-win-x64/src/SSCMS.Web/SSCMS.Web.csproj -c $(buildConfiguration) -o ./publish/sscms-$(productVersion)-win-x64
  36. - script: npm run copy-win-x64
  37. - script: npm run build-win-x86
  38. - task: NuGetCommand@2
  39. inputs:
  40. command: 'restore'
  41. restoreSolution: './build-win-x86/build.sln'
  42. feedsToUse: 'select'
  43. - script: dotnet build ./build-win-x86/build.sln -c $(buildConfiguration)
  44. - script: dotnet publish ./build-win-x86/src/SSCMS.Cli/SSCMS.Cli.csproj -c $(buildConfiguration) -o ./publish/sscms-$(productVersion)-win-x86
  45. - script: dotnet publish ./build-win-x86/src/SSCMS.Web/SSCMS.Web.csproj -c $(buildConfiguration) -o ./publish/sscms-$(productVersion)-win-x86
  46. - script: npm run copy-win-x86
  47. - task: ArchiveFiles@2
  48. inputs:
  49. rootFolderOrFile: './publish/sscms-$(productVersion)-win-x64'
  50. archiveType: 'zip'
  51. includeRootFolder: false
  52. archiveFile: './publish/dist/sscms-$(productVersion)-win-x64.zip'
  53. - script: npm run publish-win-x64-zip
  54. env:
  55. OSS_ACCESS_KEY_ID: $(ossAccessKeyId)
  56. OSS_SECRET_ACCESS_KEY: $(ossSecretAccessKey)
  57. OSS_BUCKET_DL: $(ossBucketDl)
  58. OSS_BUCKET_WWW: $(ossBucketWww)
  59. - task: ArchiveFiles@2
  60. inputs:
  61. rootFolderOrFile: './publish/sscms-$(productVersion)-win-x86'
  62. archiveType: 'zip'
  63. includeRootFolder: false
  64. archiveFile: './publish/dist/sscms-$(productVersion)-win-x86.zip'
  65. - script: npm run publish-win-x86-zip
  66. env:
  67. OSS_ACCESS_KEY_ID: $(ossAccessKeyId)
  68. OSS_SECRET_ACCESS_KEY: $(ossSecretAccessKey)
  69. OSS_BUCKET_DL: $(ossBucketDl)
  70. OSS_BUCKET_WWW: $(ossBucketWww)
  71. - task: PublishPipelineArtifact@1
  72. inputs:
  73. targetPath: './publish/dist'
  74. artifactName: 'sscms-$(productVersion)-win'
  75. - job: Linux
  76. pool:
  77. vmImage: 'Ubuntu 20.04'
  78. steps:
  79. - task: UseDotNet@2
  80. inputs:
  81. version: $(netCoreSdkVersion)
  82. - task: NodeTool@0
  83. inputs:
  84. versionSpec: '12.x'
  85. - script: npm install
  86. - script: npm run build-linux-x64
  87. - task: NuGetCommand@2
  88. inputs:
  89. command: 'restore'
  90. restoreSolution: './build-linux-x64/build.sln'
  91. feedsToUse: 'select'
  92. - script: dotnet build ./build-linux-x64/build.sln -c $(buildConfiguration)
  93. - script: dotnet publish ./build-linux-x64/src/SSCMS.Cli/SSCMS.Cli.csproj -c $(buildConfiguration) -o ./publish/sscms-$(productVersion)-linux-x64
  94. - script: dotnet publish ./build-linux-x64/src/SSCMS.Web/SSCMS.Web.csproj -c $(buildConfiguration) -o ./publish/sscms-$(productVersion)-linux-x64
  95. - script: npm run copy-linux-x64
  96. - script: npm run build-linux-arm64
  97. - task: NuGetCommand@2
  98. inputs:
  99. command: 'restore'
  100. restoreSolution: './build-linux-arm64/build.sln'
  101. feedsToUse: 'select'
  102. - script: dotnet build ./build-linux-arm64/build.sln -c $(buildConfiguration)
  103. - script: dotnet publish ./build-linux-arm64/src/SSCMS.Cli/SSCMS.Cli.csproj -c $(buildConfiguration) -r linux-arm64 -o ./publish/sscms-$(productVersion)-linux-arm64
  104. - script: dotnet publish ./build-linux-arm64/src/SSCMS.Web/SSCMS.Web.csproj -c $(buildConfiguration) -r linux-arm64 -o ./publish/sscms-$(productVersion)-linux-arm64
  105. - script: npm run copy-linux-arm64
  106. - task: ArchiveFiles@2
  107. inputs:
  108. rootFolderOrFile: './publish/sscms-$(productVersion)-linux-x64'
  109. archiveType: 'tar'
  110. tarCompression: 'gz'
  111. includeRootFolder: false
  112. archiveFile: './publish/dist/sscms-$(productVersion)-linux-x64.tar.gz'
  113. - script: npm run publish-linux-x64-tgz
  114. env:
  115. OSS_ACCESS_KEY_ID: $(ossAccessKeyId)
  116. OSS_SECRET_ACCESS_KEY: $(ossSecretAccessKey)
  117. OSS_BUCKET_DL: $(ossBucketDl)
  118. OSS_BUCKET_WWW: $(ossBucketWww)
  119. - task: ArchiveFiles@2
  120. inputs:
  121. rootFolderOrFile: './publish/sscms-$(productVersion)-linux-x64'
  122. archiveType: 'zip'
  123. includeRootFolder: false
  124. archiveFile: './publish/dist/sscms-$(productVersion)-linux-x64.zip'
  125. - script: npm run publish-linux-x64-zip
  126. env:
  127. OSS_ACCESS_KEY_ID: $(ossAccessKeyId)
  128. OSS_SECRET_ACCESS_KEY: $(ossSecretAccessKey)
  129. OSS_BUCKET_DL: $(ossBucketDl)
  130. OSS_BUCKET_WWW: $(ossBucketWww)
  131. - task: ArchiveFiles@2
  132. inputs:
  133. rootFolderOrFile: './publish/sscms-$(productVersion)-linux-arm64'
  134. archiveType: 'tar'
  135. tarCompression: 'gz'
  136. includeRootFolder: false
  137. archiveFile: './publish/dist/sscms-$(productVersion)-linux-arm64.tar.gz'
  138. - script: npm run publish-linux-arm64-tgz
  139. env:
  140. OSS_ACCESS_KEY_ID: $(ossAccessKeyId)
  141. OSS_SECRET_ACCESS_KEY: $(ossSecretAccessKey)
  142. OSS_BUCKET_DL: $(ossBucketDl)
  143. OSS_BUCKET_WWW: $(ossBucketWww)
  144. - task: PublishPipelineArtifact@1
  145. inputs:
  146. targetPath: './publish/dist'
  147. artifactName: 'sscms-$(productVersion)-linux'
  148. - script: docker build -f docker/Dockerfile.core --no-cache -t $(imageName):latest -t $(imageName):$(productVersion) .
  149. - task: Docker@2
  150. displayName: Push image
  151. inputs:
  152. containerRegistry: |
  153. docker
  154. repository: $(imageName)
  155. command: push
  156. tags: |
  157. latest
  158. $(productVersion)