首页 > 后端开发 > Golang > 将 Golang 环境变量注入 Azure Pipeline

将 Golang 环境变量注入 Azure Pipeline

PHPz
发布: 2024-02-13 13:40:09
转载
1089 人浏览过

将 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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板