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

GitHub Actions Firebase部署失败:Artifact数组返回[]

问题分析与解决方案

核心原因

你遇到的Artifact not found问题,主要是跨工作流访问Artifact的权限不足,以及下载步骤未明确关联原Build工作流的运行实例导致的。workflow_run触发的工作流默认使用的GITHUB_TOKEN权限有限,无法直接读取原工作流上传的Artifact;同时v4版本的download-artifact需要明确指定原工作流的run-id和仓库信息才能正确拉取。

具体修复步骤

1. 为Deploy工作流添加必要权限

在Deploy工作流的jobs字段上方,添加权限配置,确保能读取Actions和Artifacts:

name: Deploy to Firebase Hosting on successful build
'on':
  workflow_run:
    workflows: [Firebase Deployment Build]
    types:
      - completed
permissions:
  actions: read
  artifacts: read # 关键权限:允许读取Artifact
jobs:
  deploy:
    # 后续原有内容保持不变

2. 完善Download Artifact的参数配置

更新Deploy工作流中的下载步骤,明确指定原Build工作流的run-id和当前仓库,确保关联正确:

- name: Download Build Artifact
  uses: actions/download-artifact@v4
  with:
    name: build
    path: build
    run-id: ${{ github.event.workflow_run.id }} # 关联触发当前工作流的Build运行实例
    repository: ${{ github.repository }} # 指定Artifact所在的仓库

3. 验证Build工作流的Artifact上传准确性

修改Build工作流中的Verify Build Directory步骤,直接检查build目录的内容,确保构建产物确实生成:

- name: Verify Build Directory
  run: ls -la build || echo "Build directory not found or empty"

4. 可选:移除Deploy工作流中不必要的Checkout步骤

如果Firebase部署仅依赖构建产物(build目录),不需要仓库源码,可以移除Checkout Repo步骤,减少流程复杂度:

# 移除以下步骤(如果不需要仓库源码)
# - name: Checkout Repo
#   uses: actions/checkout@v4

其他验证建议

  • 查看Build工作流的Artifact页面,确认build artifact确实存在且内容正确(在GitHub仓库的Actions -> 对应Build运行记录 -> Artifacts栏查看)。
  • 在Deploy工作流的调试步骤中,添加打印Artifact关联信息的命令,进一步排查:
- name: Debug Artifact Context
  run: |
    echo "Attempting to download artifact from run ID: ${{ github.event.workflow_run.id }}"
    echo "Target repository: ${{ github.repository }}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:35:16