(几乎)相同的詹金斯项目,一个工作,一个失败

时间:2017-11-06 19:47:11

标签: git jenkins ant

除了正在使用的repo之外,我有两个相同的Jenkins项目。 Jenkins正在为两者运行一个ant构建并使用不同的目标。

除了引用不同的分支外,这两个目标在字面上完全相同。一个项目有效,另一个有误。

失败的项目错误:

 [exec] bash: /dev/tty: No such device or address
 [exec] error: failed to execute prompt script (exit code 1)
 [exec] fatal: could not read Password for 'https://****@git.ersp.net': No error
 [exec] Result: 128

我已经看过这个问题了,我能找到的内容似乎与正在使用的其他实用工具有关,例如Atom,Winpty等。我们使用这些但我们使用bash。

似乎问题源于bash无法请求用户名和密码,但这些是由Jenkins提供的(两个项目是相同的)。

我在Jenkins更新了我的凭据只是为了确保不是问题。第一个项目继续通过第二个项目继续失败,他们使用相同的凭据。

Ant Targets

<!-- RELEASE GIT -->
<target name="update-release-git">      
    <exec executable="C:\Program Files\Git\cmd\git.exe">
        <arg value="-C" />
        <arg value="${testing-release}" />          
        <arg value="checkout" />
        <arg value="${BRANCH}" />
    </exec> 
    <exec executable="C:\Program Files\Git\cmd\git.exe">
        <arg value="-C" />
        <arg value="${testing-release}" />          
        <arg value="fetch" />
    </exec> 
</target>

<!-- EPIC1 GIT -->
<target name="update-epic1">
    <exec executable="C:\Program Files\Git\cmd\git.exe">
        <arg value="-C" />
        <arg value="${testing-epic1}" />            
        <arg value="checkout" />
        <arg value="${BRANCH}" />
    </exec> 
    <exec executable="C:\Program Files\Git\cmd\git.exe">
        <arg value="-C" />
        <arg value="${testing-epic1}" />            
        <arg value="fetch" />
    </exec> 
</target>

EPIC1 有效,而 RELEASE 则无效。它们都是同一个回购的克隆,它们只是使用不同的分支。

任何帮助将不胜感激,谢谢!

修改 为了澄清,这些工作要独立运作。

凭据信息通过Jenkins凭据管理器传递。在源代码管理&gt;下Git 您选择了repo url,然后凭据是已添加到Jenkins的可用凭据的选择选项。

1 个答案:

答案 0 :(得分:0)

如果你乱搞你的构建脚本和你的源代码控制,你总是会遇到糟糕的时间。

让jenkins处理从git中检出。总是。 如果你的蚂蚁脚本弄乱了你的工作副本,你就会妨碍jenkins显示变更集的能力,这反过来又会影响那些已经承诺建立或者上次成功的人。当有人对分支上的构建脚本进行更改时会产生混淆(在脚本启动后更改分支时无效)。

跳过密码并使用ssh密钥进行身份验证可能更容易。

希望一旦你停止尝试执行git,你就会处于一个好位置。