@DandyDel

GITLAB CI: Возможна ли передача артефактов между pipeline?

Всем доброго дня!
Хотел поинтересоваться, возможна ли передача артефактов между пайплайнами в гитлабе?
  • Вопрос задан
  • 2579 просмотров
Пригласить эксперта
Ответы на вопрос 2
zavoloklom
@zavoloklom
Fullstack разработчик
Для сохранения данных между pipeline нужно использовать cache.

Например для создания кэша для определенной стадии и определенной ветки, можно использовать вот такой ключ:
cache:
  key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"


Тогда при вызове pipeline для этой ветки в следующий раз на этой стадии будут получены закэшированные данные.

Документация с бОльшим кол-вом примеров: https://docs.gitlab.com/ee/ci/caching/index.html

---

Если по каким-то причинам необходимо получить именно артефакт и кэш не подходит - можете попробовать скачивать артефакт по API через curl.

Например, чтобы получить последний артефакт с job "test" из ветки master можно добавить такую строчку:
script:
  - 'curl --location --output artifacts.zip --header "JOB-TOKEN: $CI_JOB_TOKEN" "https://gitlab.example.com/api/v4/projects/$CI_PROJECT_ID/jobs/artifacts/master/download?job=test"'


Документация по АПИ артифактов и примеры: https://docs.gitlab.com/ee/api/job_artifacts.html
Ответ написан
Комментировать
Возможно вам подойдет директива cache
https://docs.gitlab.com/ee/ci/yaml/#cache

Проверяйте есть ли cache и не выполняйте make если он есть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы