【问题标题】:How do I set an environment variable on a Team Foundation Server private macos agent?如何在 Team Foundation Server 私有 macos 代理上设置环境变量?
【发布时间】:2018-07-24 00:42:18
【问题描述】:

我正在尝试在 TFS 上运行构建。其中一个步骤是设置环境变量。这一步,Shell Script,在以下脚本上失败:

export NODE_CONFIG_DIR= node_modules/test-automation-common/config

工作目录为$(build.SourcesDirectory)/specmapper

我是在本地 Macbook Pro 上使用共享私人代理的团队的一员。我不确定它运行的确切操作系统,但我知道它只有一两年的历史。

我正在尝试弄清楚如何在这台机器上设置环境变量。该机器设置了 bash 环境,因此以下内容应该可以工作:

  • export VARNAME=stringofthingyouwant

出于安全考虑,我无法远程进入机器。我确信应该设置导出。

我正在尝试使用 Protractor 运行自动化测试,并且我需要设置一个配置目录变量,该变量在运行 npm install 之后才可用,因此我无法按照建议使用“runsvc.sh”中的导出部分here.


编辑:我之前尝试在 mac 上使用命令行步骤,现在显然无法正常工作。我弄错了命令行==终端。如上所述,我现在有一个Shell Script

我正在尝试在 TFS 上运行构建。其中一个步骤是设置环境变量。此步骤(命令行)失败并显示以下消息:

Failed which: Not found export: null
undefined failed with error: Failed which: Not found export: null

【问题讨论】:

标签: node.js bash tfs azure-devops azure-pipelines


【解决方案1】:

您应该按照Logging Commands 中的说明使用##vso[task.setvariable]value

从一个 bash 脚本,就这么简单

echo ##vso[task.setvariable variable=myShinyNewVariable;]aSplendidValueForMyVar

【讨论】:

  • 感谢您的评论。我最终通过在同一个 shell++ 脚本步骤中运行导出和需要导出的过程来解决它。我从不明白环境变量没有一步一步保存的问题中找到了解决方案。
【解决方案2】:

解决方案是使用“Shell++”步骤作为构建步骤。我确定环境变量是逐步清理的,因此我不是一步设置变量并使用单个“节点”构建步骤运行我的“ng e2e”,其中先前的环境变量不可用,我只需将两者作为脚本放入“Shell++”。现在工作正常。

明确说明环境变量不会跨步骤保存的文档会很高兴。

@Giulio Vian 的建议可能会在您需要在整个作业中使用变量时起作用,但在我的情况下它不起作用,因为在运行“npm install”之后路径才可用。

【讨论】:

    猜你喜欢
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2016-03-30
    • 1970-01-01
    • 2010-10-03
    相关资源
    最近更新 更多