从https://groups.google.com/forum/#!topic/cocoapods/i7dwMV4EqZ8CocoaPods可以推动公众对自动化更友好吗?
我是有点的CocoaPods新手和从未建立波德之前,但我正在寻找到一个如何能够从我组织的持续部署内自动完成公共podspecs出版基础设施,有一些关于它的特性使得使用Trunk变得困难。它们是:
- 进行发布的帐户/所有者是非人类系统帐户。
- 上述系统帐户在运行的计算机上没有主目录,这会妨碍使用.netrc文件(Trunk用于存储会话令牌的内容)。这应该可以通过创建一个假的主目录并为其设置HOME环境变量来解决,因为这就是netrc gem所寻找的。
- 执行发布的机器被假定为“无状态”,这意味着发布可能始终发生在从未注册过的其他机器上。
我想过为这个帐户创建初始.netrc,在我们的安全存储中存储该令牌,并在发布时检索它以构建.netrc文件。有一个关于这一点,我不认为工作做好几件事情:
- 通过干线返回的令牌出现到期,这意味着有一个人周期性地创建一个新的令牌,并更新我们的安全存储。
- 中继会话似乎是跟踪他们创建的机器的IP地址,我认为发布请求经过验证,如果IP地址不匹配,则会失败。由于发布发生在不同的机器上,这意味着每次运行这种发布自动化时都需要创建一个新的会话。实际上,我希望这些机器的IP地址来自同一个外部IP地址,但这不是我能忍受的假设。
我想要的下一个选择会复杂得多:让发布自动注册一个新会话,等待注册电子邮件,然后在继续发布之前使用电子邮件中的链接验证会话。我不知道如何实现这个目标,但我认为这是一个可行的解决方案,如果不是耗时的话。任何关于如何完成这些建议都是值得欢迎的。
是否有任何替代方案可以发布公共podspecs?在我看来,Trunk并不真正支持这个用例;如果有一种方法可以适应Trunk,那将会很棒。
我认为这将适用于我的使用案例,因为在挖掘源代码之后,未验证IP是否与原始令牌请求匹配,并且每次调用Trunk都会延长会话时间。 – Footpad 2015-03-12 18:34:54