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

如何从download-artifact动作中提取Artifact名称并存入变量?

GitHub Actions:提取下载的Artifact名称问题解决

嘿,我看你在尝试把下载的Artifact名称存到变量里时碰了壁——问题出在actions/download-artifact@v3根本没有all这个输出项,所以你调用${{ steps.jdm.outputs.all }}肯定拿不到预期结果呀。

给你两种实用的解决思路,按需选择:

方法1:直接复用指定的Artifact名称(适合固定名称场景)

既然你在with.name里已经明确指定了jdmessenger,如果这个名称是固定不变的,完全可以直接把它赋值给环境变量,步骤更简单:

- name: Store Artifact Name to Env
  run: echo "ARTIFACT_NAME=jdmessenger" >> $GITHUB_ENV
- name: Check the Variable
  run: echo $ARTIFACT_NAME

方法2:动态提取Artifact名称(适合名称不固定场景)

如果你的Artifact名称是动态生成的,或者你想从下载结果里自动获取,那可以利用actions/download-artifact的默认行为:它会把文件下载到与Artifact同名的文件夹里(你也可以指定下载路径方便查找)。代码示例如下:

- name: Download Artifact for Deployment
  id: jdm
  uses: actions/download-artifact@v3
  with:
    name: jdmessenger
    path: ./artifact-downloads  # 指定一个专门的下载目录,避免和其他文件混淆
- name: Extract Artifact Name Dynamically
  run: |
    # 遍历下载目录,获取唯一的文件夹名称(也就是Artifact名称)
    ARTIFACT_NAME=$(find ./artifact-downloads -maxdepth 1 -type d ! -name . | xargs basename)
    echo "ARTIFACT_NAME=$ARTIFACT_NAME" >> $GITHUB_ENV
- name: Verify the Result
  run: echo $ARTIFACT_NAME

额外提醒:如果你是想获取仓库中所有已上传的Artifact列表,那得调用GitHub API或者使用专门的Action来查询,但你这里是下载指定的Artifact,上面两种方法就足够解决你的问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:42:31