从Travis CI推送到git master分支

时间:2016-04-28 13:01:06

标签: gradle travis-ci

我正在从詹金斯转到特拉维斯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控制台显示一切都很成功但我没有看到我的主分支有任何变化 我做错了什么?

1 个答案:

答案 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