2016-04-28 76 views
0

我从詹金斯转换到特拉维斯CI。在Jenkins中,我不必编写脚本来将我的Java/android库推送到Git master分支。通过Travis,我所有的研究都表明我需要编写一个自定义的bash脚本来执行after_success
这是我deploy.sh从特拉维斯推送到git master分支CI

#!/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从根目录到我appdir和运行测试,从那里(成功),然后在after_success部分,我cd回到我的deploy.sh所在的地方,然后调用它。
我的travis控制台显示一切都很成功,但我在主分支中看不到任何更改。
我在做什么错?

+0

你可以从deploy.sh中显示日志吗? –

+0

请将'git remote -v'添加到deploy.sh –

回答

2

我的经验是,Git没有出现知道您的构建正在使用的分支,并且您想推送具有额外提交的当前HEAD。

在Travis CI中,当Git推送相同的主分支时,您可能会收到一条日志消息,显示'Everything up-to-date'。

您可以更改脚本以添加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