Как заставить Jenkins создать приложение AngularJS из одного репозитория GIT и выполнить тесты из отдельного репозитория - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь реализовать Jenkins для нашего тестового проекта.Мой ожидаемый рабочий процесс выглядит следующим образом:

  1. Jenkins создаст приложение (AngularJS), когда разработчики отправят код в приложение в GIT Repo (запуск NPM)
  2. Jenkinsзапустит приложение (/> ng serve) - это запустит сервер на локальном хосте: 4200

  3. Дженкинс переключится на репозиторий Test Script

  4. Дженкинс начнет выполнение теста
  5. Дженкинс закроет сервер после выполнения теста

Мои проблемы:

a.когда Jenkins строит в конце шага 2. Он создает экземпляр сервера, который будет продолжать работать.В этой ситуации окно команд выделено серверу и не принимает никаких команд.Итак, как я могу заставить Дженкинса перейти в тестовый каталог и начать тестировать приложение?

b.В конце процесса, как остановить сервер через Jenkins, не вводя вручную «Ctl + C»?

1 Ответ

0 голосов
/ 15 февраля 2019

Отделяйте свои сборки.Один трубопровод построен из основного репо.Второй конвейер выбирается из тестового репозитория и запускает тесты.Первый конвейер

node("main") {
   stage("build") {
      git url: "https://github.com/your project repo",  credentialsId: "[credentials if need or avoid this param]", branch: "branch name"
       rest of steps
   }

   stage("Test") {
      build job:"TestJob", wait: true
   }
}

И код задания TestJob:

node("main") {
   stage("build") {
      git url: "https://github.com/your test repo",  credentialsId: "[credentials if need or avoid this param]", branch: "branch name"
       rest steps to test app
    } 
 }

Вы можете проверить документацию выполнения шага сборки

...