我有一个LaTeX Resume托管here,启用了Travis CI,以便在每次推送时生成新的PDF。您可以找到Travis构建信息here。
我让Travis设置为在推送时构建,但每次推送都会触发两个版本:一个用于推送,一个用于标记 - 即使没有标记。如果出现以下行为,您可以看到一个示例:
我尝试将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"
答案 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"