cnb:read-file
365 字约 1 分钟
cnb:read-file
读取指定文件内容,可导出为环境变量供后续任务使用。
使用 ##[set-output key=value] 指令输出变量更便捷,但内容会输出到日志,不适用于敏感信息。
对于事先确定的敏感信息,可以用 imports 导入; 对于构建过程中产生的敏感信息,可写入文件后通过该内置任务读取。
imports 仅支持远端仓库中已存在的文件,该内置任务仅支持读取本地文件。
文件类型按后缀判断,目前支持 .json、.yml、.yaml 和纯文本(key=value 结构)。
适用事件
参数
filePath
- type: String
- required: true
本地文件路径。
输出结果
{
// 读到的对象
}配置样例
将后续任务需要的变量写入文件,再用该内置任务读取并导出为环境变量。
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