如何在GitHub Actions中使用环境变量作为输入参数的默认值?
解决GitHub Action输入参数默认使用环境变量的问题
GitHub Actions不允许在inputs的default字段中直接引用环境变量,且inputs是只读属性,无法在步骤中直接修改。你可以通过中转到环境变量或步骤输出的方式实现需求:
方案1:使用环境变量中转
在步骤中判断输入是否为空,将最终值写入新的环境变量,后续步骤统一使用这个环境变量:
inputs: mono-build-tag: description: Release tag to download from the mono-build-repo default: "" runs: using: "composite" steps: - name: 设置有效的Mono构建标签 run: | if [ -z "${{ inputs.mono-build-tag }}" ]; then # 输入为空时,使用环境变量的值 echo "MONO_BUILD_TAG=${{ env.GODOT_MONO_BUILD_TAG }}" >> "$GITHUB_ENV" else # 输入不为空时,使用用户提供的输入值 echo "MONO_BUILD_TAG=${{ inputs.mono-build-tag }}" >> "$GITHUB_ENV" fi shell: bash # 后续步骤使用这个环境变量 - name: 下载指定标签的构建包 run: | echo "正在下载标签: ${{ env.MONO_BUILD_TAG }}" # 这里添加你的下载逻辑 shell: bash
方案2:使用步骤输出传递
如果需要在不同步骤间传递值,也可以用步骤的outputs:
inputs: mono-build-tag: description: Release tag to download from the mono-build-repo default: "" runs: using: "composite" steps: - name: 设置有效的Mono构建标签 id: set-tag run: | if [ -z "${{ inputs.mono-build-tag }}" ]; then echo "mono_build_tag=${{ env.GODOT_MONO_BUILD_TAG }}" >> "$GITHUB_OUTPUT" else echo "mono_build_tag=${{ inputs.mono-build-tag }}" >> "$GITHUB_OUTPUT" fi shell: bash # 后续步骤通过步骤ID引用输出值 - name: 下载指定标签的构建包 run: | echo "正在下载标签: ${{ steps.set-tag.outputs.mono_build_tag }}" # 这里添加你的下载逻辑 shell: bash
为什么你的尝试无效?
- 尝试1:GitHub Actions的
inputs.default仅支持静态值或特定上下文(如github上下文),不允许引用env上下文,因此会报错。 - 尝试2:
inputs是只读属性,无法在run步骤中直接修改,所以无法直接给inputs.mono-build-tag赋值。
内容的提问来源于stack exchange,提问作者Atlinx
相关产品推荐
相关产品推荐

