<p>如果您接受额外的版本控制提交,您可以在<code>continuous_integration/increment_version.py</code>中添加此脚本</p>
<pre><code>import os
import pkg_resources
if __name__ == "__main__":
version = pkg_resources.get_distribution("compare_with_remote").version
split_version = version.split('.')
try:
split_version[-1] = str(int(split_version[-1]) + 1)
except ValueError:
# do something about the letters in the last field of version
pass
new_version = '.'.join(split_version)
os.system("sed -i \"s/version='[0-9.]\+'/version='{}'/\" setup.py"
.format(new_version))
os.system("git add -u")
os.system("git commit -m '[ci skip] Increase version to {}'"
.format(new_version))
os.system("git push")
</code></pre>
<p>并将您的<code>.travis.yml</code>更改为</p>
^{pr2}$
<p>我不确定如何使<code>git push</code>部分工作,因为它需要对回购权限进行一些测试,但我认为您可能可以设置一些东西,以允许travis推送您的回购。例如,您可以查看<a href="https://gist.github.com/domenic/ec8b0fc8ab45f39403dd" rel="nofollow noreferrer">post</a>。在</p>
<p>还请注意,我使用了<code>python</code>来执行<code>git</code>操作,但它们可以作为额外的行添加到<code>after_success</code>字段中:</p>
<pre><code>after_success:
- python continuous_integration/increment_version.py
- git add -u
- git commit -m "[ci skip] version changed"
- git push
</code></pre>
<p>我只是觉得把版本号放在提交消息中比较方便。在</p>
<p>另外,在提交消息中添加<a href="https://docs.travis-ci.com/user/customizing-the-build#Skipping-a-build" rel="nofollow noreferrer">[ci skip]</a>以避免无限增量非常重要。也许在特定的commit msg标记上触发版本更改会更安全。在</p>