Включить команду Git в конвейер Jenkins

Моя задача — извлечь код из Bitbucket и проверить, есть ли какие-либо новые зафиксированные файлы или какие-либо файлы, измененные с момента последней фиксации. Если доступны какие-либо изменения, мне нужно скопировать имя файла и путь к файлам .csv. Команда ниже проверит различия и скопирует их в файлы .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: '[email protected]: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>

person asur    schedule 07.02.2019    source источник


Ответы (1)


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

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

steps{
    Download_Repositories()
    dir("${WORKSPACE}/code"){
        sh '''
            ls -ltr code/playbooks/
            git diff --name-only --diff-filter=M @~ > list.csv
            '''
    }
}
person Amit Nanaware    schedule 07.02.2019
comment
Я получаю сообщение об ошибке ниже: - git diff --name-only --diff-filter=M @~ fatal: ambiguous argument '@~': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' - person asur; 08.02.2019