求助:GitHub Actions版本升级流程中无法获取版本输出
问题分析与解决
核心问题
你的GitHub Actions无法获取版本输出,根源在于两个关键错误:
- 未正确注册步骤输出变量:
get_version步骤仅打印了版本号,但没有将其标记为步骤输出,导致后续步骤无法读取到VERSION的值。 - 版本号带冗余引号:使用
jq ".tag_name"获取的版本号会包含双引号(如"10.12.0"),既影响输出显示,还可能导致后续Maven命令执行异常。
解决方案
1. 修正版本获取步骤
将Workflow中Get the version步骤的代码替换为:
- name: Get the version id: get_version run: | VERSION=$(curl -s https://api.github.com/repos/checkstyle/checkstyle/releases/latest \ | jq -r ".tag_name") echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
jq -r参数用于移除版本号的双引号,返回纯文本格式的版本号。echo "VERSION=$VERSION" >> $GITHUB_OUTPUT将版本号写入GitHub Actions的步骤输出池,供后续步骤调用。
2. 更新后续步骤的变量引用
修改Modify File和Push commit步骤中的变量引用路径,从${{ steps.get_version.VERSION }}改为${{ steps.get_version.outputs.VERSION }}:
- name: Modify File run: | ./.ci/bump-version.sh ${{ steps.get_version.outputs.VERSION }} - name: Push commit run: | git config --global user.name 'github-actions[bot]' git config --global user.email 'github-actions[bot]@users.noreply.github.com' git commit -am "minor: Bump release version to ${{ steps.get_version.outputs.VERSION }}" git push
3. 验证效果
修改完成后,Workflow会正确传递无引号的版本号到Shell脚本,脚本中的echo VERSION="$VERSION"将正常输出版本号,同时Maven命令也能顺利完成pom.xml的版本升级。
内容的提问来源于stack exchange,提问作者Rahul Khinchi
相关产品推荐
相关产品推荐

