travis,仅在标签上上传生成的pdf文件

时间:2018-06-16 14:29:36

标签: git github travis-ci pdflatex

我总是用git管理我的乳胶项目。现在我想我可以用某种方式使用Travis从乳胶文件中构建PDF。

这也适用于以下.travis配置。

sudo: required
branches:
  only:
    - master
language: latex
services:
  - docker
before_install:
  - docker pull blang/latex:ubuntu
script:
  - make docker-pdf
before_deploy:
  - git config --local user.name "my-name"
  - git config --local user.email "my-email"
  - git tag "$(date +'%Y%m%d%H%M%S')-$(git log --format=%h -1)"
deploy:
  provider: releases
  api_key:
    secure: [my-key]
  file: "index.pdf"
  skip_cleanup: true
env:
  global:
    secure: [my key]

但是,每个提交都是构建和发布的。这不是我希望你拥有的行为。我想建立所有提交,但如果我上传一个标签,它将被发布。

所以我在某些点编辑配置

before_deploy:
  - git config --local user.name "my-name"
  - git config --local user.email "my-email"
#  - git tag "$(date +'%Y%m%d%H%M%S')-$(git log --format=%h -1)"
deploy:
  provider: releases
  api_key:
    secure: [my-key]
  file: "index.pdf"
  on:
    tags: true
  skip_cleanup: true

但我从travis那里得到以下信息。

The command "make docker-pdf" exited with 0.
Skipping a deployment with the releases provider because this is not a tagged commit

但我推了一个提交。所以我不理解这种行为。

沃尔克

1 个答案:

答案 0 :(得分:0)

如果您实际推送了标记提交,包括

on:
  tags: true

应该已经完成​​了这个伎俩......

你有没有标记&推动here描述的方式?请注意push origin

git tag -a v1.4 -m "my version 1.4"
git push origin v1.4
  

默认情况下,git push命令不会将标记传输到远程服务器。创建共享服务器后,您必须明确地将标记推送到共享服务器。这个过程就像共享远程分支一样 - 你可以运行git push origin。

可能在scriptbefore_install中包含一个简单的回音,以验证$TRAVIS_TAG是否已实际设置。关注默认环境变量,请注意this part of the documentation。所以请包括:

- echo $TRAVIS_TAG

如果它仍然无法正常工作,您也可以检查this answer。它包含有关标签和其他选项的部署信息。