能否在GitHub Workflows不同触发器间全局定义输入参数?
GitHub Actions 触发器输入参数复用问题解答
核心结论
GitHub Actions不支持跨触发器全局定义共享输入参数,也不存在官方的shared_inputs特性实现输入复用。workflow_call和workflow_dispatch的输入是各自独立的,必须分别声明,但可以通过YAML原生特性减少重复代码。
具体问题解答
是否必须为每个触发器单独定义输入?
是的。workflow_dispatch(手动触发)和workflow_call(被其他工作流调用)的输入配置属于各自触发器的专属字段,无法直接全局共享,必须分别在对应触发器节点下定义。两者设置相同输入集是否可行?
完全可行。虽然不能全局定义,但可以通过YAML锚点&别名的方式复用输入定义,避免重复编写相同的配置内容。如何避免重复定义输入参数?
利用YAML的锚点特性,先定义好通用的输入配置,再在两个触发器中引用即可。示例代码如下:name: 复用输入参数示例 # 定义可复用的输入锚点 shared-x-input: &shared-x-input X: type: boolean description: "布尔类型输入参数X" default: false required: true on: workflow_dispatch: inputs: <<: *shared-x-input # 引用锚点,复用X的配置 workflow_call: inputs: <<: *shared-x-input # 引用锚点,复用X的配置这样后续需要修改参数X的配置时,只需要修改锚点处的内容,两处触发器的输入配置会自动同步。
是否可使用shared_inputs实现共享?
目前GitHub Actions没有官方支持shared_inputs这个字段,使用后不会生效,请勿尝试。
内容的提问来源于stack exchange,提问作者Anusree lakshmi
相关产品推荐
相关产品推荐

