如何使用 Github Actions 自动生成发行说明并创建发行版

gam*_*r17 14 github-actions

我正在尝试创建一个 Github Action 作业,它将自动生成发行说明并根据该说明创建发行版。我找到了一个名为“actions/create-release”的操作,但它只适用于创建版本,并没有提供自动生成版本说明的方法。

  - name: Create-Release
    id: release
    uses: actions/create-release@v1
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    with:
      tag_name: "${{ env.ver }}"
      release_name: "${{ env.ver }}"
      draft: false
      prerelease: false
Run Code Online (Sandbox Code Playgroud)

此外,我还了解到“actions/create-release”存储库现已过时,并且不会为其提供进一步的更新。因此,我正在寻找替代解决方案来实现我的目标。

使用 Github Actions 自动生成发行说明并创建发行版的最佳方法是什么?是否有任何推荐的操作或工作流程可以实现此目的,而无需依赖现已过时的“actions/create-release”存储库?

Ben*_* W. 14

这可以使用 GitHub CLI 和一个run步骤来完成。例如,为推送到 GitHub 托管存储库的任何标签创建版本的工作流程可能如下所示:

name: Create release

on:
  push:
    tags:
      - v*

permissions:
  contents: write

jobs:
  release:
    name: Release pushed tag
    runs-on: ubuntu-22.04
    steps:
      - name: Create release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          tag: ${{ github.ref_name }}
        run: |
          gh release create "$tag" \
              --repo="$GITHUB_REPOSITORY" \
              --title="${GITHUB_REPOSITORY#*/} ${tag#v}" \
              --generate-notes
Run Code Online (Sandbox Code Playgroud)

  • @mariusm `github.event.push.ref` 然后 `${ref##*/}` 应该可以工作,根据 [`push` 有效负载](https://docs.github.com/en/webhooks- and-events/webhooks/webhook-events-and-payloads#push),只要您的 shell 是 Bash。然而,`github.ref_name` 更好,因为它已经被缩短了!我更新了答案。 (2认同)