2016-04-28 15 views
0

私はJenkinsからTravis CIに切り替わります。 Jenkinsでは、Java/AndroidライブラリをGit masterブランチにプッシュするためのスクリプトを書く必要はありませんでした。 Travisでは、すべての私の研究は、after_successで実行するカスタムbashスクリプトを書く必要があることを示しています。
これは私のdeploy.shTravis CIからgit masterブランチにプッシュ

#!/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 

と私のscriptセクションの下.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/ 

after_successセクションで(成功した)、そこから私のappdirと実行テストのルートディレクトリからのI cd、私cd私のdeploy.shがあるルートに戻ってそれを呼んでください。
私のトラビスコンソールはすべて成功したと表示しますが、私のマスターブランチには何の変化も見られません。
何が間違っていますか?

+0

deploy.shからログを表示できますか? –

+0

deploy.shに 'git remote -v'を追加してください –

答えて

2

私の経験では、Gitはビルドが使用しているブランチを認識しておらず、追加のコミットを持つ現在のHEADをプッシュしたいということです。

Travis CIでは、Gitが同じマスターブランチをプッシュしているため、「Everything up-to-date」と表示されるだけのログメッセージが表示されることがあります。

HEADを追加するようにスクリプトを変更することができます。 git-pushing-to-github-origin-master-does-nothing - :

#!/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 

これは説明して同様の答えがあります。

関連する問題