我正在从詹金斯转到特拉维斯CI。在Jenkins中,我没有编写脚本来将我的Java / android库推送到Git master分支。使用Travis,我的所有研究表明我需要编写一个自定义bash脚本以在after_success
中执行
这是我的deploy.sh
#!/bin/bash
rev=$(git rev-parse --short HEAD)
git config user.name "uname"
git config user.password "password"
git add .
git commit -m "travis commit at ${rev}"
git push origin master
和我的.travis.yml
branches:
only:
- development
language: android
sudo: false
android:
components:
- build-tools-22.0.1
- android-22
script:
- cd appdir
- ./gradlew test
after_success:
- cd ..
- ./deploy.sh
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
在script
部分下,我cd
从根dir到我的appdir
并从那里(成功)运行测试然后在after_success
部分,我{{1} }}回到我的cd
所在的根目录并调用它
我的travis控制台显示一切都很成功但我没有看到我的主分支有任何变化
我做错了什么?
答案 0 :(得分:2)
我的经验是,Git似乎不知道您的构建正在使用的分支,并且您想要推送具有额外提交的当前HEAD。
在Travis CI中,您可能会有一条日志消息,显示“一切都是最新的”,因为Git正在推动同一个主分支。
您可以更改脚本以添加HEAD。
#!/bin/bash
rev=$(git rev-parse --short HEAD)
git config user.name "uname"
git config user.password "password"
git add .
git commit -m "committed at ${rev}"
git push origin HEAD:master
这是一个类似的答案,可以解释: - git-pushing-to-github-origin-master-does-nothing。