如何自定义/覆盖Travis CI中的"git clone"步骤?

eri*_*ert 25 travis-ci

在安装步骤中,Travis CI克隆了repo,它看起来与此类似:

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

我该如何自定义/覆盖它?


背景:我正在使用基于标签的部署.Travis检查标记的构建(--branch=<tagname>)的方式,git存储库处于分离状态而无法访问分支.但是,对于部署,我需要知道我是哪个分支.我的解决方案是执行"正常"克隆,然后切换到标记的提交.

eri*_*ert 16

您可以在安装步骤中再次克隆存储库.这样你克隆存储库两次,但它似乎工作.

# .travis.yml
install:
  - git clone https://github.com/$TRAVIS_REPO_SLUG.git $TRAVIS_REPO_SLUG
  - cd $TRAVIS_REPO_SLUG
  - git checkout -qf $TRAVIS_COMMIT
Run Code Online (Sandbox Code Playgroud)

  • 如果您要使用ssh重新克隆私有存储库,请使用`git clone git@github.com:$ {TRAVIS_REPO_SLUG} .git`。 (2认同)

jon*_*rpe 6

根据Travis文档,您可以向其中添加以下内容.travis.yml以删除该--depth标志:

git:
  depth: false
Run Code Online (Sandbox Code Playgroud)

作为--depth暗示--single-branch,除去该标志意味着所有分支机构将被检查出来,这是不是默认的行为。