作者:李玲玉1990020292 | 来源:互联网 | 2023-05-24 13:53
1> RlonRyan..:
这个概念没有任何问题,只是部署的文件.
要部署的文件未正确列出.travis.yml
,并且gradle构建任务未生成正确的.zip文件.
这是更新的.travis.yml
:
language: java
install: true
matrix:
include:
- jdk: oraclejdk8
script:
- gradle clean build
- gradle dist
before_deploy:
- git config --global user.email "builds@travis-ci.com"
- git config --global user.name "Travis CI"
- export GIT_TAG=$TRAVIS_BRANCH-0.1.$TRAVIS_BUILD_NUMBER
- git tag $GIT_TAG -a -m "Generated tag from TravisCI for build $TRAVIS_BUILD_NUMBER"
- git push -q https://$TAGPERM@github.com/RlonRyan/JBasicX --tags
- ls -R
deploy:
skip_cleanup: true
provider: releases
api_key:
secure: [redacted]
file:
- "README.md"
- "dist/JBasicX-Main-0.1.0.zip"
- "dist/JBasicX-Test Output-0.1.0.zip"
on:
tags: false
all_branches: true
env:
global:
secure: [redacted]
请注意,设置此构建的方式,Travis将为每次提交运行两次,但仅在第一次部署时运行.这样可能值得进一步研究如何避免.
另外,请注意不正确实现时,即deploy.on:tags = true
创建无限的Travis-CI构建循环.这样的结果不容易清理,并且由于无法删除构建历史而在Travis中最明显.
编辑:重复构建的解决方案在于Travis-CI将标记推送视为提交的方式.避免这种情况的伎俩是由@ o11c在GitHub上为Travis-CI问题#1532找到的.基本上,人们需要做的是用标签前导排除分支.
在.travis.yml
这相当于添加以下内容:
branches:
except:
- /^*-v[0-9]/
对于子孙后代,最终.travis.yml
相当于:
language: java
install: true
matrix:
include:
- jdk: oraclejdk8
script:
- gradle clean build
- gradle dist
before_deploy:
- git config --global user.email "builds@travis-ci.com"
- git config --global user.name "Travis CI"
- export GIT_TAG=$TRAVIS_BRANCH-0.1.$TRAVIS_BUILD_NUMBER
- git tag $GIT_TAG -a -m "Generated tag from TravisCI for build $TRAVIS_BUILD_NUMBER"
- git push -q https://$TAGPERM@github.com/RlonRyan/JBasicX --tags
- ls -R
deploy:
skip_cleanup: true
provider: releases
api_key:
secure: [redacted]
file:
- "README.md"
- "dist/JBasicX-Main-0.1.0.zip"
- "dist/JBasicX-Test Output-0.1.0.zip"
on:
tags: false
all_branches: true
branches:
except:
- /^*-v[0-9]/
notifications:
email:
on_success: change
on_failure: change
irc:
channels:
- "irc.esper.net#RlonRyan"
on_success: always
on_failure: always
env:
global:
secure: [redacted]
好的解决方案 但是有几个问题.在主分支上执行此操作会不会更好?这样,只有在合并到master时才会创建标记.我的另一个问题是,你如何管理发布新版本?你必须修改这个.travis.yml文件,每次增加0.1到0.2等等?