git 合并如何用于多分支管道?
How git merge works for multibranch pipeline?
我正在为我的应用程序在 Jenkins 中设置一个多分支管道。我不确定签入存储库的不同 jenkinsfile 如何处理合并。
例如,我有 3 个分支,master
、develop
和 feature-1
,所有这些分支都需要不同的管道配置(见下文)。
master
:
1.建造
2.测试
3.部署到产品
4. 用邮件告诉大家
develop
:
1.建造
2.测试
3. 部署到 DEV
feature-1
:
1.建造
2. 测试
从第 1 天开始,master
有 Jenkinsfile
用于产品发布,develop
分支了相同的 Jenkinsfile
内容,进行了更改以部署到 DEV 并删除最后一步,承诺改变。
第 2 天:feature-1
分支 develop
,进行更改以删除部署步骤并提交。
当 feature-1
完成后,我们将 feature-1
合并到 develop
分支,因为删除最后一步的提交日期在开发提交之后,这将导致自动合并并使 "develop" 分支不部署。当 develop
合并到 master
时也会发生同样的情况
基于以上潜在问题,我想我一定是在这里做错了什么,在多分支管道中管理 Jenkinsfile 的最佳实践是什么?
实施一些流量控制 (https://jenkins.io/doc/book/pipeline/syntax/#flow-control) 并在所有分支中保持相同的 Jenkinsfile
。
if (env.BRANCH_NAME == 'master'){
echo 'do all the things'
} else if (env.BRANCH_NAME == 'develop'){
echo 'do a few things'
} else if (env.BRANCH_NAME == 'feature-1'){
echo 'do a couple things'
}
Jenkins 在使用多分支管道 (https://jenkins.io/doc/book/pipeline/multibranch/#additional-environment-variables) 时暴露了 BRANCH_NAME
信息。
您可以使用条件语句,例如
// Note: this is a declarative pipeline
stage('deploy PROD'){
when { branch 'master' }
steps {
...do deploy...
}
}
stage('deploy DEV'){
when { branch 'develop' }
steps {
...do deploy...
}
}
...
有关详细信息,请参阅:
我正在为我的应用程序在 Jenkins 中设置一个多分支管道。我不确定签入存储库的不同 jenkinsfile 如何处理合并。
例如,我有 3 个分支,master
、develop
和 feature-1
,所有这些分支都需要不同的管道配置(见下文)。
master
:
1.建造
2.测试
3.部署到产品
4. 用邮件告诉大家
develop
:
1.建造
2.测试
3. 部署到 DEV
feature-1
:
1.建造
2. 测试
从第 1 天开始,master
有 Jenkinsfile
用于产品发布,develop
分支了相同的 Jenkinsfile
内容,进行了更改以部署到 DEV 并删除最后一步,承诺改变。
第 2 天:feature-1
分支 develop
,进行更改以删除部署步骤并提交。
当 feature-1
完成后,我们将 feature-1
合并到 develop
分支,因为删除最后一步的提交日期在开发提交之后,这将导致自动合并并使 "develop" 分支不部署。当 develop
合并到 master
基于以上潜在问题,我想我一定是在这里做错了什么,在多分支管道中管理 Jenkinsfile 的最佳实践是什么?
实施一些流量控制 (https://jenkins.io/doc/book/pipeline/syntax/#flow-control) 并在所有分支中保持相同的 Jenkinsfile
。
if (env.BRANCH_NAME == 'master'){
echo 'do all the things'
} else if (env.BRANCH_NAME == 'develop'){
echo 'do a few things'
} else if (env.BRANCH_NAME == 'feature-1'){
echo 'do a couple things'
}
Jenkins 在使用多分支管道 (https://jenkins.io/doc/book/pipeline/multibranch/#additional-environment-variables) 时暴露了 BRANCH_NAME
信息。
您可以使用条件语句,例如
// Note: this is a declarative pipeline
stage('deploy PROD'){
when { branch 'master' }
steps {
...do deploy...
}
}
stage('deploy DEV'){
when { branch 'develop' }
steps {
...do deploy...
}
}
...
有关详细信息,请参阅: