Артефакт обычно является конечным продуктом сборки.Он может или не может быть скомпилирован, и он может или не может быть упакован определенным образом (например, JAR, WAR для Java, Gems для Ruby или Eggs для Python).
Артефакты - это просто абстракция для разговорао том, что выпущено в производство, или что содержит код качества производства.Так, например, если бы я хотел выпустить веб-приложение на основе Java, упакованное как WAR, мне нужно было бы убедиться, что мой инструмент сборки был способен упаковывать приложение как WAR, и мне нужно было бы убедиться, что везде, где оно было развернутобыл способен принять WAR как артефакт для запуска моего приложения.
Инструменты сборки, такие как Gradle (или Maven), позволяют нам делать различные вещи, включая (но не ограничиваясь):
- Тестирование нашего кода в зависимости от среды
- Скомпилирование нашего кода в зависимости от среды
- Упаковка нашего кода (например, создание артефакта) в зависимости от среды
- Экспортируйте наш артефакт в хранилище артефактов (в вашем случае S3)
Jenkins предоставляет вам место для выполнения всего вышеперечисленного в «чистой» среде;вам не нужно полагаться на машину одного человека для создания артефактов промышленного уровня, как и вы.Сервис сборки, такой как Jenkins, позволяет команде непрерывно создавать или постоянно развертывать артефакты по своему желанию, и обычно Jenkins выполняет этап публикации артефакта в хранилище артефактов.
Я не могу говорить с жизненным циклом вашего приложения - я дляНельзя было бы использовать S3 в качестве места для размещения артефактов, но принято считать, что у вас есть центральное место для размещения этих артефактов, и вы затем полагаетесь на это центральное место для последующего развертывания в различных других службах.