git - Travis CI 跳过发布部署,因为这不是标记提交
问题描述
我正在尝试使用 Travis CI 构建将自动化发布部署配置为 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 被合并到主分支 Travis CIbefore_deploy
一步一步创建一个新标签,然后根据该标签创建新版本。但是当我测试它时,我总是在 Travis CI 日志中收到一条消息:
跳过发布提供者的部署,因为这不是标记提交
没有任何关于它为什么不创建标签的消息。我究竟做错了什么?以及如何正确配置 Travis 以在 Master 分支成功构建时发布新版本的工件?
解决方案
最后我解决了这个问题,配置的最终版本如下:
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
推荐阅读
- webi - 如何在 SAP WebI 中将老化数据汇总到年龄组中
- ethereum - Gas Estimation Error - 如果我继续使用它可以正常工作,但为什么要收取这么高的费用?
- html - @page :left 和 @page :left 在 Django 和 xhtml2pdf 库中不起作用
- azure - 如何忽略 Azure API 管理策略执行中的错误
- amazon-web-services - AWS Cloudformation:从自动扩展启动配置中标记块设备
- node.js - 节点:进程终止后持久化数据
- rust - 在此范围内找不到类型“F”
- firebase - 颤动中的Firebase集合关系
- javascript - 使用官方cli生成项目时,tailwind样式不适用于下一个js
- c++ - 只是一串字母,没有任何特殊字符