2016-09-15 64 views
4

我目前有一個公共GitHub回購協議的PR。 爲工作服的說明說,把這個在.coveralls.yml文件:如何在GitHub中連接Coveralls和Travis?

service_name: travis-pro 
repo_token: <my_token> 

這並不適合我,因爲在.coveralls.yml文件將是公共 - 簽入到GitHub上。我的TravisCI集成到我的GitHub倉庫中,並連接到分支機構並在PR上啓動。

所以,我想這一點:

在TravisCI的站點設置環境VAR:

COVERALLS_REPO_TOKEN我的令牌值。

然後改裝成我.travis.yml看起來像這樣:

language: scala 
scala: 
    - 2.11.7 
notifications: 
    email: 
    recipients: 
     - [email protected]_email.com 
jdk: 
    - oraclejdk8 
script: "sbt clean coverage test" 
after_success: "sbt coverageReport coveralls" 
script: 
    - sbt clean coverage test coverageReport && 
    sbt coverageAggregate 
after_success: 
    - sbt coveralls 

現在,當我創建的分支上的PR這運行正常 - 沒有錯誤,我看在特拉維斯控制檯覆蓋輸出測試運行並生成文件。但是當我去看護服時,我什麼都看不到 - 「這個回購沒有任何建築物。」

我該如何設置?

編輯:我也嘗試創建一個.coveralls.yml只有service_name: travis-ci 沒有骰子,悲傷。

回答

5

我該如何設置?

第1步 - 啓用工作服

的第一件事要做的,就是讓連體衣爲您的存儲庫。

你可以在其網站上http://coveralls.io

  • http://coveralls.io
  • 使用您的GitHub的憑據
  • 點擊 「庫」,然後選擇 「添加回購」
    • 如果回購沒有列出,那麼,「Sync GitHub Repos」
  • 最後,翻轉 「啓用工作服」 開關置於 「ON」

enter image description here

第2步 - 設置特拉維斯-CI推覆蓋率的相關信息,以連身

.travis.yml文件包含scriptafter_success部分的多個條目。所以,讓我們來清理一下:

language: scala 
scala: 2.11.7 
jdk:  oraclejdk8 

script: "sbt clean coverage test" 

after_success: "sbt coveralls" 

notifications: 
    email: 
    recipients: 
     - [email protected]_email.com 

現在,當您按下時,腳本部分中的命令將被執行。 這是您的覆蓋率數據生成。

當命令成功完成後,執行after_success部分。 這是覆蓋率數據被推送到工作服。

.coveralls配置文件

.coveralls文件只需要:

  • 公共特拉維斯-CI回購不需要這個配置文件,因爲工作服可以得到通過他們的API的信息(通過訪問令牌交換)
  • repo_token(可在Coveralls的回購頁面找到)僅用於私人回購,並應保密。如果你發佈它,那麼任何人都可以爲你的回購提交一些覆蓋數據。

歸結起來:您需要的文件只有在兩種情況下:

  • 指定自定義位置的文件包含覆蓋數據
  • 或當您使用特拉維斯-Pro和私人存儲庫。然後,你必須配置「特拉維斯親」,並添加標記:

    service_name: travis-pro 
    repo_token: ...