Jenkins Job 到 运行 SOQL 查询

Jenkins Job to run SOQL query

我正在尝试让 Jenkins 作业执行 运行 sfdx force:data:soql:query 命令,以便在刷新后在我们的生产组织和我们的沙箱之间迁移配置数据集。某些配置不会在刷新时持续存在,因此我们需要一种方法来移动该数据。

运行 来自 Jenkins 服务器命令行的查询按预期工作,但是 运行s 时作业失败并出现以下错误:

'C:\Program' is not recognized as an internal or external command, operable program or batch file.
Build step 'Execute shell' marked build as failure

这项工作做了三件事: 授权给 DevHub,列出连接的组织,然后执行 SQOL 查询以仅打印一些数据——准确地说是 16 行。以下是作业的 shell 脚本中的命令:

sfdx force:auth:jwt:grant -i ${CONNECTED_APP_CONSUMER_KEY} -u ${DEV_HUB} -f ${JENKINS_HOME}/certs/prod/server.key -r [...] -a DevHub
sfdx force:org:list
sfdx force:data:soql:query -u ${DEV_HUB} -q "SELECT Id, Name FROM [...tablename...]" -r human

我完全不明白为什么会这样。同样,运行通过 PowerShell 或命令行直接在服务器上运行 SOQL 命令按预期工作。我将不胜感激。

这个问题困扰了我很长时间,但我们终于弄明白了。

如果您看到此错误,请确保检查您机器的环境变量。我看到很多其他答案都指向这个问题,因为 SFDX 路径名称的安装在 C:|P:rogram Files\SFDX\bin 中有空格,但只显示了一些奇怪的命令行 FOR 循环,这毫无意义什么都没有。

我们所做的是完全卸载所有 SFDX,确保 none 它留在机器上并重新安装到我们创建的路径名中没有空格的文件夹中。

一旦我们这样做了,我们的工作就如预期的那样进行了。我希望这可以帮助 运行 遇到同样问题的其他人。