jenkins - 将配置传递到 Jenkins 流水线
问题描述
我正在尝试找到一种方法,在执行时将 Multibranch 管道作业的配置传递到 jenkinsfile 中。
我的目标是配置如下内容:
Branch : Server
"master" : "prodServer"
"develop" : "devServer"
"release/*", "hotfix/*" : "stagingServer"
"feature/Thing-I-Want-To-Change-Regularly" : "testingServer"
然后我可以在其中编写这样的 Jenkinsfile:
pipeline {
agent any
stages {
stage('Example Build') {
steps {
echo 'Hello World'
}
}
stage('Example Deploy') {
when {
//branch is in config branches
}
steps {
//deploy to server
}
}
}
}
我很难找到实现这一目标的方法。EnvInject Plugin似乎是非流水线项目的解决方案,但它目前存在安全问题并且仅支持部分流水线。
解决方案
如果要根据分支部署到不同的服务器,在 Multibranch Pipelines 中可以使用:
when { branch 'master' }
(形容词)
或者
${env.BRANCH_NAME}
(脚本)
访问您所在的分支,然后添加逻辑以基于此部署到相应的服务器。
推荐阅读
- azure-databricks - 尝试访问 ADLS Gen2 上的 databricks 文件系统时出现 mount.err
- r - 如何合并(?)两个不同的数据框,但它们共享的行?
- java - 对字符串进行排序并解析为列表
- python - 没有从 api 获取完整数据到 Jupyter Notebook
- authentication - kong 的 admin api 身份验证
- ios - 当日期为中等格式时,为什么 iOS VoiceOver 会错误地读取四月?
- java - java.io 中似乎缺少 FileNotFoundException 类?
- flutter - 如果语句在 Flutter 的 List 中找不到值
- istio - Istio Sidecar to retry on specified status codes (503)
- julia - 使用 Zygote 在 Julia 中计算包含 NN wrt 参数的损失函数的 Hessian