2015-02-24 49 views
1

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,那将会很棒。

回答

0

没有,直到现在。我发行Question to be possible to automate pod trunk push with CI service like travisCI

然后,开发人员合并了允许自动发布的提交(允许通过COCOAPODS_TRUNK_TOKEN环境变量指定一个Trunk令牌)。

我不尝试它,但也许可以自动推动。

[已添加]我在上面写道后,我试了一下,它运行良好。

+0

我认为这将适用于我的使用案例,因为在挖掘源代码之后,未验证IP是否与原始令牌请求匹配,并且每次调用Trunk都会延长会话时间。 – Footpad 2015-03-12 18:34:54