BeTrfo

BeTrfo

love

在 Github Action 使用 goreleaser 發行 go 專案

前言#

我一直从事前端开发,突然有一天想要熟悉一种后端开发语言。说干就干,刚好看到了 golang,那就用它吧。
项目开发没有问题,但是在发布时发现手动上传可执行文件太麻烦了,正好 github action 也有免费额度,那就用上吧。

关于 goreleaser#

goreleaser 提供了多种发布方式,github action 只是其中一个支持的渠道,当然 goreleaser 也是开源的,项目地址见 goreleaser

配置 Github Action#

将 goreleaser 集成到 github action 中几乎不需要任何额外的操作,按照以下步骤即可。

  1. 在仓库中添加一个 github action 的 workflow,文件路径为 .github/workflows/release.yml
# 定义名称
name: Release
# 当推送 tag 时触发,匹配 v*
on:
  create:
    tags:
      - v*

jobs:
  release:
    name: Release on GitHub
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - run: git fetch --force --tags
      - uses: actions/setup-go@v4
        with:
          go-version: stable
      - uses: goreleaser/goreleaser-action@v4
        with:
          distribution: goreleaser
          version: latest
          args: release --clean
# secrets.GITHUB_TOKEN 是 github action 自带的操作凭据,无需自己申请,但还有一个额外操作,请参考下面。
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

在项目设置中需要为 github action 授予读写包的权限,这样默认的 workflow 中的令牌才能将文件上传到发布中。
image
image

  1. 在仓库中添加标签并推送到 github。
git tag v0.0.1 && git push --tag
  1. 到此为止,您已经可以使用了,之后只需要等待查看发布中的文件即可。
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。