2015-02-24 50 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