使用 gihub-action 发布 go release


当需要自动编译并发布 release 程序时,可以使用 github action 的工作流来实现

创建工作流脚本

新建yml脚本 .github/workflows/release.yml,

# 工作流名称
name: Go Release

# 触发条件
on:
  push:
    # 创建 tag 时
    tags:
    - v*
    # 推送到 master 分支时
    branchs:
    - master

jobs:
  release:
    # 运行环境
    runs-on: ubuntu-latest
    steps:
    # 切换到对应 tag 源码
    - name: Checkout
      uses: actions/checkout@v2
      with:
        fetch-depth: 0
    # 安装 Go
    - name: Set up Go
      uses: actions/setup-go@v2
      with:
        go-version: 1.17
    # 使用 goreleaser 编译 release
    - name: Create release on GitHub
      uses: goreleaser/goreleaser-action@v2
      with:
        # GoReleaser 版本
        version: latest
        # 传递给 GoReleaser 的参数
        args: release --rm-dist
      env:
        # 提供访问仓库token
        GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

这里使用 goreleaser 提供的多平台二进制文件构建 github action,可以更方便的编译多平台版本, 详细信息请阅读 GoReleaser Action Usage

创建配置文件

使用该 action 还需要提供配置文件 .goreleaser.yaml,放置在仓库根目录下,若不提供配置文件,则会根据默认的配置文件,编译所有平台的版本,以及 docker 等编译流程,有可能会出错。因此,根据自己需要,参考默认配置文件,选择适合自己的配置,确保工作流正常执行


文章作者: MaZhuang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 MaZhuang !
  目录