Причины Jenkinsfile для того, чтобы делать тайник / распаковку? - PullRequest
0 голосов
/ 01 октября 2018

В Jenkinsfile моего проекта я постоянно встречаю такие команды, как stash "src" и unstash "src"

Каковы основные причины выполнения stash unstash в работе Jenkins Pipeline?

1 Ответ

0 голосов
/ 01 октября 2018

Конвейеры позволяют вам указать агента для каждого этапа, который вы хотите выполнить.Например, если вы хотите запустить тесты на подчиненном устройстве Jenkins Windows и на подчиненном устройстве Jenkins Linux.Проблема при использовании разных ведомых устройств на разных этапах в одном трубопроводе заключается в том, что содержимое вашей рабочей области не предоставляется новому ведомому устройству.

Таким образом, вы можете выполнить git clone на подчиненном устройстве с пометкой «Linux».и когда следующий этап должен быть выполнен на ведомом устройстве Windows, тогда ведомому устройству Windows необходимо получить данные из рабочей области (из git clone), которая в настоящее время находится на ведомом устройстве Linux.

Здесь вы можете использовать stash / unstash.Вы можете спрятать свой контент от подчиненного устройства Linux (это сохранит ваши спрятанные файлы на главном устройстве) и распаковать его на ведомом устройстве Windows (= извлечь данные в рабочей области этого ведомого устройства и удалить их из главного устройства).В вашем примере вы сохраните файлы в src на вашем ведущем устройстве, чтобы вы могли загрузить их снова на другом ведомом устройстве на более позднем этапе.

Для небольших файлов следует использовать stash и unstash, поэтому примервыше не очень хороший (или ваш репо должен быть маленьким).Stash создан для хранения некоторых небольших файлов / ресурсов, а не для хранения целых хранилищ (будет очень медленным).Затем вам нужно обратиться к системам, которые совместно используют рабочие пространства между несколькими ведомыми устройствами.

Использование stash не требуется, если вы определяете «глобального» агента для всего своего конвейера и запускаете весь конвейер на одном и том же ведомом устройстве, потому что нет '• необходимость отправлять / делиться контентом рабочей области.Но в этом случае вы потеряете некоторую гибкость конвейеров, например, параллельные этапы на разных ведомых устройствах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...