目前,我们正在为CI/CD项目开发集中控制系统。有许多项目有很多分支,所以我们使用多分支管道(这迫使我们从项目分支使用Jenkinsfile,所以我们不能像pipeline项目那样提供自定义的Jenkinsfile )。我们希望将所有东西控制在1git repo下,每个项目都应该有kubernetes YAMLS,Dockerfile和Jenkinsfile。当开发人员按下build按钮时,他们项目存储库中的jenkinsfile应该会运行我们的Jenkinsfile。有可能做到这一点吗?
例如:
pipeline {
agent any
stages {
stage('Retrieve Jenkinsfile From Repo') { // RETRIEVE JENKINSFILE FROM REPO
steps {
git branch: "master",
credentialsId: 'gitlab_credentials',
url: "jenkinsfile_repo"
scripts {
// RUN JENKINSFILE FROM THE REPO
}
}
}
}
}我们这样做的主要原因是,jenkinsfile中有类似于生产数据库连接的敏感上下文。我们不想将jenkinsfile存储在开发人员的repo下。此外,除了使用1个repo之外,您还可以建议正确的方法来实现这一点。
编辑:https://plugins.jenkins.io/remote-file/
这个插件解决了我所有的问题。我不能尝试下面的评论
发布于 2020-07-24 21:25:30
作为一种选择,您可以使用管道构建步骤。
pipeline {
agent any
stages {
stage ('build another job') {
steps {
build 'second_job_name_here'
}
}
}
}发布于 2020-07-24 21:36:58
尝试load步骤
scripts {
// rename Jenkinsfile to .groovy
sh 'mv Jenkinsfile Jenkins.groovy'
// RUN JENKINSFILE FROM THE REPO
load 'Jenkinsfile.groovy'
}https://stackoverflow.com/questions/63073004
复制相似问题