Назад | Перейти на главную страницу

Свойство папки Jenkins: можно ли использовать свойство, определяемое папкой, в разделе SCM?

У меня есть много вакансий Дженкинса для каждого выпуска, который мы выпускаем. Я хочу иметь возможность легко определять новую версию и был счастлив найти Свойства папки Вставка

Я определил свойство папки для версии:

После этого я определил пробное задание, которое использует определение папки и повторяет его значение.

.

Я запускаю его и получаю значение в журнале:

version: master
    echo 'folder version: master'
    folder version: master
    Finished: SUCCESS

Теперь я добавил в задание определение SCM:

Но в журнале появляется ошибка. Как видите, $ folder_version не получила "главное" значение.

git rev-parse refs/remotes/origin/$folder_version^{commit} # timeout=10
git rev-parse refs/remotes/origin/refs/heads/$folder_version^{commit} # timeout=10
git rev-parse refs/heads/$folder_version^{commit} # timeout=10
   ERROR: Couldn't find any revision to build. Verify the repository and        branch configuration for this job.

Что мне здесь не хватает?

Спасибо за использование моего плагина. Что касается вашего вопроса, я верю в работу вольным стилем, шаг SCM не пытается интерполировать строку селектора, и поэтому вы можете видеть, что вывод консоли будет отображать это:

git rev-parse refs/remotes/origin/origin/$folder_version^{commit} # timeout=10

Где $folder_version - предполагаемый заполнитель не интерполируется.

В качестве альтернативы переключитесь на задания конвейера и сделайте что-то вроде этого:

stage('Test SCM'){
    node{
        withFolderProperties{
            echo("Branch is '${env.folder_version}'")
            git branch: env.folder_version, credentialsId: 'my-github-credentials', url: 'https://github.com/my-org/my-project.git'
            isUnix()?sh('ls -la'):bat('dir')
        }
    }
}

Надеюсь, это поможет.