这是我想做的,但我不知道是否可能。
我在bitbucket中有一个有趣的代码,jenkins用来部署一些Java应用程序。 这个Ansible代码具有jenkinsfile(以及其他内容),用于pepeline和部署JAVA应用程序。
这样的代码被詹金斯称为。
开发人员有4个工作,可以针对4个环境(dev-qa-stg-prd)进行部署,但目前他们只有dev和prod分支
问题是,开发者现在希望能够在作业开始之前选择Java代码(dev或prod(master))的分支。(例如:QA作业选择master分支,DEV作业选择dev分支等等。上)
我知道您可以使用jenkins选择带有git参数插件的分支,但是在这种情况下,可以选择ANSILBE CODE,它是执行工作的代码,而不是JAva应用程序代码(在jenkinsfile中) )
是否可以在作业开始之前选择一个分支,并根据选择选择Java应用程序的签出和构建是DEV还是PROD分支?
这是jenkinfile代码的一部分。
node {
stage ('Code Checkout') {
git branch: 'master or develop', ***-->would like here that can be choose master or dev***
credentialsId: 'xxxxxxxxxxxxxxxxxxxx',
//url: 'https://user@bitbucket.org/ev/der-azure.git'
url: 'https://user@bitbucket.org/ev/-service.git.git'
}
stage ('Check Branch') {
sh 'git branch'
}
stage('Compile and Build WAR') {
sh 'mvn clean compile war:war'
答案 0 :(得分:0)
不知道,为什么分支字段有问题, 但在高级选项“ Refspec”中可以提供帮助
编辑 不知道您的情况下正常的scm,但是正如我注意到您在jenkinsfile中进行另一次检出一样,以下步骤有效
stage('checkout') {
checkout scm: [$class: 'GitSCM',
userRemoteConfigs: [[url: 'https://repository.foo/git/fooRepoName.git' ,
credentialsId: 'credentialsIDToUseFromCredentialsPlugin']],
branches: [[name:'refs/tags/TAGNAME']]],
poll:false
}
stage('checkout') {
checkout scm: [$class: 'GitSCM',
userRemoteConfigs: [[url: 'https://repository.foo/git/fooRepoName.git' ,
credentialsId: 'credentialsIDToUseFromCredentialsPlugin']],
branches: [[name:'BRANCHNAME']]],
poll:false
}