2016-04-28 47 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