Quantcast
Channel: 小惡魔 – 電腦技術 – 工作筆記 – AppleBOY
Viewing all articles
Browse latest Browse all 325

在 appveyor 內指定 Go 語言編譯版本

$
0
0

golang logo

相信比較少人知道 appveyor 這服務,我會接觸到此服務最大的原因是,要提供 Windows 的 Docker Image,並且上傳到 DockrHub,此服務提供了 Windows 環境,讓開發者可以透過此服務編譯 Windows 的 Binary 檔案,並且在 Windows 上執行測試,這對於我在寫 Go 語言開源專案非常有幫助,畢竟平常開發真的沒有 Windows 相關的環境可以使用。但是 appveyor 在更新第三方套件非常的慢,這時候我們想要用 GO 的 1.12 版本就需要自行來安裝,安裝方式其實也不難,請參考底下設定。

appveyor windows

安裝指定 Go 語言版本

安裝特定版本的 Go 語言,只要自行下載 Windows msi 執行檔,接著安裝就可以了:

environment:
  GOPATH: c:\gopath
  GO111MODULE: on
  GOVERSION: 1.12.4

install:
  # Install the specific Go version.
  - rmdir c:\go /s /q
  - appveyor DownloadFile https://storage.googleapis.com/golang/go%GOVERSION%.windows-amd64.msi
  - msiexec /i go%GOVERSION%.windows-amd64.msi /q
  - go version
  - go env
  - ps: |
      docker version
      go version
  - ps: |
      $env:Path = "c:\gopath\bin;$env:Path"

會碰到這個問題最主要是 Go module 在 1.11.1 ~ 1.11.3 有個 bug 就是,只要在 go.mod 內寫了 go 1.12 這樣此套件就會判斷目前的 Go 版本,如果小於 go1.12 就無法編譯套件,這問題在 go1.11.4 已經被解決,但是 appveyor 還停留在 go 1.11.2 版本,所以造成需要自行升級 Go 版本。有需要在 Windows 測試 GO 語言的,現在透過此方式可以編譯不同版本的環境。


Viewing all articles
Browse latest Browse all 325