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

GitHub Actions中secrets无法识别报错的解决求助

解决GitHub Actions中Unrecognized named-value: 'secrets'错误的思路

问题核心

项目中自定义Action(.github/actions/create_envfile/action.yml)因配置结构错误+直接引用secrets,导致调用时触发Unrecognized named-value: 'secrets'报错,构建卡在调用该Action的步骤。

错误原因

  1. 自定义Action配置结构错误:原action.yml写成了完整workflow格式(包含on、jobs字段),但自定义Action是被其他workflow调用的组件,不能包含这些字段,需按Action规范定义输入参数和执行逻辑。
  2. secrets访问权限限制:自定义Action内部无法直接读取仓库secrets,secrets的作用域仅在调用它的workflow/job层级,必须由调用方将secrets作为参数传递给Action。

解决步骤

1. 修正自定义Action的action.yml结构

将错误的workflow格式改成标准自定义Action配置,通过输入参数接收外部传递的值:

name: Create envfile
description: Generate environment file from input parameters

# 定义Action接收的输入参数
inputs:
  DEBUG:
    description: "Debug mode status"
    required: true
    default: "false"
  CLIENT_ID:
    description: "Client ID from repository secrets"
    required: true
  CLIENT_SECRET:
    description: "Client Secret from repository secrets"
    required: true
  DIRECTORY:
    description: "Directory to store the env file"
    required: true
    default: "projectName/"
  FILE_NAME:
    description: "Name of the environment file"
    required: true
    default: ".env"
  FAIL_ON_EMPTY:
    description: "Fail execution if any input is empty"
    required: false
    default: "false"

# 定义Action的执行逻辑
runs:
  using: "composite"
  steps:
    - name: Generate env file
      uses: SpicyPizza/create-envfile@v1.3
      with:
        envkey_DEBUG: ${{ inputs.DEBUG }}
        envkey_CLIENT_ID: ${{ inputs.CLIENT_ID }}
        envkey_CLIENT_SECRET: ${{ inputs.CLIENT_SECRET }}
        directory: ${{ inputs.DIRECTORY }}
        file_name: ${{ inputs.FILE_NAME }}
        fail_on_empty: ${{ inputs.FAIL_ON_EMPTY }}

2. 在主workflow中传递secrets给自定义Action

修改workflow.yml中调用自定义Action的步骤,通过with字段将仓库secrets作为参数传入:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      # 修改此处,添加with参数传递secrets和其他配置
      - uses: ./.github/actions/create_envfile
        with:
          DEBUG: false
          CLIENT_ID: ${{ secrets.CLIENT_ID }}
          CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
          DIRECTORY: projectName/
          FILE_NAME: .env
          FAIL_ON_EMPTY: false
      - name: Set up Python version
        uses: actions/setup-python@v1
        with:
          python-version: '3.8'
      # 后续步骤保持不变

关键说明

  • 必须移除原action.yml中的on、jobs字段,这些属于独立workflow的配置,自定义Action不需要。
  • 所有外部传入的值(包括secrets)都要通过inputs定义,再在执行步骤中引用inputs.xxx。
  • 确保仓库已正确配置CLIENT_ID和CLIENT_SECRET两个secrets(仓库Settings → Secrets and variables → Actions)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:20:43