Дженкинс, проверяющий репо поверх ранее выписанного кода из Jenkinsfile - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть некоторый опыт работы с Jenkins, и я начал использовать Jenkinsfiles в прошлом году, но я столкнулся с чем-то, что мне не удалось объяснить (или, может быть, я просто еще не сталкивался с этим в документах).).

У меня есть Jenkinsfile как часть многоотраслевого конвейера.В этом Jenkinsfile у меня в основном есть следующее:

pipeline {
  agent any

  stages {
    stage('Checkout') {
      checkout(...)
    }

    stage('Build') {
      agent {
        docker {
          image 'maven:3-alpine'
          args '...'
        }
      }

      steps {
        sh 'mvn -B clean package'
        ...
      }
    }
  }
}

При выполнении этап «Сборка» вытягивает ветку на основе ветви, в которой я выполняю Jenkinsfile, и перезаписывает ранее извлеченную веткуиз этапа «Оформить заказ» (который является другой ветвью).

Теперь, если я перехожу шаги «Оформить заказ» в этап «Сборка» непосредственно перед командой Maven sh, это работает, но я замечаю, чтосначала этап все еще тянет ветку, как описано выше, а затем шаги «Оформить заказ» теперь перезаписывают эту ветвь.

Итак, я предполагаю, что в этом конкретном этапе «Сборка» есть что-то особенное, что яЯ пропустил, так как я использовал эту конкретную методологию ранее с другими проектами, единственное реальное отличие в том, что в других не было указано ни одного агента, и он не был основан на Java (не то, чтобы я думал, что это как-то связано с этим).

Любое понимание будет оценено, так как я хотел бы не просто применить этот «обходной путь», а сделать его правильно.

Заранее спасибо.

1 Ответ

0 голосов
/ 23 сентября 2019

Конвейер работает на любом доступном агенте, поэтому он перетаскивает репо с файлом Jenkins в случайно выбранный агент.

Затем на этапе сборки агент является докером-контейнером, поэтому я предполагаю, что репо нужноснова потяните к контейнеру, поскольку рабочая область контейнера не содержит файл с этапа извлечения, так как это произошло на другом агенте.

Вы можете изменить агент всего конвейера с любого на докер и удалить его со стадии сборки. Я думаю, это решит проблему.

Или, как вы уже сделали, переместите этап оформления заказа на этап сборки.


Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...