我正在尝试通过Azure DevOps将ReactJS应用程序部署到我的Azure Web应用程序。我已经为此在DevOps上创建了一个项目,并且试图建立一个持续的集成管道,以便每次对master的提交都会触发一个新的构建并将其部署到Web应用程序中。指定构建说明的azure-pipelines.yml文件如下:
# Node.js with React
# Build a Node.js project that uses React.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
pool:
vmImage: 'Ubuntu 16.04'
trigger:
- master
steps:
- task: NodeTool@0
inputs:
versionSpec: '8.x'
displayName: 'Install Node.js'
- script: |
npm install
npm run build
displayName: 'npm install and build'
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
includeRootFolder: false
- task: PublishBuildArtifacts@1
我按照Build, test, and deploy Javascript Apps in Azure Pipelines
上提供的说明创建了此文件构建成功就很好,然后我使用以下设置为构建创建了一个发行版: Azure release pipeline task setup
(部署Azure应用服务>应用类型:Web应用>程序包/文件夹:$(System.DefaultWorkingDirectory)/ ** / *。zip)
我还将Azure上的Web应用程序的物理路径配置为site \ wwwroot \ build
我第一次创建并发布该版本时,它可以很好地部署,并且我看到更改反映在Web应用程序上。 但是,以后的每个版本都不会自动更新以显示在Web应用程序上。使用Kudu上的诊断控制台,我看到新的构建将更深入一个目录,例如,下一个构建将具有site \ wwwroot \ build \ build的物理路径。要查看新版本,我必须每次手动更改Web应用程序的路径。
编辑:这是Azure Web App设置以及Kudu上控制台的一些快照。
我的问题是:我如何设置整个过程,以便新版本替换Web应用程序上的旧版本,并避免将它们嵌套在旧版本中?