Я использую Jenkins v2.222.1
и создал простой конвейер для проекта. Для развертывания я хочу установить название выпуска / тега вручную. Итак, план, как я хочу, чтобы он работал:
- Я изменяю название / номер выпуска в определенном файле, например,
/root/of/my/project/release.txt
. - Я запускаю развертывание, нажимая Build Now
- Дженкинс считывает название / номер выпуска из файла.
- Дженкинс извлекает соответствующий тег (и создает и
push
проверяет соответствующую ветвь).
pipeline {
agent {
label 'dev'
}
stages {
stage('build') {
environment {
APP_VERSION = sh (
script: 'eval "cat $REMOTE_ROOT_DIRECTORY/release.txt"', returnStdout: true
)
}
steps {
sh 'git fetch --all --tags'
sh 'git checkout ${APP_VERSION} -b v${APP_VERSION}'
...
}
}
...
}
}
Поскольку я не узнал, как получить путь к каталогу remote root , я использую обходной путь: $WORKSPACE
помещается в папку /workspace/$project_name
(где $project_name
- это название / название проекта, определенное в Jenkins). Поэтому я просто использую эти знания и определяю путь для cat
как ../../release.txt
. Это работает, но немного грязно из-за жестко заданного пути в Jenkinsfile
.
Как динамически получать / извлекать каталог project root в Трубопровод Дженкинса?