亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

龙泉市| 景东| 安宁市| 手游| 昭觉县| 通州市| 安泽县| 龙陵县| 道孚县| 定兴县| 四川省| 昔阳县| 衡阳县| 福泉市| 台北县| 闵行区| 新宁县| 宜宾县| 从江县| 台东市| 化德县| 深州市| 桦甸市| 徐水县| 大厂| 万州区| 桂阳县| 那坡县| 湘潭市| 和林格尔县| 额济纳旗| 深水埗区| 精河县| 南雄市| 沈阳市| 财经| 崇左市| 华池县| 治县。| 荃湾区| 福清市|