我的项目有一个运行流畅的Jenkinsfile。问题是我只需要在特定的场合下运行一些命令。我正在使用Github插件。我只需要在主标签或新标签中运行部署,一个用于暂存,另一个用于生产。
pipeline {
agent any
stages {
stage('Test') {
steps {
sh 'node -v'
sh 'yarn install'
sh 'yarn test -- --coverage'
}
}
stage('Build') {
steps {
sh 'yarn build'
}
}
stage('Deploy') {
steps {
sh 'aws s3 sync ./build s3://my.bucket --only-show-errors'
}
}
}
}
我需要主部署到一个桶,当它是新的标签到另一个。我如何创建这个条件?
2条答案
按热度按时间pkln4tw61#
将以下内容作为两个单独部署场景的两个条件如何?我认为最好使用变量来指示部署场景,而不是将其分为两个明显不同的步骤。例如,你可以写一个shell脚本,根据标签/分支/任何你需要的东西来处理里面的所有东西,而不是强迫自己在管道级别上控制它。
每个阶段只有在
when
部分满足时才执行它的步骤。阶段Deploy
将仅适用于master
分支,而阶段Deploy_NonMaster
将仅适用于任何非主分支。使用when
条件语句编写的方法,您可以检查任何内容,包括标记或其他内容。g2ieeal72#
你需要使用Jenkins的多分支管道功能来完成。查看此文档https://www.jenkins.io/doc/tutorials/build-a-multibranch-pipeline-project/#add-deliver-and-deploy-stages-to-your-pipeline