Gitlab-Ci: как я могу обмениваться данными между работами - PullRequest
0 голосов
/ 15 мая 2018

Я хочу поделиться файлом между двумя заданиями и изменить его, если есть измененные файлы.Сценарий python сравнивает файл cache.json с изменениями и иногда изменяет файл cahce.

.gitlab-ci.yaml:

image: ubuntu

stages:
  - test

cache:
  key: one-cache
  paths:
    - cache.json

 job1:
   stage: test

script:
  # - touch cache.json
  - cat cache.json
  - python3 modify_json_file.py
  - cat cache.json

Проблема заключается в том, что файл cache.json не существует вследующий запуск работы.Я получаю сообщение об ошибке: cat: cache.json: No such file or directory.Я также вставил один раз команду touch, но это ничего не изменит для следующего запуска без команды touch.

Я что-то не так или не понимаю cache в gitlab неправильно.

1 Ответ

0 голосов
/ 28 мая 2018

Я думаю, вам нужны артефакты, а не кеш.

Из кеш против артефакта :

кеш - использовать для временного хранения зависимостей проекта. Не полезно для хранения промежуточных результатов сборки, таких как файлы jar или apk. Кэш-память была разработана для ускорения вызова последующих запусков заданного задания, сохраняя такие вещи, как зависимости (например, пакеты npm, пакеты Go-вендора и т. Д.), Чтобы их не нужно было повторно получать из открытых интернет. Хотя кэш-память может использоваться для передачи промежуточных результатов сборки между этапами, могут быть случаи, когда артефакты лучше подходят.

артефакты - Используйте для результатов этапа, которые будут передаваться между этапами. Артефакты были разработаны для загрузки некоторых скомпилированных / сгенерированных битов сборки, и они могут быть выбраны любым числом одновременных бегунов. Они гарантированно доступны и предназначены для передачи данных между заданиями. Они также могут быть загружены из пользовательского интерфейса.

...