Jenkins загрузка переменных из файла с подстановками
Предположим вам необходимо использовать .env
файлы в Jenkins.
rabbitmq.env
RABBITMQ_DEFAULT_USER=guest
celery.env
AMQP_USERNAME=${RABBITMQ_DEFAULT_USER}
Дженкинс умеет загружать groovy-файлы но предположим вы используете эти .env файлы где-то еще и не можете конвертировать их в groovy скрипты.
Значит вам необходима функция, которая загрузит .env
файл в переменные Jenkins environment
(env.*
).
Далее приведена Jenkins(groovy) функция, которая загружает.env
файл (на каждой строке key=value
)
в Jenkins env
-переменные.
После ее работы вы сможете использовать env.AMQP_USERNAME
в вашем Jenkinsfile.
Однако эта функция не подставляет значение переменных. То есть env.AMQP_USERNAME
будет буквально строкой ${RABBITMQ_DEFAULT_USER}
.
Если вам необходимо подставить все ${..}
то в этом вам поможет следующая комбинация
groovy и Питона:
Как их использовать в декларативном пайплайн Jenkinsfile:
Эта техника поможет вам загрузить в переменные Jenkins .env
файл
с подстановкой значений переменных, так что env.AMQP_USERNAME
== guest