Краткое руководство. Создание и публикация пакета Node.js с помощью Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Конвейер Azure DevOps можно использовать для сборки, развертывания и тестирования приложений JavaScript.

В этом кратком руководстве описывается, как использовать конвейер для создания пакета Node.js с помощью диспетчера пакетов node (npm) и публикации артефакта конвейера.

Предварительные требования

В Azure DevOps должны быть следующие элементы:

YAML недоступен для TFS 2018.

1. Вилка примера кода

Вилка следующего примера Express.js серверного приложения на сайте GitHub.

https://github.com/Azure-Samples/js-e2e-express-server

2. Создание конвейера

  1. Войдите в Azure Pipelines. Браузер откроет https://dev.azure.com/my-organization-name панель мониторинга Azure DevOps и отобразит ее.

  2. Перейдите к проекту и выберите "Конвейеры>создать новый конвейер".

  3. Выберите GitHub в качестве расположения исходного кода.

  4. Если вы будете перенаправлены на GitHub для входа, введите учетные данные GitHub.

  5. Когда появится список репозиториев, выберите свой Node.js пример репозитория.

  6. Azure Pipelines анализирует код в репозитории и рекомендует Node.js шаблон для конвейера. Выберите этот шаблон.

  7. Azure Pipelines создает YAML-файл для конвейера. Нажмите кнопку "Сохранить и запустить>фиксацию" непосредственно в главной ветви, а затем нажмите кнопку "Сохранить и запустить снова".

  8. Запускается новый запуск. Дождитесь, пока он завершится.

По завершении у вас есть рабочий файл YAML azure-pipelines.yml в репозитории, который готов к настройке.

  1. Создайте конвейер и выберите шаблон YAML .

  2. Задайте пул агентов и путь к файлу YAML для конвейера.

  3. Сохраните конвейер и в очереди сборку. Когда появится сообщение о сборке #nnnnnnnn.n , выберите номерную ссылку, чтобы увидеть конвейер в действии.

3. Создание пакета и публикация артефакта

  1. Измените файл azure-pipelines.yml .

  2. Обновите задачу установщика инструментовNode.js , чтобы использовать Node.js версии 16 LTS.

    trigger:
    - main
    
    pool:
      vmImage: 'ubuntu-latest'
    
    steps:
    - task: NodeTool@0
      inputs:
        versionSpec: '16.x'
      displayName: 'Install Node.js'
    
    - script: |
        npm install
      displayName: 'npm install'
    
    - script: |
        npm run build
      displayName: 'npm build'
    
  3. Добавьте новые задачи в конвейер, чтобы скопировать пакет npm, package.json и опубликовать артефакт. Задача "Копирование файлов" копирует файлы из локального пути в агенте, где файлы исходного кода скачиваются, и сохраняет файлы в локальный путь к агенту, в который копируются все артефакты перед отправкой в место назначения. Эти файлы сохраняются в папку npm . Задача публикации артефактов конвейера, загружает файлы из предыдущих задач копирования файлов и делает их доступными в виде артефактов конвейера, которые будут опубликованы вместе со сборкой конвейера.

    - task: CopyFiles@2
      inputs:
        sourceFolder: '$(Build.SourcesDirectory)'
        contents: '*.tgz' 
        targetFolder: $(Build.ArtifactStagingDirectory)/npm
      displayName: 'Copy npm package'
    
    - task: CopyFiles@2
      inputs:
        sourceFolder: '$(Build.SourcesDirectory)'
        contents: 'package.json' 
        targetFolder: $(Build.ArtifactStagingDirectory)/npm
      displayName: 'Copy package.json'   
    
    - task: PublishPipelineArtifact@1
      inputs:
        targetPath: '$(Build.ArtifactStagingDirectory)/npm'
        artifactName: npm
      displayName: 'Publish npm artifact'
    

4. Запуск конвейера

Сохраните и запустите конвейер. После выполнения конвейера убедитесь, что задание выполнено успешно и отображается опубликованный артефакт.

Снимок экрана: успешный запуск конвейера с артефактом.

  1. Вилка следующего репозитория на сайте GitHub.

    https://github.com/Azure-Samples/js-e2e-express-server
    
  2. После создания примера кода в собственном репозитории создайте первый конвейер и выберите шаблон пустого процесса .

  3. Выберите "Процесс" на вкладке "Задачи " в редакторе конвейера и измените свойства следующим образом:

    • Очередь агента:Hosted Ubuntu 1604
  4. Добавьте в конвейер следующие задачи в указанном порядке:

    • npm

      • Команды:install
    • npm

      • Отображаемое имя:npm test
      • Команды:custom
      • Команда и аргументы:test
    • Публикация результатов теста

      • Оставьте все значения по умолчанию для свойств
    • Архивные файлы

      • Корневая папка или файл для архивации:$(System.DefaultWorkingDirectory)
      • Имя корневой папки, добавляемой к архивным путям: Беспрепятственно
    • Публикация артефактов сборки

      • Оставьте все значения по умолчанию для свойств
  5. Сохраните конвейер и в очереди сборку, чтобы увидеть ее в действии.

Дальнейшие действия

Поздравляем, вы успешно завершили работу с этим руководством!