Я пытаюсь создать сценарий конвейера в jenkins для создания образа докера и развертывания его через helm в kubernetes. номер версии диаграммы и docker-image - это SemVer с добавлением краткой формы git commit-hash. версия хранится в env VERSION
, а хеш коммита - в env GIT_COMMIT_SHORT
.
Я хочу отредактировать Chart.yaml
и values.yaml
штурвальной диаграммы с помощью sed, чтобы она соответствовала тегу версии docker-image и chart, e. г. 2.7.1-9fa6sof8
.
Я пытался поставить фигурные скобки вокруг $VERSION
и $GIT_COMMIT_SHORT
, но это не сработало. Я пытался сбежать $
с помощью \
, но тогда он не будет интерпретировать envs.
Оператор sed для редактирования Chart.yaml
:
sh """sed -i 's/^version: .*\$/version: $VERSION-$GIT_COMMIT_SHORT/' $CHART_NAME/Chart.yaml"""
ошибка, которую я вижу в Дженкинсе:
sed -i s / ^ версия:. * $ / Версия: 2.7.1-9fa6sof8 /
$ CHART_NAME / Chart.yaml
sed: -e выражение # 1, символ 39: неопределенная команда `s '
Мне нужно утверждение с правильными escape-кодами.