繁体   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