我当前正在将一些生成组件迁移到 *Azure管道 *,并尝试为所有Golang相关进程设置一些环境变量。我希望在管道内执行以下命令:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build [...]
当使用提供的 Golang 集成时,为 Go 相关进程添加参数很容易,但是为所有(或每个)Go 进程设置环境变量似乎是不可能的。GoTool 或默认的 Go 任务似乎都不支持它,并且似乎也不支持执行带有shell执行的 script 任务。
我还尝试向整个管道流程添加一个环境变量来定义所需的标志,但Azure管道本身提供的 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'
1条答案
按热度按时间xriantvc1#
根据我所能找到的信息和长时间的调试,我最终使用了一种变通方法,即在
CmdLine@2
任务中运行golang
命令。由于GoTool@0
设置管道和环境的方式,这是可能的。因此,下面的代码片段符合我的目的。