-
开启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")
...
}