簡體   English   中英

注入Golang環境變量到Azure Pipeline

[英]Injection of Golang environment variables into Azure Pipeline

我目前正在將一些構建組件遷移到Azure 管道,並試圖為所有 Golang 相關進程設置一些環境變量。 我希望在管道中執行以下命令:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build [...]

使用提供的Golang集成時,很容易為Go相關進程添加 arguments,但似乎不可能為所有(或每個人) Go進程設置環境變量。 GoTool或默認的Go任務似乎都不支持它,並且似乎也不支持執行帶有 shell 執行的腳本任務。

我還嘗試將環境變量添加到定義所需標志的整個管道過程中,但這些似乎被 Azure 管道本身提供的Go任務忽略了。

是否有辦法將這些標志添加到每個(或單個)go 進程,例如我如何在以下代碼塊中執行此操作(其中標志輸入行由我組成)?

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

根據我能夠找到的信息和許多小時的調試,我最終使用了一種變通方法,即在CmdLine@2任務中運行golang命令。 由於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)'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM