运行SOQL查询的Jenkins作业



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

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

'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:program Files\SFDX\bin中一样,但只显示了一些奇怪的命令行FOR循环,这从来都没有意义。

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

一旦我们做到了这一点,我们的工作就如愿以偿了。我希望这能帮助其他遇到同样问题的人。

最新更新