How can I customize / override the "git clone" step in Travis CI?

ericteubert picture ericteubert · Sep 15, 2015 · Viewed 8.5k times · Source

On the install step, Travis CI clones the repo, which looks similar to this:

git clone --depth=50 --branch=master https://github.com/user/repo.git user/repo

How can I customize / override this?


Background: I am using tag based deploys. The way Travis checks out tagged builds (--branch=<tagname>), the git repository is in a detached state without access to branches. However, for deployment I need to know on which branch I am. My solution is to do a "normal" clone and then switch to the tagged commit.

Answer

ericteubert picture ericteubert · Sep 15, 2015

You can clone the repository again in the install step. That way you clone the repository twice, but it seems to work.

# .travis.yml
install:
  - git clone https://github.com/$TRAVIS_REPO_SLUG.git $TRAVIS_REPO_SLUG
  - cd $TRAVIS_REPO_SLUG
  - git checkout -qf $TRAVIS_COMMIT