我需要解决一些问题。我需要建立在码头项目,没有Jenkinsfile
。使用Jenkinsfile
,我可以使用Definition: Pipeline script from SCM
做类似的事情
node('vm-docker') {
stage('Get sources') {
checkout scm
}
stage('Run in container')
docker.image('maven:latest').inside {
sh "mvn clean package"
}
}
在这种情况下,Jenkins下载源代码,并且Jenkins正在使用来自该源代码的Jenkinsfile
。它起作用了。
但问题是,我不能推到这个回购,只能得到。我尝试通过代码使用Definition: Pipeline script
:
pipeline {
agent {label 'vm-docker'}
stages {
stage('Delete old sources') {
steps {
sh 'echo "Delete old sources"'
sh '''
ls -lta
rm -rf myprogram
ls -lta
'''
}
}
stage('Get sources') {
steps {
sh 'echo "Get sources"'
sh '''
git clone git@github.com:myname/myprogram.git
cd myprogram
git checkout develop
git branch
'''
}
}
stage('Build') {
agent {
docker { image 'maven:latest' }
}
steps {
sh 'mvn clean package'
}
}
}
}
但在这种情况下,Jenkins创建了两个独立的工作区,当然Jenkins无法创建mvn clean package
。
ls -lt /var/lib/jenkins/workspace/
total 0
drwxrwxr-x 2 jenkins jenkins 6 Jul 21 16:12 my_job@2@tmp
drwxrwxr-x 2 jenkins jenkins 6 Jul 21 16:12 my_job@tmp
drwxrwxr-x 3 jenkins jenkins 18 Jul 21 16:12 my_job
drwxrwxr-x 2 jenkins jenkins 6 Jul 21 15:35 my_job@2
那么,我该如何解决这个问题呢?我如何在docker容器中构建我的项目,但不上传到存储库Jenkinsfile
。
发布于 2019-07-22 09:47:55
Config options
跳过克隆Jenkinsfile所在的存储库。
pipeline {
options { skipDefaultCheckout() }
}
https://stackoverflow.com/questions/57135013
复制相似问题