Ошибка в конвейере: groovy .lang.MissingPropertyException: Нет такого свойства: - PullRequest
0 голосов
/ 28 апреля 2020

я пытаюсь разобраться с этим с помощью сценария groovy для jenkins.

Вот так выглядит мой код (только важная часть, делающая его читабельным):

node {
    properties([
        parameters([
            string(defaultValue: '', name: 'ENVIRONMENT'),
            string(defaultValue: '', name: 'GROUP'),
            string(defaultValue: '', name: 'COMMIT_HASH')
        ])

    ])

    try {
        stage('Clean before checkout') {
            sh "git clean -xfd -e '.composer' -e 'vendor' | echo 'Cleanup done!'"
        }
            // If environment is feature, update .env variables to use the specified commit hash 
            if (ENVIRONMENT == 'feature' ) {
                sh """
                    sed -i -e 's/COMMIT_HASH/${params.COMMIT_HASH}/g' .env
                """
            }
        }

...
...

Итак, я запускаю этот конвейер от других, и в некоторых случаях COMMIT_HA SH может быть пустым. Когда commit_ha sh существует, код работает как положено. Но когда это не так, даже если конвейер работает полностью, в конце я всегда получаю:

groovy.lang.MissingPropertyException: No such property: COMMIT_HASH for class: groovy.lang.Binding

Использование следующего также не сработало: sed -i -e 's/COMMIT_HASH/${COMMIT_HASH}/g' .env

Почему он не работает хотя условие не выполнено? Хотите полностью понять, как это работает, любая помощь приветствуется! Спасибо

...