Как Дженкинс, Градл и «артефакты» все связаны друг с другом? - PullRequest
0 голосов
/ 30 января 2019

Я работаю над проектом, в который мы загружаем артефакты в AWS, который является нашим центральным хранилищем.Я не уверен, почему мы храним артефакты там;какая польза от этого?Мы используем скрипт Jenkins для загрузки артефактов из нашей сборки Gradle в AWS.Я хочу знать связь между артефактами, Градлом и Дженкинсом.Мы используем хранилище S3 для артефактов.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Артефакт обычно является конечным продуктом сборки.Он может или не может быть скомпилирован, и он может или не может быть упакован определенным образом (например, JAR, WAR для Java, Gems для Ruby или Eggs для Python).

Артефакты - это просто абстракция для разговорао том, что выпущено в производство, или что содержит код качества производства.Так, например, если бы я хотел выпустить веб-приложение на основе Java, упакованное как WAR, мне нужно было бы убедиться, что мой инструмент сборки был способен упаковывать приложение как WAR, и мне нужно было бы убедиться, что везде, где оно было развернутобыл способен принять WAR как артефакт для запуска моего приложения.

Инструменты сборки, такие как Gradle (или Maven), позволяют нам делать различные вещи, включая (но не ограничиваясь):

  • Тестирование нашего кода в зависимости от среды
  • Скомпилирование нашего кода в зависимости от среды
  • Упаковка нашего кода (например, создание артефакта) в зависимости от среды
  • Экспортируйте наш артефакт в хранилище артефактов (в вашем случае S3)

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

Я не могу говорить с жизненным циклом вашего приложения - я дляНельзя было бы использовать S3 в качестве места для размещения артефактов, но принято считать, что у вас есть центральное место для размещения этих артефактов, и вы затем полагаетесь на это центральное место для последующего развертывания в различных других службах.

0 голосов
/ 30 января 2019

Артефакт является результатом вашей сборки Дженкинса.Все дело в том, чтобы создать артефакт один раз, а затем использовать его повторно, когда вам необходимо развернуть его на новом сервере / в среде.

Файл Gradle содержит информацию о том, как создавать артефакт (например, Maven pom.xml). Jenkins - это инструмент, который запускает сборку Gradle и фактически собирает артефакт (хотя вы можете создавать артефакты на локальном компьютере или агенте TeamCity).Артефакт - это результат сборки, который вы будете развертывать на серверах или доставлять клиентам.

...