Мне трудно понять и настроить конвейеры сборки / выпуска для развертывания приложения Nest JS в Azure DevOps (ADO).
Я развертываю в Linux веб-приложении, размещенном в Azure.
Насколько я понимаю, если я запускаю приложение локально, используя что-то вроде npm run start
, оно создает папку dist
в моем каталоге проекта root.
Итак, при написании YAML для сборки и развертывания. Мой мыслительный процесс состоит в следующем:
- Запуск обновления NPM.
- Запуск
npm run build
для сборки приложения и создания папки dist
. - Скопируйте содержимое приложения (или только папку dist?) В целевую папку (
/home/site/wwwroot
) - Запустите
npm run start:prod
, чтобы запустить сервер.
Вот мой YAML пока что:
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UseNode@1
inputs:
version: '14.x'
checkLatest: true
- task: Npm@0
displayName: Run NPM Update for NestJS
inputs:
cwd: '$(Build.SourcesDirectory)/ProjectName'
command: update
- task: Npm@0
displayName: Build NestJS
inputs:
cwd: '$(Build.SourcesDirectory)/ProjectName'
command: run
arguments: "build"
- task: CopyFiles@2
inputs:
Contents: 'dist/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Проблема в том, что после завершения процесса сборки я не вижу папку dist
в /home/site/wwwroot/ProjectName
. Может ли кто-нибудь помочь мне с тем, чего мне не хватает?
Также, побочный вопрос о Azure DevOps, что означает $(Build.SourcesDirectory)
и $(Build.ArtifactStagingDirectory)
, и как и где эти переменные среды установить?