首頁  >  文章  >  後端開發  >  將 Golang 環境變數注入 Azure Pipeline

將 Golang 環境變數注入 Azure Pipeline

PHPz
PHPz轉載
2024-02-13 13:40:091015瀏覽

将 Golang 环境变量注入 Azure Pipeline

php小編小新為您帶來了一篇關於將Golang環境變數注入Azure Pipeline的文章。在現代的軟體開發中,使用持續整合和持續交付的流程已經成為標準做法。 Azure Pipeline是一個強大的工具,可協助開發人員自動化建置、測試和部署應用程式。本文將介紹如何在Azure Pipeline中註入Golang環境變量,以便在建置和部署過程中使用Golang相關的工具和程式庫。透過了解這些步驟,您將能夠更有效率地利用Azure Pipeline來建置和部署Golang應用程式。

問題內容

我目前正在將一些建置元件移轉到azure pipelines,並嘗試為所有 golang 相關進程設定一些環境變數。我希望在管道中執行以下命令:

cgo_enabled=0 goos=linux goarch=amd64 go build [...]

當利用提供的golang整合時,很容易為go相關進程添加參數,但為所有(或每個人)設定一個環境變數>go 過程似乎不可能。 gotool 或預設的 go 任務似乎都不支援它,似乎不支援執行帶有 shell 執行的 腳本 任務要么。

我還嘗試為整個管道進程添加一個環境變數來定義所需的標誌,但這些似乎被 azure pipelines 本身提供的 go 任務忽略。

是否有一種方法可以將這些標誌添加到每個(或單個)go 進程中,例如我如何在以下程式碼區塊中執行此操作(其中創建了flags 輸入行由我來完成)?

- task: Go@0
  inputs:
    flags: 'CGO_ENABLED=0 GOOS=linux GOARCH=amd64'
    command: 'build'
    arguments: '[...]'
    workingDirectory: '$(System.DefaultWorkingDirectory)'
  displayName: 'Build the application'

解決方法

根據我能夠找到的資訊和長時間的調試,我最終使用了一種解決方法,在golang 任務中運行 cmdline@2 指令。由於 gotool@0 設定管道和環境的方式,這是可能的。

因此,下面的程式碼片段滿足了我的目的。

steps: 
- task: GoTool@0
  inputs:
    version: '1.19.0'
- task: CmdLine@2
  inputs:
    script: 'CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build'
    workingDirectory: '$(System.DefaultWorkingDirectory)'

以上是將 Golang 環境變數注入 Azure Pipeline的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除