91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang項目在github創建release后怎么自動生成二進制文件

發布時間:2023-03-22 16:19:29 來源:億速云 閱讀:100 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Golang項目在github創建release后怎么自動生成二進制文件”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Golang項目在github創建release后怎么自動生成二進制文件”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

希望達到的效果

工具類的Golang項目需要編譯成二進制文件后在命令行中運行,所以希望在github里面創建一個新的release后能自動編譯成針對各個平臺的二進制文件,如下圖所示:

Golang項目在github創建release后怎么自動生成二進制文件

實現方式

借助 GoReleaser 這款工具配合 github actions 可以很方便實現這種效果,下面講解下具體實現方法。

首先需要在 Golang 項目的根目錄創建 GoReleaser 配置文件 .goreleaser.yaml,內容如下:

# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com
before:
  hooks:
    # You may remove this if you don't use go modules.
    - go mod tidy
    # you may remove this if you don't need go generate
    - go generate ./...
builds:
  - env:
      - CGO_ENABLED=0
    goos:
      - linux
      - windows
      - darwin
 
archives:
  - format: tar.gz
    # this name template makes the OS and Arch compatible with the results of uname.
    name_template: >-
      {{ .ProjectName }}_
      {{- title .Os }}_
      {{- if eq .Arch "amd64" }}x86_64
      {{- else if eq .Arch "386" }}i386
      {{- else }}{{ .Arch }}{{ end }}
      {{- if .Arm }}v{{ .Arm }}{{ end }}
    # use zip for windows archives
    format_overrides:
    - goos: windows
      format: zip
checksum:
  name_template: 'checksums.txt'
snapshot:
  name_template: "{{ incpatch .Version }}-next"
changelog:
  sort: asc
  filters:
    exclude:
      - '^docs:'
      - '^test:'
 
# The lines beneath this are called `modelines`. See `:help modeline`
# Feel free to remove those if you don't want/use them.
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
# vim: set ts=2 sw=2 tw=0 fo=cnqoj

然后創建 github actions 配置文件, 在Golang項目的根目錄創建 .github 文件夾,在這個文件夾里面創建 workflows 文件夾,在 workflows 文件夾里面創建 release.yaml 文件,內容如下:

name: goreleaser
 
on:
  push:
    # run only against tags
    tags:
      - '*'
 
permissions:
  contents: write
  # packages: write
  # issues: write
 
jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - run: git fetch --force --tags
      - uses: actions/setup-go@v3
        with:
          go-version: '>=1.20.2'
          cache: true
      # More assembly might be required: Docker logins, GPG, etc. It all depends
      # on your needs.
      - uses: goreleaser/goreleaser-action@v4
        with:
          # either 'goreleaser' (default) or 'goreleaser-pro':
          distribution: goreleaser
          version: latest
          args: release --clean
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          # Your GoReleaser Pro key, if you are using the 'goreleaser-pro'
          # distribution:
          # GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}

這個文件的內容不需要做任何修改,提交代碼并將代碼 push 到 github 后,在 github 的 release 頁面新建一個 release 后,在 Actions 頁面就可以看到有一個workflow在運行:

Golang項目在github創建release后怎么自動生成二進制文件

等這個 workflow 運行完成以后,在 release 的 Assets 里面就會出現針對各個平臺的二進制文件。

讀到這里,這篇“Golang項目在github創建release后怎么自動生成二進制文件”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大同县| 黄大仙区| 都兰县| 凤台县| 沈阳市| 库尔勒市| 屏山县| 博罗县| 平顺县| 全州县| 大石桥市| 焉耆| 财经| 潜江市| 厦门市| 连平县| 富平县| 汉沽区| 安新县| 新乐市| 子洲县| 谢通门县| 集安市| 湖口县| 泰宁县| 定襄县| 藁城市| 开阳县| 铜陵市| 台东市| 仁化县| 金湖县| 比如县| 恩施市| 哈密市| 东源县| 平定县| 建阳市| 沧源| 兰考县| 申扎县|