Один из моих клиентов хотел развернуть угловое приложение в Azure App Service. Azure Devops уже использовался в другом проекте, поэтому было очевидно использовать его для этого нового.
Я работаю над MacOS, поэтому HomeBrew может помочь установить пакеты. Если вы находитесь в Windows или Linux, вы можете найти Последние файлы для установки Анкет
На macOS, когда Homebrew уже установлен, вам просто нужно запустить команду:
brew install node
После установки узла вы можете получить последний угловой CLI. Эта утилита может помочь в различных задачах. Одним из них является создание новых угловых проектов с нуля. Чтобы установить Angular CLI во всем мире, вы можете использовать эту команду:
npm install -g @angular/cli
CLI будет доступен в любом месте вашей системы.
Теперь мы можем создать новый угловой проект. Команда очень проста:
ng new HelloWorld --strict false --routing false --style css
Эта команда создаст новый проект под названием Helloworld с настройками по умолчанию. Это может занять немного времени из -за количества модулей, чтобы добавить.
Перейти в папку проекта
cd HelloWorld
Вы можете попробовать приложение, используя команду:
ng serve
Эта команда генерирует приложение и создаст сервер узлов на порту 4200. Просто запустите свой браузер по адресу http://localhost: 4200/ Чтобы увидеть страницу по умолчанию.
Вы можете использовать Control C в терминале для выхода.
Поздравляю, наше заявление готово к развертыванию! Пришло время добавить часть CI/CD.
Я не буду объяснять, как создать здесь проект Azure DevOps. Это очень просто, и если у вас есть сомнения, вы можете Прочитайте документацию Анкет
Теперь мы должны создать новый трубопровод. Первая часть — создание приложения
- stage: Build displayName: Build stage jobs: - job: BuildJob pool: vmImage: 'ubuntu-20.04' steps: - task: NodeTool@0 inputs: versionSpec: '10.x' displayName: 'Install Node.js' - script: | cd '$(System.DefaultWorkingDirectory)/HelloWorld' npm install -g @angular/cli npm install ng build --prod displayName: 'npm install and build' - task: ArchiveFiles@2 displayName: 'Archive files' inputs: rootFolderOrFile: '$(System.DefaultWorkingDirectory)/HelloWorld/dist/HelloWorld/' includeRootFolder: false archiveType: zip archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip replaceExistingArchive: true - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip' ArtifactName: 'drop' publishLocation: 'Container'
Код довольно простой:
- Мы устанавливаем узел на агент
- Мы устанавливаем угловой CLI
- Мы устанавливаем пакеты NPM
- Мы строим угловое применение
- Мы застегливываем файлы
- Мы публикуем zip как артефакт
Вторая часть развертывает приложение:
- stage: Deploy displayName: 'Deploy Web App' dependsOn: Build condition: succeeded() jobs: - deployment: DeploymentJob pool: vmImage: 'ubuntu-20.04' environment: $(environmentName) strategy: runOnce: deploy: steps: - task: AzureWebApp@1 displayName: 'Deploy Azure Web App : $(webAppName)' inputs: azureSubscription: $(azureSubscription) appName: $(webAppName) appType: webAppLinux package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip
На этом этапе мы имеем только в действии. Мы получаем артефакт как zip -файл и публикуем его в Azure App Service с задачей Deploy Zip.
Полный код проекта — размещен на GitHub Анкет Если вы заинтересованы только кодом конвейера Azure, Вы можете прочитать это там Анкет
Оригинал: «https://dev.to/mcklmt/build-and-deploy-angular-app-with-azure-devops-3nnf»