我正在寻找一种解决方案,在CI服务器上的每次构建(特别是Atlassian Bamboo)之后自动增加包版本(不要与程序集版本混淆)。每个appx包都有一个在其清单文件(appxmanifest)中定义的版本。因此,为了增加版本,必须在提交之前编辑清单。我正在考虑实现这个的不同方法。第一个在清单中进行更改并将其推回回购。
缺点
另一种方法是设置post receive Stash hook,它将修改appxmanifest。
缺点难以使内部版本号与Bamboo保持同步。
有没有其他(更清洁和正确)的方法来实现这一目标?
答案 0 :(得分:1)
前Stash开发人员(不重要),
我高度建议不要检查派生/版本信息或文件。这将导致你无法解决问题(你在问题中指出了一些问题)。
我的建议 - 在构建时生成所需的信息。我对appx包装一无所知,但您可以使用可以在Bamboo构建中解析的占位符/属性(如this)吗?对于我们的构建,我们使用git hash和timestamp作为版本,在过去我也使用了job / build编号(虽然时间戳更好)。
随着更多的思考 - 如果appx版本对于开发人员在本地看是很重要的,并且很难与Git版本匹配,那么你也可以在Bamboo中的提交中附加Git标签/注释。关于这一点的好处是,从Git获取的任何人都可以轻松地看到额外的元数据,但它不会导致每次构建的额外提交。如果appx版本需要基于以前的版本,那么这使得构建脚本可以检查先前的提交并适当地修改版本。
我希望有所帮助。