我想知道在持续集成中是否存在任何作业命名约定。我们正在使用jenkins for Ci,请建议。
命名约定应该是这样的,环境,服务,目的构建或部署等。
任何其他建议表示赞赏。
答案 0 :(得分:2)
我正在使用这样的约定:
BUILD_my-project
DEPLOY_my-project_staging
TEST_my-project_staging
UTILITY_install-helpful-tool_staging
INFRA_run-job-dsl
因此,工作将被命名为
if ( active widgets in the sidebar ) {
// use this formatting
} else {
// use that formatting
}
为了使维护更容易,特别是在使用JobDSL时,我更喜欢没有单独的作业显示名称,代价是在作业名称中同时使用连字符和下划线。
答案 1 :(得分:1)
这有点难以回答,因为关于Jenkins中的命名约定没有官方规则。通常,每个组织都在定义自己的规则。 (这些规则可以是关于存储库名称,项目,版本......)当您使用nested view plugin之类的插件时,拥有名称约定很有用。如果您可以采用命名约定,请考虑您将看到的不同类型的作业。作业名称中的空格可能会使这项工作难以远程调用,因此不建议这样做。
在Jenkins中使用名称约定的示例:
对于常规作业,我们在git存储库名称后面命名Jenkins作业。例如," ceph-deploy"包位于https://github.com/ceph/ceph-deploy,因此作业名称为" ceph-deploy"。
答案 2 :(得分:0)
我认为最好的答案是:这取决于。 每个用例可能需要一个量身定制的约定。
使用相同Jenkins的团队越多,为了正确管理角色和权限,约定就必须越复杂。
如果您想创建自己的约定,还可以查找Java / C#/ python / powershell命名约定,以找到有用的想法。
通常,我会选择PREFIX_Name_SUFFIX:
- PREFIX: [a-zA-Z0-9]{3,5} (might be skipped if complexity level is low)
- Name: [a-zA-Z0-9-]+
- SUFFIX: [a-zA-Z0-9]{3,5} (might be skipped if complexity level is low)