BeTrfo

BeTrfo

love

在 Github Action 使用 goreleaser 发行 go 项目

前言#

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

关于 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 里面的 token 才可以上传文件到 release 内。
image
image

  1. 仓库添加 tag 并且推送到 github。
git tag v0.0.1 && git push --tag
  1. 到此为止已经可以使用了,之后只需要等待看下 release 内的文件了。
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。