引入
ts
import {
getImageName,
parseGrayPublishConfig,
getCurrentProjectUseGray
} from 't-comm';
// 不支持 tree-shaking 的项目
import {
getImageName,
parseGrayPublishConfig,
getCurrentProjectUseGray
} from 't-comm/lib/gray-release/index';
// 只支持 ESM 的项目
import {
getImageName,
parseGrayPublishConfig,
getCurrentProjectUseGray
} from 't-comm/es/gray-release/index';getImageName(projectName, subProjectName, branch)
描述:
获取镜像名称 根据项目名、子项目名和分支生成镜像名称
参数:
| 参数名 | 描述 |
|---|---|
| projectName | 项目名称 |
| subProjectName | 子项目名称 |
| branch | 分支名称 |
返回:
镜像名称
示例
ts
const imageName = getImageName({
projectName: 'my-project',
subProjectName: 'sub-project',
branch: 'release'
});
// 'my-project.sub-project'parseGrayPublishConfig(config)
描述:
解析灰度发布配置 将嵌套的配置对象转换为平面的映射表
参数:
| 参数名 | 描述 |
|---|---|
| config | 原始配置对象 |
返回:
解析后的全局灰度发布配置
示例
ts
const config = {
'project1': {
'sub1': {
'release': { grayVersion: '1.0.0', grayPercent: '50', cookieId: 'xxx' }
}
}
};
const parsed = parseGrayPublishConfig(config);
// { 'project1.sub1': { grayVersion: '1.0.0', ... } }getCurrentProjectUseGray(fullSubProjectName, globalGrayPublishConfig)
描述:
获取当前项目使用的灰度配置 根据子项目名称查找匹配的灰度发布配置
参数:
| 参数名 | 描述 |
|---|---|
| fullSubProjectName | 完整的子项目名称 |
| globalGrayPublishConfig | 全局灰度发布配置 |
返回:
匹配的灰度配置列表
示例
ts
const grayList = getCurrentProjectUseGray(
'my-project.sub-project',
globalGrayPublishConfig
);
// [
// {
// fullSubProjectName: 'my-project.sub-project',
// packageName: 'my-project.sub-project.dev',
// parsedBranch: '.dev',
// cookieId: 'xxx'
// }
// ]