我正在尝试使用Azure Devops来执行CI / CD。我已经创建了适当的Git触发器来构建,当我推送时,每当我创建一个新版本时我都会创建一个新版本。
在发布选项卡中,我尝试使用“部署Azure应用服务”模板部署具有多个webjobs的WebAPI项目。所有的日志似乎表明一切都很顺利,但最后我在Azure中查看应用服务时什么都没有!
我尝试了许多不同的配置,甚至还有一些模板。根据日志,它们看起来都很好,但实际上没有任何部署!
如果我尝试从VS2017构建/部署它可以很好地工作!
题
.
我的构建YAML文件非常接近默认值,仅添加了CopyFiles @ 2,因为另一个SO帖子暗示:
trigger:
tags:
include:
- slot*
branches:
include:
- dev
pool:
vmImage: 'VS2017-Win2016'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
name: $(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
steps:
- task: NuGetToolInstaller@0
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: CopyFiles@2
inputs:
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
condition: succeeded() #and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
第二步,我从通过YAML文件生成的工件创建一个版本。
请在您的包或文件夹选项中添加以下行
$(System.DefaultWorkingDirectory)\*.*
它将确保在部署时选择所有文件。
另请参阅以下方法将webjob部署到azure:
/p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactstagingdirectory)\\WebJob" /p:DeployDefaultTarget=WebPublish)
希望能帮助到你。
部署任务有两个主要问题。