GitHub Action自动发布报错:未提供必填输入tag_name
解决GitHub Action报错:Input required and not supplied: tag_name
问题根源
你遇到的tag_name缺失错误,实际来自Update release步骤,而非Create release步骤。actions/update-release@v1要求传入有效的release_id或tag_name参数,但你使用的${{ env.RELEASE_ID }}并未定义,导致该步骤无法获取必要输入,进而抛出缺失tag_name的错误。同时你的上传步骤还存在变量作用域问题,也需要一并修复。
修复步骤
1. 捕获Create Release的输出ID
给Create a release步骤添加id属性,以便后续步骤引用它生成的Release ID:
- name: Create a release id: create_release # 新增这一行 uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }} with: tag_name: "v${{ env.TAG_NAME }}" release_name: "Dark Everywhere ${{ env.TAG_NAME }}🌙" draft: true prerelease: false
2. 修正Update Release的Release ID参数
将Update release步骤中的release_id改为引用Create Release步骤的输出ID:
- name: Update release uses: actions/update-release@v1 env: GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }} with: release_id: ${{ steps.create_release.outputs.id }} # 替换原来的env.RELEASE_ID body: "Build description here"
3. 修复上传步骤的变量问题
你当前上传步骤中使用的$branch是Shell循环内的局部变量,无法在步骤外访问。改用通配符匹配所有生成的压缩包,确保所有文件都能被上传:
- name: Upload files uses: actions/upload-artifact@v2 with: name: "Dark-Everywhere-Packages" path: "${{ env.FILE_NAME }}-*${{ env.FILE_EXTENSION }}" # 用通配符匹配所有生成的zip
完整修正后的YAML代码
name: Release on: push: branches: - master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} FILE_NAME: "Dark-Everywhere" FILE_EXTENSION: ".zip" BRANCHES: "1.19.3,1.19,1.18" PACKAGE_NAME: "assets,pack.mcmeta,pack.png" TAG_NAME: "1.0.0" jobs: release: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Create a release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }} with: tag_name: "v${{ env.TAG_NAME }}" release_name: "Dark Everywhere ${{ env.TAG_NAME }}🌙" draft: true prerelease: false - name: Generate a zip archive for each branch run: | for branch in $(echo $BRANCHES | tr "," "\n"); do zip -r "$FILE_NAME-$branch$FILE_EXTENSION" $PACKAGE_NAME done - name: Upload files uses: actions/upload-artifact@v2 with: name: "Dark-Everywhere-Packages" path: "${{ env.FILE_NAME }}-*${{ env.FILE_EXTENSION }}" - name: Update release uses: actions/update-release@v1 env: GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }} with: release_id: ${{ steps.create_release.outputs.id }} body: "Build description here"
内容的提问来源于stack exchange,提问作者Victor Matos
相关产品推荐
相关产品推荐

