无法使用 jenkins 设置的 perforce 票证来自动执行 perforce 登录



尝试在 jenkins 中自动登录,因为密码在几天后过期。Jenkins 设置了 $P 4_TICKET 环境变量。我正在尝试使用它,以便用户无需再次重新登录即可输入密码。

echo $P4_TICKET > $P4TICKETS
Actual result : Unexpected exception while loading target: Perforce password (P4PASSWD) invalid or unset.

预期:perforce票证应该从Jenkins使用。在这里,我正在尝试复制到我的环境变量 $P 4TICKETS

  1. 您的$P4TICKETS变量是否实际设置为文件名?
  2. Jenkins 设置的$P4_TICKET值是否与该文件的预期格式匹配?

$P4TICKETS值不一定在任何给定的客户端环境中设置,因此这是要检查的第一件事。 客户端将假定默认的 ticket 文件名为 ~/.p4tickets ,但 shell 不知道它应该将该值用于环境变量 $P4TICKETS

.p4tickets文件可能包含按用户/端口索引的多个票证;如果 Jenkins 的$P4_TICKET值只是票证(就像你从p4 login -p那里得到的一样(,如果你只是将其转储到票证文件中,它就不会被识别(因为客户端不知道它是什么连接(。

P4_TICKET只是你的 Jenkins 工作所具有的凭据的票证值。

在这里,我正在尝试复制到我的环境变量$P 4TICKETS

正如Sam所提到的,你的工单文件($P 4TICKETS(需要服务器的地址和用户以及工单值。 "p4 插件"不会公开服务器的地址,因此您将无法在 ticket 文件中写出有效的行。

至于你的问题,"尝试在 jenkins 中自动登录",我不明白你需要做什么。 "强制密码凭据"将为您登录。 请提供更多细节。

谢谢Sam Stafford和J Brown。你们都是对的。P4TICKETS无法仅通过票证哈希找到。我必须包括 P4PORT、P4USER 和 Ticket 到 ~/.p4tickets,然后在我登录 jenkins 的用户凭据下启用"所有主机"。这让我登录并继续

谢谢:(

最新更新