代码之家  ›  专栏  ›  技术社区  ›  Hleb

Travis CI跳过发布部署,因为这不是标记的提交

  •  2
  • Hleb  · 技术社区  · 8 年前

    我正在尝试使用travis ci build将自动化版本部署配置到github版本。我的 .travis.yml 文件看起来像:

    language: java
    jdk: oraclejdk8
    
    branches:
      only:
        - master
    
    before_install: mvn package -DskipTests=true -DbuildNumber=$TRAVIS_BUILD_NUMBER
    
    before_deploy:
      - git config --local user.name "$USER_NAME"
      - git config --local user.email "$USER_EMAIL"
      - export GIT_TAG=1.0.$TRAVIS_BUILD_NUMBER
      - git tag $GIT_TAG -a -m "Generated tag from TravisCI build $TRAVIS_BUILD_NUMBER"
      - git push origin $GIT_TAG
    
    deploy:
      provider: releases
      api_key: $GITHUB_TOKEN
      file:
        - target/tweetsched-dto-1.0.$TRAVIS_BUILD_NUMBER.jar
      name: tweetsched-dto-1.0.$TRAVIS_BUILD_NUMBER
      skip-cleanup: true
      on:
        tags: true
        repo: Tweetsched/tweetsched-dto
        branches:
          only:
            - master
    
    notifications:
      email:
        on_success: never
        on_failure: always
    

    我想要的-pr合并到master branch travis ci在 before_deploy 步骤,然后根据该标记创建新版本。但当我测试它时,我总是在travis ci日志中得到一条消息:

    正在跳过与发布提供程序的部署,因为这不是 标记提交

    没有任何关于它为什么不创建标记的消息。我做错什么了?如何正确地配置travis以在主分支的成功构建上发布工件的新版本?

    2 回复  |  直到 8 年前
        1
  •  2
  •   Hleb    8 年前

    最后我解决了这个问题,配置的最终版本如下:

    language: java
    jdk: oraclejdk8
    
    branches:
      only:
        - master
    
    before_install: mvn package -DskipTests=true -DbuildNumber=$TRAVIS_BUILD_NUMBER
    
    before_deploy:
    - export TRAVIS_TAG="1.0.$TRAVIS_BUILD_NUMBER"
    - echo "$TRAVIS_TAG" "$TRAVIS_COMMIT"
    - git config --local user.name "$USER_NAME"
    - git config --local user.email "$USER_EMAIL"
    - git tag "$TRAVIS_TAG" "$TRAVIS_COMMIT"
    
    deploy:
      provider: releases
      tag_name: $TRAVIS_TAG
      target_commitish: $TRAVIS_COMMIT
      name: $TRAVIS_TAG
      overwrite: true
      skip_cleanup: true
      api_key: $GITHUB_TOKEN
      file_glob: true
      file:
        - target/tweetsched-dto-1.0.$TRAVIS_BUILD_NUMBER.jar
      on:
        branch: master
        repo: Tweetsched/tweetsched-dto
    
    notifications:
      email:
        on_success: never
        on_failure: always
    
        2
  •  0
  •   phd    8 年前

    让特拉维斯考虑你需要设置的标签 $TRAVIS_TAG 环境变量见 https://docs.travis-ci.com/user/deployment/#conditional-releases-with-on

    export TRAVIS_TAG=$GIT_TAG