Включить команду Git в конвейер Jenkins - PullRequest
0 голосов
/ 07 февраля 2019

Моя задача - извлечь код из Bitbucket и проверить, были ли зафиксированы новые файлы или файлы, измененные после последней фиксации.Если есть какие-либо шаммы, мне нужно скопировать имя файла и путь к CSV-файлам.Ниже commmand проверит diff и скопирует в .csv файлы.Но та же активность должна выполняться через конвейер Jenkinsfile.

git diff --name-only --diff-filter=M @~ > list.csv

Сценарий Jenkinsfile: -

#!groovy
void Download_Repositories(){
      checkout([
        $class: 'GitSCM', branches: [[name: '*/master']],
        extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'code']],
        userRemoteConfigs: [[url: 'git@bitbucket.org:org-dev/master.git',
        credentialsId:'service-user']]
      ])
}
pipeline {
    agent { label 'LABEL' }
//    triggers { pollSCM('*/5 * * * *') }
  stages {
      stage('Download Repositories') {
        steps {
            Download_Repositories()
            sh '''
            ls -ltr code/playbooks/
            git diff --name-only --diff-filter=M @~ > list.csv
            '''
          }
        }

   }//stages
}//pipeline

Ошибка: -

usage: git diff [--no-index] <path> <path>

1 Ответ

0 голосов
/ 07 февраля 2019

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

Вы можете использовать dir, чтобы изменить рабочий каталог, см. Пример ниже:

steps{
    Download_Repositories()
    dir("${WORKSPACE}/code"){
        sh '''
            ls -ltr code/playbooks/
            git diff --name-only --diff-filter=M @~ > list.csv
            '''
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...