我的团队使用Jenkins使用python脚本生成iOS版本,subprocess.Popen()
用于运行shell命令。我的SVN密码昨天已更改,我已在Jenkins的凭证和更新中更新了它。 jenkins用户的〜/ .subversion文件夹下的auth文件夹。
但是,svn update
在终端和Jekins之间有不同的结果。
在终端中,如果我通过
登录jenkins用户,一切正常sudo su jenkins
然后:
bash-3.2$ whoami
jenkins
bash-3.2$ svn update ../../skins/MyApp/skin.bundle
Updating
'/Users/Shared/Jenkins/Home/workspace/MyAppSpace/skins/MyApp/skin.bundle':
Restored
'/Users/Shared/Jenkins/Home/workspace/MyAppSpace/skins/MyApp/skin.bundle'
Restored
'/Users/Shared/Jenkins/Home/workspace/MyAppSpace/skins/MyApp/skin.bundle/Resources'
Restored
'/Users/Shared/Jenkins/Home/workspace/MyAppSpace/skins/MyApp/skin.bundle/Resources/Images'
Restored
'/Users/Shared/Jenkins/Home/workspace/MyAppSpace/skins/MyApp/skin.bundle/text_templates.json'
At revision 82894.
然而,在Jenkins中我用subprocess.Popen( "svn update ..", shell=True,..,..)
运行脚本,我会收到错误:
whoami
jenkins
svn update "../../skins/MyApp/skin.bundle"
Updating '/Users/Shared/Jenkins/Home/workspace/MyAppSpace/skins/MyApp/skin.bundle':
svn: E215004: Authentication failed and interactive prompting is disabled; see the --force-interactive option
svn: E215004: Unable to connect to a repository at URL 'https://My_SVN_URL/skins/MyApp'
svn: E215004: No more credentials or we tried too many times.
Authentication failed
我知道问题可以通过添加--username&来纠正。 - 使用svn update命令的密码参数,虽然我不想修改我的脚本但是做了一些系统环境设置。我对终端和Jenkins之间的不同行为更加好奇,为什么同一个用户触发svn update
命令,但是不同的用户名和&密码设置将被使用?
svn info
命令适用于终端和Jenkins脚本。