最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang項(xiàng)目在github創(chuàng)建release后自動(dòng)生成二進(jìn)制文件的方法

 更新時(shí)間:2023年03月18日 10:20:41   作者:路多辛  
這篇文章主要介紹了Golang項(xiàng)目在github創(chuàng)建release后如何自動(dòng)生成二進(jìn)制文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

希望達(dá)到的效果

工具類(lèi)的Golang項(xiàng)目需要編譯成二進(jìn)制文件后在命令行中運(yùn)行,所以希望在github里面創(chuàng)建一個(gè)新的release后能自動(dòng)編譯成針對(duì)各個(gè)平臺(tái)的二進(jìn)制文件,如下圖所示:

實(shí)現(xiàn)方式

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

首先需要在 Golang 項(xiàng)目的根目錄創(chuàng)建 GoReleaser 配置文件 .goreleaser.yaml,內(nèi)容如下:

# 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

然后創(chuàng)建 github actions 配置文件, 在Golang項(xiàng)目的根目錄創(chuàng)建 .github 文件夾,在這個(gè)文件夾里面創(chuàng)建 workflows 文件夾,在 workflows 文件夾里面創(chuàng)建 release.yaml 文件,內(nèi)容如下:

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 }}

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

等這個(gè) workflow 運(yùn)行完成以后,在 release 的 Assets 里面就會(huì)出現(xiàn)針對(duì)各個(gè)平臺(tái)的二進(jìn)制文件。

到此這篇關(guān)于Golang項(xiàng)目在github創(chuàng)建release后如何自動(dòng)生成二進(jìn)制文件的文章就介紹到這了,更多相關(guān)go自動(dòng)生成二進(jìn)制文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang Gob編碼(gob包的使用詳解)

    Golang Gob編碼(gob包的使用詳解)

    這篇文章主要介紹了Golang Gob編碼(gob包的使用詳解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-05-05
  • Golang異??刂铺幚沓绦蝈e(cuò)誤流程

    Golang異??刂铺幚沓绦蝈e(cuò)誤流程

    這篇文章主要介紹了Golang異??刂铺幚沓绦蝈e(cuò)誤流程,Golang異常處理機(jī)制包括錯(cuò)誤處理、panic和defer,可控制程序錯(cuò)誤流程,保證程序穩(wěn)定性和安全性,是Golang編程的關(guān)鍵方式
    2023-04-04
  • 淺析Golang中float64的精度問(wèn)題

    淺析Golang中float64的精度問(wèn)題

    這篇文章主要來(lái)和大家一起探討一下Golang中關(guān)于float64的精度問(wèn)題,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下
    2023-08-08
  • Go語(yǔ)言設(shè)計(jì)模式之實(shí)現(xiàn)觀察者模式解決代碼臃腫

    Go語(yǔ)言設(shè)計(jì)模式之實(shí)現(xiàn)觀察者模式解決代碼臃腫

    今天學(xué)習(xí)一下用?Go?實(shí)現(xiàn)觀察者模式,觀察者模式主要是用來(lái)實(shí)現(xiàn)事件驅(qū)動(dòng)編程。事件驅(qū)動(dòng)編程的應(yīng)用還是挺廣的,除了我們都知道的能夠用來(lái)解耦:用戶(hù)修改密碼后,給用戶(hù)發(fā)短信進(jìn)行風(fēng)險(xiǎn)提示之類(lèi)的典型場(chǎng)景,在微服務(wù)架構(gòu)實(shí)現(xiàn)最終一致性、實(shí)現(xiàn)事件源A?+?ES
    2022-08-08
  • golang之?dāng)?shù)據(jù)驗(yàn)證validator的實(shí)現(xiàn)

    golang之?dāng)?shù)據(jù)驗(yàn)證validator的實(shí)現(xiàn)

    這篇文章主要介紹了golang之?dāng)?shù)據(jù)驗(yàn)證validator的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Go如何實(shí)現(xiàn)Websocket服務(wù)以及代理

    Go如何實(shí)現(xiàn)Websocket服務(wù)以及代理

    這篇文章主要介紹了Go如何實(shí)現(xiàn)Websocket服務(wù)以及代理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Golang關(guān)鍵字select的常用用法總結(jié)

    Golang關(guān)鍵字select的常用用法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了golang中select關(guān)鍵字的常用用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • Go defer使用時(shí)的兩個(gè)常見(jiàn)陷阱與避免方法

    Go defer使用時(shí)的兩個(gè)常見(jiàn)陷阱與避免方法

    這篇文章主要將帶大家一起深入探討 Go 1.20 中 defer 的優(yōu)化機(jī)制,并揭示在使用 defer 時(shí)需要避免的兩個(gè)常見(jiàn)陷阱,有需要的可以了解下
    2025-03-03
  • Go語(yǔ)言學(xué)習(xí)otns示例分析

    Go語(yǔ)言學(xué)習(xí)otns示例分析

    這篇文章主要為大家介紹了Go語(yǔ)言學(xué)習(xí)otns示例分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Golang中反射的常見(jiàn)用法分享

    Golang中反射的常見(jiàn)用法分享

    本篇文章主要為大家詳細(xì)介紹一些Go語(yǔ)言中常見(jiàn)的反射用法,涵蓋了常見(jiàn)的數(shù)據(jù)類(lèi)型的反射操作。文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-01-01

最新評(píng)論

北海市| 广宗县| 西林县| 绥中县| 宝丰县| 镇坪县| 开封县| 正宁县| 晋州市| 章丘市| 凌云县| 夏邑县| 松阳县| 龙岩市| 九龙坡区| 双牌县| 仁化县| 宜章县| 枞阳县| 阳原县| 大宁县| 长顺县| 内黄县| 秀山| 新平| 道孚县| 抚州市| 康保县| 定结县| 集安市| 秦安县| 威远县| 伊金霍洛旗| 平乐县| 武城县| 宝山区| 安康市| 辽宁省| 炎陵县| 称多县| 徐汇区|