利用 Github Action 和GoReleaser全自动编译发布多平台Release包

浏览:1125次阅读
没有评论

摘要

使用 github aciton 可以帮我们自动执行某些操作
那么我们就可以使用他来进行自动编译我们的程序

程序环境

Go: v1.18

需要编译平台: Macos,Linux,Windows

创建 Action

  1. 找到 Action 菜单

利用 Github Action 和 GoReleaser 全自动编译发布多平台 Release 包

  1. 搜索 go 并且点击 Configure 进行设置工作流
    利用 Github Action 和 GoReleaser 全自动编译发布多平台 Release 包

默认配置如下

# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go

name: Go

on: # 工作流什么时候开始
  push:
    branches: ["main"]
  pull_request:
    branches: ["main"]

jobs: # 具体工作执行流程

  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: 1.18

    - name: Build
      run: go build -v ./...

    - name: Test
      run: go test -v ./...

修改为如下配置, 修改后点击一下保存

# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go

name: Build Release

on:
  push:
    # Pattern matched against refs/tags
    tags:      
      - '*'           # 创建所有 tag 都运行打包 v* 则 v1.0 这种也行

jobs:

  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: 1.18
        cache: true

    - name: Build
      run: go build -v ./...

      # 使用 goreleaser 进行生成多平台代码并且上传到 github release 进行发布
    - name: Create release on GitHub
      uses: docker://goreleaser/goreleaser:latest
      with:
        args: release
      env:
        GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

Releaser 配置: .goreleaser.yaml

此文件配置于项目根目录

具体帮助文档可以查询官网 https://goreleaser.com/quick-start

注:CGO 开启的话感觉 goreleaser 并不是这么好用了~ 毕竟需要多环境进行编译

project_name: rustdesk-api-server
builds:
  - env: [CGO_ENABLED=0]
    goos: # 编译平台列表 
      - linux
      - windows
      - darwin
checksum:
  name_template: 'checksums.txt'
archives:
  - replacements:
      linux: Linux
      windows: Windows
      darwin: MacOs
      386: i386
      amd64: x86_64
    format_overrides:
      - goos: windows
        format: zip
    files: # 添加到压缩包内的文件列表
      - README.md
      - img.png
      - conf/app.conf

测试

此时配置已配置完成, 则可以开始操作

git tag v1.2
git push --tags

此时 action 中就可以看到工作流已经开始工作了

正文完
 0
包子
版权声明:本站原创文章,由 包子 于2022-12-01发表,共计1652字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)