Travis CI在推送时触发多个构建

时间:2016-10-26 21:56:13

标签: git github travis-ci

我有一个LaTeX Resume托管here,启用了Travis CI,以便在每次推送时生成新的PDF。您可以找到Travis构建信息here

我让Travis设置为在推送时构建,但每次推送都会触发两个版本:一个用于推送,一个用于标记 - 即使没有标记。如果出现以下行为,您可以看到一个示例:

Example double build

我尝试将on: tags设置为false,但这并没有改变任何内容。

如何将Travis设置为每次推送仅构建一次?

这是我的.travis.yml

before_install:
- sudo apt-get update && sudo apt-get install --no-install-recommends texlive-fonts-recommended
  texlive-latex-extra texlive-fonts-extra texlive-latex-recommended dvipng
script:
- mkdir _build
- pdflatex -output-directory _build EvanOman.tex
deploy:
  provider: releases
  api_key:
    secure: <HASHED KEY>
  file:
  - _build/EvanOman.pdf
  skip_cleanup: true
  detect_encoding: true
  on:
    tags: false
after_success:
  "curl --ftp-create-dirs -T _build/EvanOman.pdf -u $FTP_U:$FTP_P ftp://ftp.evanoman.com/public_html/EvanOman.pdf"

1 个答案:

答案 0 :(得分:1)

事实证明错误是使用deploy.provider: releases

这样做会触发部署到我的回购的Github发布页面。问题是,如果我没有标签推送,Github将使用相关标签制作草稿版本:untagged:<commit hash>。然后添加这个新标签将触发另一个Travis构建,因此每次推送都会构建两个版本。

由于我只是通过FTP将生成的PDF发布到我的网站,因此解决方案是从我的deploy中删除.travis.yml块。这样做每次推送都删除了多个版本,Travis现在按照我的意愿行事。

这是我当前的.travis.yml

before_install:
- sudo apt-get update && sudo apt-get install --no-install-recommends texlive-fonts-recommended
  texlive-latex-extra texlive-fonts-extra texlive-latex-recommended dvipng
script:
- mkdir _build
- pdflatex -output-directory _build EvanOman.tex
after_success:
  "curl --ftp-create-dirs -T _build/EvanOman.pdf -u $FTP_U:$FTP_P ftp://ftp.evanoman.com/public_html/EvanOman.pdf"