Первый вопрос:
Вы можете сохранить файл jar как артефакт и получить к нему доступ в области сценария заданий второго этапа. Например,
FirstJob:
stage: FirstStage
scrip:
- <your commands here>
artifacs:
paths:
- ./artifacts/myOutput.jar
Теперь ваш «myOutput.jar» доступен в папке артефактов для всех следующих заданий. См. Здесь: https://docs.gitlab.com/ee/ci/pipelines/job_artifacts.html
Второй вопрос:
Насколько я знаю, в GitLab CI нет способа передавать переменные между конвейерами, поэтому это не было бы возможно, если я прав. Поскольку артефакты не добавляются в репозиторий, предыдущие артефакты также недоступны для следующих конвейеров. Тем не менее, если бы мне пришлось придумать решение на месте, я бы попробовал:
- Сохранение номера версии где-нибудь, доступного для каждого конвейера (облако, репо)
- git pu sh каждый артефакт, чтобы фактически добавить его в репозиторий, затем проверьте имя файла и увеличьте номер версии
- , используя параметр выпуска GitLab CI. CI может создать для вас объект выпуска, возможно, это тоже может помочь. Смотрите здесь: https://docs.gitlab.com/ee/ci/yaml/README.html#release