卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章35562本站已运行397

将 Golang 环境变量注入 Azure Pipeline

将 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)'
卓越飞翔博客
上一篇: 在 gitlab-ci/cd 中制作 golang deb 时,...中没有 Go 文件
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏