Я пытаюсь развернуть реагирующее веб-приложение. Вот мой текущий файл yaml. Я следил за этим учебником.
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
variables:
azureSubscription: <myServiceConnection>
appName: <myAppName>
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
#so this calls the build object in package.json. Theoretically creates a /build/ directory
- script: |
npm install
npm run build
displayName: 'npm install and build'
#this should copy contents of build into artifactstagingdirectory.
- 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
- task: AzureWebApp@1
inputs:
azureSubscription: <myServiceConnection>
appName: <myAppName>
appType: webAppLinux
package: $(Build.ArtifactStagingDirectory)/**/www/build
customWebConfig: '-handler iisnode -NodeStartFile server.js -appType node'
По сути, проблема в том, что я не понимаю, где задача PublishBuildArtifact публикует файлы, и поэтому я не знаю, где указать пакет AzureWebApp в.
Итак, я включил system.debug и получил следующую информацию.
- npm install build использует следующий каталог:
/home/vsts/work/1/s
- copy files копирует папку сборки. Так что от
/home/vsts/work/1/s/build
до /home/vsts/work/1/a/build
. Это означает, что каталог artifactstagingdirectory /home/vsts/work/1/a
- Publi sh Build artifacts принимает каталог artifactstagingdirectory и публикует его в некоторой папке
www/build
. Предоставляется следующий вывод: Upload '/home/vsts/work/1/a' to file container: '#/8995596/www'
- Текущая задача AzureWebApp ищет в
/home/vsts/work/1/a/**/www/build
Поэтому я думаю, что это должен быть правильный каталог. Однако он не предоставляет весь путь в шаге 3. Так что, похоже, я ошибаюсь. Где создается этот www folder?
Кроме того, поскольку не похоже, что сборка / публикация приложения React создаст zip-файл, могу ли я просто указать его на папку сборки или www folder?