Как выполнить подстановку переменных из файла свойств и прочитать файл через Jenkinsfile - PullRequest
0 голосов
/ 04 августа 2020

Я хочу прочитать значение из файла свойств, разрешив замену переменных, например.

Имя файла моего свойства "app.txt", и содержимое будет выглядеть следующим образом

[app]
conf_link_1 = "https://bitbucket-global.com:8777/conf_1.git"
conf_link_2 = "https://bitbucket-global.com:8777/conf_2.git"
app_link_1 = "https://bitbucket-global.com:8777/app_1.git"

LINKS = ["${conf_link_1}","${conf_link_2}","${app_link_1}"]

My Jenkinsfile -

#!/usr/bin/env groovy
@Library(['jenkins_2GlobalLibrary@master']) _
(branchType, branchName) = env.BRANCH_NAME.tokenize('/')

node('java180u161-maven325-pythonanaconda352') {

    stage ( 'Checkout' ) {

        checkout scm
    }

    stage ('getting Links from app.txt file') {

        def props = readProperties file: 'app.txt'
        def CONFIG_LINK_TEST = props['LINKS']

        echo "LIST OF LINKS = ${CONFIG_LINK_TEST}"
        }

}

My Output -

LIST OF LINKS =  ["${conf_link_1}","${conf_link_2}","${app_link_1}"]

Желаемый результат -

LIST OF LINKS =  ["https://bitbucket-global.com:8777/conf_1.git","https://bitbucket-global.com:8777/conf_2.git","https://bitbucket-global.com:8777/app_1.git"]

Мой код не заменяет переменную, присутствующую в списке «ССЫЛКИ "присутствует в" app.txt "вместо этого он напрямую печатает значение.

Тот же код работает, если я помещаю все содержимое app.txt в свой Jenkinsfile. Что мне не нужно, потому что следующие config_link и app_links будут динамически обновляться другим заданием.

conf_link_1 = "https://<<dynamic_links>>"
conf_link_2 = ".."
app_link_1 = ".."

Пожалуйста, помогите мне с этим кодом.

...