【问题标题】:Travis CI deploy JAR to Github masterTravis CI 将 JAR 部署到 Github master
【发布时间】:2015-01-27 16:09:51
【问题描述】:

参考:http://docs.travis-ci.com/user/deployment/http://docs.travis-ci.com/user/deployment/releases/

我正在尝试将我的 JAR 文件部署到 Github,但我不想每次都创建标签。 我知道这不是正确的行为,但如果可能的话,我想这样做。

构建过程运行良好,但是当我使用这个travis.yml 文件时:

language: java
deploy:
  provider: releases
  api-key: "<my_api_key>"
  file: "teapot-1.2.5-beta.jar"
  skip_cleanup: true
  on:
    branch: master

我收到了这个错误:

Installing deploy dependencies
Fetching: addressable-2.3.6.gem (100%)
Successfully installed addressable-2.3.6
Fetching: multipart-post-2.0.0.gem (100%)
Successfully installed multipart-post-2.0.0
Fetching: faraday-0.9.1.gem (100%)
Successfully installed faraday-0.9.1
Fetching: sawyer-0.6.0.gem (100%)
Successfully installed sawyer-0.6.0
Fetching: octokit-3.7.0.gem (100%)
Successfully installed octokit-3.7.0
5 gems installed
Fetching: mime-types-2.4.3.gem (100%)
Successfully installed mime-types-2.4.3
1 gem installed dpl.2
Preparing deploy
Logged in as Carlos Magno Oliveira de Abreu

Deploying to repo: icemagno/teapot
Current tag is: dpl.3
Deploying application
/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/octokit-3.7.0/lib/octokit/response/raise_error.rb:16:in `on_complete': POST https://api.github.com/repos/icemagno/teapot/releases: 422 - Validation Failed (Octokit::UnprocessableEntity)
Error summary:
resource: Release
code: missing_field
field: tag_name
resource: Release
code: custom
field: tag_name
message: tag_name is not well-formed
resource: Release
code: custom
message: Published releases must have a valid tag // See: https://developer.github.com/v3/repos/releases/#create-a-release
...
failed to deploy

这是基本的部署配置:

language: java

deploy:
  provider: releases
  api-key: "<my_key_again>"
  file: "teapot-1.2.5-beta.jar"
  skip_cleanup: true
  on:
    tags: true
    all_branches: true

但我还没有创建任何标签,因为我暂时不想这样做。

编辑

我已经创建了一个标签,现在我需要更改.travis.yml 文件来测试一些配置,而 GitHub 不允许我更改标签文件上的任何内容(好的,必须这样)cr#p!

【问题讨论】:

    标签: github deployment travis-ci


    【解决方案1】:

    如果可以的话,我相信您正在寻找的内容与I was 相同。

    基本上在您的.travis.yml 中添加如下内容:

    before_deploy:
      - git config --global user.email "builds@travis-ci.com"
      - git config --global user.name "Travis CI"
      - export GIT_TAG=$TRAVIS_BRANCH-v0.1.$TRAVIS_BUILD_NUMBER
      - git tag $GIT_TAG -a -m "Generated tag from TravisCI for build $TRAVIS_BUILD_NUMBER"
      - git push -q https://<your-api-key>@github.com/<your_name>/<project_name> --tags
    
    deploy:
      skip_cleanup: true
      provider: releases
      api_key:
        secure: [redacted]
      file:
        - "your_file"
      on:
        tags: false
        all_branches: true
    
    branches:
      except:
        - /^*-v[0-9]/
    

    但要小心,因为在使用这些特定配置选项时搞砸了可能会导致无限的 Travis-CI 构建循环,这会污染您的构建和标签历史记录,并且不容易清理。

    【讨论】:

    • 谢谢。请告诉我更多关于我该如何搞砸的信息。
    • 如果你设置了on.tags: true,那么每次推送时,它都会添加触发另一个构建的构建标签,从而循环。
    • 啊!明白了。我认为你应该在你的答案中用粗体警告写这个。
    • 请告诉我更多关于branches: except:正则表达式的信息。
    • 这是我用来过滤掉已构建的标记分支的另一项检查。它只是忽略branch-v[release number] 以增加安全性。
    猜你喜欢
    • 2014-11-13
    • 2019-09-25
    • 1970-01-01
    • 2019-12-28
    • 2020-07-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多