使用 GitHub Actions 发布版本时, 获取触发的 tag 作为发布的版本号.

方式一

通过 step 获取 tag, 在需要使用的地方使用 steps.get_version.outputs.VERSION, 其中 get_versionstepid.

name: Release

on:
  push:
    tags:
    - 'v*'

jobs:

  release:
    name: Release
    runs-on: ubuntu-latest
    steps:
    
    - name: Get version
      id: get_version
      run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
    
    - name: Create Release
      uses: actions/create-release@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        tag_name: ${{ steps.get_version.outputs.VERSION }}
        release_name: ${{ steps.get_version.outputs.VERSION }}
        draft: false
        prerelease: false

方式二

直接使用 github.ref (触发条件为 tag).

name: Release

on:
  push:
    tags:
    - 'v*'

jobs:
  release:
    name: Create Release
    runs-on: ubuntu-latest
    steps:
    
    - name: Create Release
      id: create_release
      uses: actions/create-release@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        tag_name: ${{ github.ref }}
        release_name: ${{ github.ref }}
        draft: false
        prerelease: false

总结

如果只是想获取 tag, 使用 方式二 是最简单的, 但要注意上述例子里的触发条件是 tag, 如果是其他触发条件, github.ref 可能就不是 tag 了. 当然 方式一 作为一种使用参考, 可以用在需要获取输出值的场景.