我的任务是从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>
答案 0 :(得分:1)
您正在代码目录中签出,因此您需要使用代码目录作为工作目录。默认情况下,所有步骤都将运行到项目工作区中。
您可以使用dir
来更改工作目录,请参见以下示例:
steps{
Download_Repositories()
dir("${WORKSPACE}/code"){
sh '''
ls -ltr code/playbooks/
git diff --name-only --diff-filter=M @~ > list.csv
'''
}
}