You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions中Node.js的::set-output弃用后替代方案咨询

GitHub Actions ::set-output 弃用后的替代方案

原来的::set-output命令已被GitHub弃用,官方现在推荐通过写入$GITHUB_OUTPUT环境变量指向的临时文件来设置步骤输出。

修改后的Node.js代码

替换原代码里的process.stdout.write语句,改成往指定文件写入键值对即可:

const fs = require('fs');

async function run() {
  try {
    const blocks = "some value";
    // 获取GitHub提供的输出文件路径
    const outputFile = process.env.GITHUB_OUTPUT;
    // 按「key=value」格式写入,注意不要给值加额外引号
    fs.appendFileSync(outputFile, `my-key=${blocks}\n`);
  } catch (error) {
    console.error(error);
    process.exit(1);
  }
}

run();

关键说明

  • $GITHUB_OUTPUT是GitHub Actions自动注入的环境变量,指向一个临时文件,所有写入这里的key=value内容都会被识别为当前步骤的输出。
  • 如果输出值包含换行、空格或特殊字符,无需额外转义,直接写入即可,GitHub会自动处理格式。
  • 后续步骤调用输出的方式和之前完全一致,比如:
    - name: 调用输出值
      run: echo "获取到的值是 ${{ steps.your-step-id.outputs.my-key }}"
      # 这里的your-step-id是你设置输出的步骤的id
    

多行输出处理

如果输出是多行文本,可以用EOF包裹内容(Node.js示例):

const multiLineValue = `第一行内容
第二行内容
第三行内容`;
fs.appendFileSync(process.env.GITHUB_OUTPUT, `my-key<<EOF\n${multiLineValue}\nEOF\n`);

内容的提问来源于stack exchange,提问作者subair_a

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:52:18