read file
cnb:read-file
读取文件内容解析输出给后续任务。
用 ##[set-output key=value]
指令输出变量更便捷,但会将内容输出到日志,不适用于敏感信息。
对于事先确定的敏感信息可以用 imports
导入,对于构建过程中生成的敏感信息,可写入文件,用该内置任务读取。
imports
只支持远端仓库存在的文件,该内置任务只支持读取本地存在的文件。
文件类型通过后缀判断。目前支持 json、 yml(yaml)、 纯文本(key=value
结构)。
# 适用事件
# 参数
# 输出结果
{
// 读到的对象
}
# 配置样例
将一些后续任务需要的变量写入文件,用该内置任务读取文件导出为环境变量,供后续任务使用。
myJson.json
{
"myVar": "myVar",
"deep": {
"myVar": "myVar in deep"
},
"deepWithEnvKey": {
"myVar": "myVar in deepWithEnvKey"
}
}
# cnb.yml
main:
push:
- env:
myKey: deepWithEnvKey
stages:
- name: write env file
script: echo "write env to myJson.json"
- name: export env
type: cnb:read-file
options:
filePath: myJson.json
exports:
myVar: ENV_MY_VAR
deep.myVar: ENV_DEEP_MY_VAR #指定多级的key
$myKey.myVar: ENV_ENV_KEY_MY_VAR #通过环境变量指定获取的key
- name: echo env
script:
- echo $ENV_MY_VAR
- echo $ENV_DEEP_MY_VAR
- echo $ENV_ENV_KEY_MY_VAR