Как использовать локальный gitlab-runner для тестирования двух заданий?

# #gitlab #gitlab-ci

Вопрос:

Я установил локальный gitlab runner для тестирования .gitlab-ci.yml конфигурации. Конвейер, который я хочу протестировать, состоит из двух заданий

 job1 -> job2
 

job2 использует данные, которые job1 генерируются. job1 выполняется около 10 минут.

Как я могу использовать этот локальный gitlab runner для простого тестирования job2 с выводом из job1 , без запуска job1 каждый раз и ожидания его вывода?

Могу ли я как-то «сохранить» «состояние / изображение» gitlab-runner после того, как я запустил job1 один раз?

Комментарии:

1. github.com/firecow/gitlab-ci-local это инструмент, который я использую локально для тестирования, я могу легко установить переменные среды, чтобы привязать его к моей базе данных, и я могу вызывать задания самостоятельно — я думаю, это стоит упомянуть

Ответ №1:

То, что вы ищете, — это комбинация artifacts with dependencies .

Например, предположим, что у вас job1 есть вывод в target каталоге, тогда вы можете определить его следующим образом:

 job1:
  stage: build
  script: ...
  artifacts:
    paths:
      - target/
 

и использовать его в job2 качестве:

 job2:
  stage: test
  script: ...
  dependencies:
    - job1
 

Кроме того, в случае, если вы хотите обратиться к артефактам из задания из совершенно другого проекта или даже загрузить их вручную, вы всегда можете загрузить их с помощью REST API.

Следующий URI загрузит последние артефакты, созданные в результате успешного выполнения задания:

 https://gitlab.com/<namespace>/<project>/-/jobs/artifacts/master/download?job=job1
 

Вы можете найти более artifacts подробную информацию об dependencies официальной документации и в ней: