-
開啟github項目的Travis CI
- 訪問https://travis-ci.org/,使用github賬號登錄
-
開啟github項目CI開關
- 訪問https://travis-ci.org/,使用github賬號登錄
-
配置自動編譯腳本:.travis.yml
- ubuntu環境,安裝ruby,gem,通過gem安裝Travis
$ gem install travis - 通過Travis的travis setup releases命令生成并配置.travis.yml(需要輸入github賬號和密碼)
在您的github項目工程根目錄下,執行如下命令,就會自動在根目錄生成一個.travis.yml(中間會提示輸入github賬號密碼等信息):
$ travis setup releases
這里提供一份參考解釋:
language: android sudo: false android: components: - build-tools-25.0.2 - android-25 - extra-android-m2repository - extra-android-support # before install any dependencies required before_install: - chmod +x gradlew # run the build script script: - "./gradlew assembleRelease" # deploy stage base on tags deploy: provider: releases api_key: secure: eY1MPVqsgMQs0deLMeHH0hJrkdxgP8VauCc0AW3MEDy+89EkPQiWK+mQgnNVExGL54ajMurYAs3Y3evRZNNxeIUnhXiFLTLTg9sZlbT1lhK+/0wjQ0pQ6B2RbQLeNUq5dXrJbgLEWTpDgvABZomnYvDiUll7iJESX1Eo2NOZ/YKsjkPXILnm63P37UOrxBzOi45ZTZ5hd4L+E1oDq9k0fI0YEh7HKJYR5RfpFK3fvcNqyoAPG2cBlwGS33dfg4LeZN2Yxb+7cNMraEipj7ZjiiaYFXeGOgBz8xWWqcG+k8MjqpxOKJtlSqKjxFYpa0J97yFxxmmMtIEJX+lExc6XMbm9xeYKMqeJJLwSpmNFk6ggkk/vUsTzMy8+LdczyuQhBvCGMRt/IZRSxGIOznZD3KbmK5/Ceex3aXgin2pEhNA4LmwSLf+zMhniJNIZj3b2cF8u18LR1lGTNxTD03w170lDtX1fizmUQYFSiPJHeBiGp3W5HD9uTLbJfnh9tfJnOIhlKMN5C1Nl2HUyeV4KXCnkl4q73DtMuuNBn66JnFUhuzh0diFVpdAUK0KhwYTGew6DNz3GsnxFuPr/6MnrpUKKxSucDjprA2G0bfd7XbrVSw9BYR3wk5mU3ust5HXqh0erTIh6kRkin6NphPm+NLyQTvvbeXc/+M/zkXWAU9w= file: "app/build/outputs/apk/app-release-unsigned.apk" skip_cleanup: true on: tags: true repo: wangfuda/nebula
- ubuntu環境,安裝ruby,gem,通過gem安裝Travis
以上配置主要實現了:
編譯前,先授權了gradlew的執行權限
然后執行編譯腳本:./gradlew assembleRelease
最后基于tag觸發,發布apk文件至github release中
以上配置中的具體含義可參考官方文檔
其中,api_key
中的secure
為travis setup releases
命令執行中基于github賬號密碼自動生成的。
注:其實Travis CI提供了多種賬號加密token的形式,但是其他幾種均存在一些bug導致賬號校驗有問題,目前親測這種可行。
- 配置Bintray oss賬號并發布版本至Bintray
- Bintray上注冊賬號,或用github賬號登錄,地址為:https://bintray.com/signup/oss,而非這個地址:https://bintray.com/signup (注意,開源項目必須要用OSS賬號,否則會因鑒權問題導致無法上傳發布版本)
-
配置bintray.gradle(即發布版本的gradle腳本)
注:這里可以無需顯示提供賬號,可使用Travis CI上的該項目的環境變量來設置
在gradle中基于Travis CI環境變量實現共用一套配置:
bintray {
user = project.hasProperty("BINTRAY_USER") ? BINTRAY_USER : System.getenv("BINTRAY_USER")
key = project.hasProperty("BINTRAY_KEY") ? BINTRAY_KEY : System.getenv("BINTRAY_KEY")
...
}