Azure devops React JS Azure DevOps Web App不会运行,但服务器中存在文件,并且管道中没有错误
我正在做一个简单的Azure DevOps CICD部署。我正在遵循所有步骤。首先,这是我的YAML文件。我保留了这些评论,以防万一,我犯的错误比我意识到的要多Azure devops React JS Azure DevOps Web App不会运行,但服务器中存在文件,并且管道中没有错误,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我正在做一个简单的Azure DevOps CICD部署。我正在遵循所有步骤。首先,这是我的YAML文件。我保留了这些评论,以防万一,我犯的错误比我意识到的要多 trigger: - master pool: vmImage: 'ubuntu-latest' # Set variables variables: directory: ReactJSRecipeApp steps: - task: NodeTool@0 inputs: versionSpec: '12
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
# Set variables
variables:
directory: ReactJSRecipeApp
steps:
- task: NodeTool@0
inputs:
versionSpec: '12.13.0'
displayName: 'Install Node.js'
- script:
npm install
displayName: 'npm install'
- script:
npm run build
displayName: 'npm build'
- task: CopyFiles@2
displayName: 'Copy files'
inputs:
sourceFolder: 'build'
Contents: '**/*'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
cleanTargetFolder: true
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Build Artifacts'
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
ArtifactName: 'www' # output artifact named www
- task: AzureWebApp@1
displayName: 'Deploy to App Service'
inputs:
azureSubscription: 'ReactJSRecipeAppConnection'
appName: 'reactjsrecipeappwebapp2'
appType: 'webApp'
package: '$(System.ArtifactsDirectory)/$(Build.BuildId).zip'
customWebConfig: '-Handler iisnode -NodeStartFile server.js -appType node'
所以,当我运行这个程序时,在管道中没有错误
此外,我想指出以下几点
- 如果我下载artifacts-zip文件夹,我就能够在本地运行该文件夹,并让我的react应用程序在本地主机服务器上正常运行
- 我通过Kudo工具检查我的Azure web应用程序,我看到wwwroot中的所有文件,时间戳与工件文件夹中的zip文件相匹配。因此,我假设文件确实被推送到web服务器中的正确位置
- 在我运行CICD触发器之前,这些azure web应用程序是全新创建的,我得到了标准的azure欢迎/登录页面。因此,网络应用本身是好的
因此,我从VisualStudio代码直接部署了工件发布文件夹。这个网络应用运行良好。因此,执行此步骤以确保web应用程序配置正确。好的,看来我的YAML文件不正确。我终于成功了 如果有人来找一个现成的React YAML文件(因为Azure DevOps文档在当前的形式下没有那么有用),我会把它贴在这里 包含简单react代码(包括YAML)的完整存储库在这里
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- script: |
npm install
npm run build
displayName: 'npm install and build'
- task: CopyFiles@2
inputs:
Contents: 'build/**' # Pull the build directory (React)
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory) # dist or build files
ArtifactName: 'www' # output artifact named www
# Default value: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/build/'
includeRootFolder: false
- task: AzureWebApp@1
inputs:
azureSubscription: 'ReactJSRecipeAppConnection'
appName: 'ReactJSRecipeApp4'
package: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'