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

如何为自定义GitHub Actions配置并使用数组输入?

自定义GitHub Action使用数组输入的实现方法

问题描述

我正在开发一个GitHub Action工作流,需要用到数组输入。目前通过空格分隔的方式模拟数组:

- uses: actions/my-custom-ci
        with:
          subdirectories: src/main/java src/test/java

但希望采用标准YAML数组格式:

- uses: actions/my-custom-ci
        with:
          subdirectories: 
                - src/main/java 
                - src/test/java

请问是否可以为自定义GitHub Actions使用数组输入?如果可以,具体该如何实现?

实现方案

完全可以为自定义GitHub Action配置数组输入,以下是具体步骤:

1. 在Action的配置文件中定义数组类型输入

在你的Action的action.yml文件里,将对应输入项的type设置为array,同时可补充描述和默认值:

inputs:
  subdirectories:
    description: "指定要处理的子目录列表"
    type: array
    required: true
    default: ["src/main/java"]

2. 在工作流中使用YAML数组传递参数

直接用你期望的YAML数组格式传递参数即可:

- uses: actions/my-custom-ci
        with:
          subdirectories: 
            - src/main/java 
            - src/test/java

3. 在Action的执行逻辑中读取数组输入

根据Action的开发语言,有不同的读取方式:

  • Node.js 实现:使用@actions/core包的getInput方法,设置parseArray: true直接获取数组:
    const core = require('@actions/core');
    const subdirectories = core.getInput('subdirectories', { parseArray: true });
    
    // 遍历处理数组
    subdirectories.forEach(dir => {
      console.log(`处理目录: ${dir}`);
    });
    
  • Bash 脚本实现:GitHub会将数组输入转换为换行分隔的字符串,可通过循环读取:
    # 读取输入并按换行分割为数组
    IFS=$'\n' read -r -d '' -a subdirectories <<< "$INPUT_SUBDIRECTORIES"
    
    # 遍历数组
    for dir in "${subdirectories[@]}"
    do
      echo "处理目录: $dir"
    done
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 11:40:29