Могу ли я ускорить запуск демона Gradle в Jenkins CI? - PullRequest
0 голосов
/ 24 апреля 2020

Каждый раз, когда я отправляю sh мою сборку Gradle Дженкинсу, на этом шаге он тратит значительное количество времени:

Starting a Gradle Daemon (subsequent builds will be faster)

Соответствующая часть моего Jenkinsfile выглядит следующим образом:

stage('Build') {
  steps {
    withGradle() {
      sh 'chmod +x gradlew'
      sh './gradlew build jar'
    }
  }
}

Я предполагал, что withGradle () будет пытаться постоянно запускать демона gradle в фоновом режиме на Jenkins, чтобы избежать такого рода вещей, но в данный момент я не совсем уверен, что он делает что-нибудь - документы для него невероятно расплывчаты.

Как мне улучшить время сборки с помощью этой системы?

1 Ответ

1 голос
/ 24 апреля 2020

withGradle предоставлен плагином Jenkins ' Gradle и обеспечивает подсветку вывода консоли и захват URL сканирования сборки (отображение URL сканирования сборки в пользовательском интерфейсе Jenkins). Это конечно ничего не делает с демоном Gradle. Вам не нужно withGradle для запуска сборок Gradle в Jenkins, в зависимости от того, используете ли вы, конечно, сборку. Выполнение всего лишь

stage('Build') {
  steps {
    sh 'chmod +x gradlew'
    sh './gradlew build jar'
  }
}

совершенно нормально.

Демоны Gradle перестают работать после 3 часов простоя ( FAQ ). Если сборка выполняется только один раз в день, демон наверняка будет мертв. Обычно это причина, по которой демон отсутствует и его необходимо запустить.

Gradle может также решить запустить новый экземпляр демона, если работающий демон классифицирован как несовместимый (среда сборки, например, настройки динамической памяти, изменена) , Согласно моей информации, это явно выделено в выводе сборки.

Что касается медленной производительности запуска демона, обычный совет запускать сборку на последних версиях Gradle и Java.

Последний совет, хотя. Если вы используете Git в качестве системы контроля версий, вы можете избавиться от sh 'chmod +x gradlew', позволив Git установить флаг исполняемого файла с помощью update-index :

git update-index --chmod=+x gradlew
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...