# 常见问题
# 如何进行多流水线编排
使用流水线触发插件即可在上游流水线的任何位置触发下游流水线的执行
# 为何不支持代码库打Tag自动触发
原因是这样会把正常研发流程: 代码提交、测试、发版(打Tag,归档构建产出至成品库)、上线的研发流程打破,把发版前后的流程割裂到两条流水线中,这是我们不提倡的 我们提倡的研发实践如下:
例如某个团队是分支开发,分支发版(在开发分支上直接打Tag)的研发模式 则可以在开发分支上配置编译、测试、发版(打Tag,归档构建产出至成品库)、上线的全流程流水线
例如某个团队是分支开发,代码合入发布分支(通常是Master分支)后,统一在发布分支打Tag的研发模式 则可以在开发分支配置编译、测试的流水线 在发布分支配置编译、测试、发版(打Tag,归档构建产出至成品库)、上线的全流程流水线,且由代码从开发分支合入发布分支时自动触发
# 如何在流水线中克隆其他代码库
如果代码库名叫做"demo/common",在流水线中克隆的拼接方式如下
git clone "${SYS_SERVER_SCHEME}://${SYS_TRIGGER_USER}:${SYS_CI_TOKEN}@${SYS_SERVER_HOST}:${SYS_SERVER_PORT}/${SYS_COMPANY_NAME}/demo/common.git"
# 系统内置环境变量有哪些
系统变量 | 说明 |
---|---|
SYS_PIPELINE_NAME | 流水线名称 |
SYS_PIPELINE_ID | 流水线id,流水线全局唯一 |
SYS_PIPELINE_BUILD_NUMBER | 流水线构建号,流水线范围内自增 |
SYS_PIPELINE_BUILD_ID | 流水线构建id,流水线全局唯一 |
SYS_TRIGGER_USER | 流水线触发人 |
SYS_BUILD_REPO | 代码库全称,例如代码库为:test/code/frontend,则值为:test/code/frontend |
SYS_BUILD_REPO_NAME | 代码库名称,例如代码库为:test/code/frontend,则值为:frontend |
SYS_BUILD_REPO_DIR | 代码库目录,例如代码库为:test/code/frontend,则值为:test/code |
SYS_BUILD_REPO_ID | 代码库id,代码库全局唯一 |
SYS_BUILD_BRANCH | 分支名 |
SYS_BUILD_COMMIT | commitID |
SYS_BUILD_SNAPSHOT_VERSION | 构建版本号 |
SYS_BUILD_RELEASE_VERSION | 发布版本号 |
SYS_LAST_RELEASE_VERSION | 上次发布的版本号 |
SYS_BUILD_DATE | 流水线触发日期,例如:2021-12-15,输出为:20211215 |
SYS_BUILD_YEAR | 流水线触发年份,例如:2021-12-15,输出为:2021 |
SYS_BUILD_MONTH | 流水线触发月份,例如:2021-12-15,输出为:12 |
SYS_BUILD_DAY | 流水线触发月份中的第几天,例如:2021-12-15,输出为:15 |
SYS_BUILD_DATE_TIMESTAMP | 流水线触发时间,格式为YYYY.MM.dd-hhmmss,例如:2021.12.15-134856 |
SYS_BUILD_COMMIT_TIMESTAMP | 流水线对应的commit的提交时间,格式为YYYY.MM.dd-hhmmss, 例如:2021.12.7-134856 |
SYS_BUILD_BASE_COMMIT | 流水线基准对应的commitID |
SYS_COMPANY_NAME | 企业域名,例如:新建企业企业域名为baidu,输出为:baidu |
系统变量 | 说明(系统变量只能在任务执行时使用,任务结束后即失效) |
---|---|
SYS_SERVER_URL | agent注册设置时server_url字段 |
SYS_SERVER_SCHEME | 通过解析agent端设置的server_url字段解析的协议(http或https) |
SYS_SERVER_HOST | 通过解析agent端设置的server_url字段解析的主机地址 |
SYS_SERVER_PORT | 通过解析agent端设置的server_url字段解析的端口(未设置的默认值,https为443,http为80) |
SYS_WORKSPACE | 构建时的工作空间(如:/builds/xxx) |
SYS_CI_TOKEN | 构建用户的token,任务创建时自动生成,任务结束即自动销毁 |
# 部署插件执行后为何没进行部署
如下图所示,有些用户可能会很奇怪,明明自己的流水线部署插件执行了,但是应用却没有更新 原因是流水线插件只是执行创建部署任务的工作,只要部署任务创建成功,流水线插件即显示为成功 应用却没有更新的可能导致因素为如下两种:
- 该部署任务对应的部署模板被设置了需要审批才可执行
- 或者部署任务执行中导致了失败
点击下图的“查看任务详情” 即可跳转到实际的部署单界面,查看详情
# 任务运行过慢
通常是由于构建集群资源不足导致。 如果是使用的自行导入的构建集群,请及时扩容或者取消任务重新尝试。 如果是使用的SaaS服务公共集群,则有可能是kubernetes集群弹性伸缩期间导致,或者是您的构建任务消耗资源过大。 如果是前者,取消任务重试即可。如果是后者,可以联系官网销售渠道 购买高配定制套餐。
# 插件无法满足需求
- 在构建时直接使用命令安装所需要的依赖来完成构建。
- 流水线中选择主机集群构建,主机中有构建环境即可完成构建。
← 自定义源流水线