【发布时间】:2022-01-19 15:41:00
【问题描述】:
我有一个应该执行以下操作的 GH 工作流程:
- 运行 node js 脚本,为环境变量赋值(这可行)
- 然后使用 $GITHUB_ENV 分配新的环境变量以供以后的步骤使用(不起作用)
步骤:* 运行 node js 脚本,为环境变量赋值(可行)
- name: Add bespoke value
id: step_one_point_five
run: |
node create-env-var.js
set
echo "PERCY_TOKEN=$PERCY_TOKEN" >> $GITHUB_ENV
我的脚本:
exec(
`set`,
{ env: { ...process.env, PERCY_TOKEN: `734573428736548273648723` } },
(error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.error(`stderr: ${stderr}`);
}
);
步骤 * 然后使用 $GITHUB_ENV 分配新的环境变量以供以后的步骤使用(不起作用)
此处的“设置”调用表明 PERCY_TOKEN 环境变量不存在。所以就好像 GH 在同一个工作流步骤中使用独立的终端,1 用于运行节点 js 脚本,不同的 1 用于下一个命令。
使用 GH 调试,当我尝试在第二个“集合”中调用它时,我可以确认 PERCY_TOKEN 值为空白:##[debug]PERCY_TOKEN=''
如何与其他 GH 工作流程步骤共享我由节点 js 脚本创建的环境变量?
【问题讨论】: