Как получить каталог проекта root в конвейере Jenkins? - PullRequest
0 голосов
/ 10 апреля 2020

Я использую 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 в Трубопровод Дженкинса?

...