Поделиться через


Создание и публикация пакета Node.js

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Вы можете создавать, тестировать и развертывать приложения Node.js в рамках системы непрерывной интеграции Azure Pipelines и непрерывной доставки (CI/CD). Узнайте, как использовать конвейер для создания пакета Node.js с помощью npm и опубликовать артефакт конвейера.

Пример конвейера автоматизирует процесс создания, тестирования и упаковки приложения Node.js, что делает его готовым к дальнейшему развертыванию или распространению.

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

Продукт Требования
Azure DevOps - Проект Azure DevOps.
— способность запуска потоков на хостинговых агентах Microsoft. Вы можете приобрести параллельное задание или запросить уровень "Бесплатный".
— Базовые знания о YAML и Azure Pipelines. Дополнительные сведения см. в разделе Создайте ваш первый конвейер.
Разрешения - :
     — Чтобы создать конвейер: необходимо быть в группе Участников, и у группы должно быть разрешение создать конвейер сборки установлено на "Разрешить". Члены группы "Администраторы проектов" могут управлять конвейерами.
    — Для создания подключений к службам необходимо иметь роль администратора или создателя для подключений служб.
GitHub — учетная запись GitHub.
- Подключение службы GitHub для авторизации Azure Pipelines.
Лазурный Подписка Azure
Продукт Требования
Azure DevOps - Проект Azure DevOps.
— Самостоятельно размещённый агент. Сведения о создании см. в разделе "Локальные агенты".
— Базовые знания о YAML и Azure Pipelines. Дополнительные сведения см. в разделе Создайте ваш первый конвейер.
Разрешения - :
    — Чтобы создать конвейер: необходимо быть в группе Участников, и у группы должно быть разрешение создать конвейер сборки установлено на "Разрешить". Члены группы "Администраторы проектов" могут управлять конвейерами.
    — Для создания подключений к службам необходимо иметь роль администратора или создателя для подключений служб.
GitHub — учетная запись GitHub.
- Подключение службы GitHub для авторизации Azure Pipelines.
Лазурный Подписка Azure

Сделайте форк примера кода

Создайте форк примерного серверного приложения на Express.js.

  1. Перейдите в репозиторий js-e2e-express-server .
  2. Выберите Fork в правом верхнем углу страницы.
  3. Выберите учетную запись GitHub. По умолчанию форк называется так же, как родительский репозиторий, но вы можете присвоить ему другое имя.

Внимание

В следующих процедурах вам может быть предложено создать соединение службы GitHub или вы будете перенаправлены на GitHub для входа в систему, установки Azure Pipelines или авторизации Azure Pipelines. Следуйте инструкциям на экране, чтобы завершить процесс. Дополнительные сведения см. в разделе Доступ к репозиториям GitHub.

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

  1. В проекте Azure DevOps выберите Pipelines>, а затем выберите GitHub в качестве расположения исходного кода.
  2. На экране "Выбор репозитория" выберите форк вашего образца репозитория.
  3. На экране "Настройка конвейера" выберите "Начальный конвейер". Azure Pipelines создает файл YAML с именем azure-pipelines.yml для конвейера.
  4. Выберите раскрывающийся список рядом с пунктом "Сохранить и запустить", нажмите кнопку "Сохранить", а затем снова нажмите кнопку "Сохранить ". Файл сохранён в ваш форкнутый репозиторий GitHub.
  5. На следующем экране нажмите кнопку "Изменить".

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

Измените файл azure-pipelines.yml следующим образом.

  1. Замените содержимое файла следующим кодом.

    trigger:
      - main
    
    pool:
      vmImage: 'ubuntu-latest'
    
    variables:
      nodeVersion: '18.x'
    
    steps:
      # Install Node.js
      - task: UseNode@1
        inputs:
          version: $(nodeVersion)
        displayName: 'Install Node.js'
    
      # Install dependencies
      - script: |
          npm install
        displayName: 'Install dependencies'
    
      # Build the project
      - script: |
          npm run build
        displayName: 'Build project'
    
      # Run tests
      - script: |
          npm test
        displayName: 'Run tests'
    
      # Copy project files to artifact staging directory
      - task: CopyFiles@2
        inputs:
          sourceFolder: '$(Build.SourcesDirectory)'
          contents: |
            src/**
            public/**
          targetFolder: '$(Build.ArtifactStagingDirectory)'
        displayName: 'Copy project files'
    
      # Publish pipeline artifact
      - task: PublishPipelineArtifact@1
        inputs:
          artifactName: 'nodejs-app'
          targetPath: '$(Build.ArtifactStagingDirectory)'
        displayName: 'Publish pipeline artifact'
    

В обновленном конвейере вы:

  • Установка Node.js: задача UseNode@1 устанавливает указанную версию Node.js (18.x).
  • Установка зависимостей: команда установки npm устанавливает необходимые зависимости для проекта Node.js.
  • Создание проекта: команда npm run build создает проект Node.js.
  • Выполнение тестов: команда теста npm запускает набор тестов проекта.
  • Копирование файлов: задача CopyFiles@2 копирует необходимые файлы проекта (например, src/** и public/**) в промежуточный каталог артефакта.
  • Публикация артефакта конвейера: задача PublishPipelineArtifact@1 публикует файлы из каталога промежуточного хранения артефактов в качестве артефакта конвейера с именем nodejs-app.

Запустите ваш конвейер

Выберите "Проверить и сохранить", а затем "Сохранить", " Запустить" и " Выполнить снова".

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

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

Поздравляем, вы успешно создали и запустили конвейер, который создал и проверил пакет Node.js. Чтобы расширить конвейер, можно:

Следующие шаги