ana*_*ius 5 versioning artifactory jenkins
我正在尝试扩展我们的 Jenkins 工作(构建整个项目)以将构建的工件部署到我们的 Artifactory,但随后我遇到了一些与工件版本控制相关的问题。如果我尝试重新部署版本未更改的工件(不是快照),则会收到错误 403(用户 'foo' 需要 DELETE 权限),这是可以理解的,我不应该替换已发布的工件。如果工件版本包含-SNAPSHOT则没有问题,它总是被上传。我的问题是:我们应该如何处理在 Artifactory 中锁定覆盖的情况?
如果已经部署了工件,那么 Jenkins 的工件插件是否应该忽略工件的部署而不是使作业失败?
如果工件已经使用固定版本(非快照)进行部署,则作业应该失败。例如,在手动作业触发器上,我想知道我是否尝试使用已发布的版本名称(可能是团队中的其他人)来构建和部署
或者我们应该始终使用 -SNAPSHOT (在开发期间),即使工件没有改变?
-SNAPSHOT 是为开发而设计的。是的,我们通常在构建结束时推送工件,即使它没有改变,因为您更新了自述文件并且触发了作业。
通常 SNAPSHOT 的生命周期取决于二进制存储库(此处为 Artifactory)的配置方式。例如,SNAPSHOT 可以每两周清理一次。
曼努埃尔共享的链接还有其他有趣的定义,例如
Usually, only the most recently deployed SNAPSHOT,
for a particular version of an artifact is kept in the artifact repository.
Although the repository can be configured to maintain a rolling archive
with a number of the most recent deployments of a given artifact
Run Code Online (Sandbox Code Playgroud)
https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN401
即使工件没有改变,我们是否会在每个版本中增加版本?
是的,我们在每次发布时都会增加版本号。我称之为发布客户将得到的东西。除特殊情况外,如果工件没有发生变化,则不会执行发布过程。发布通常涉及组织中的很多人,甚至是非开发人员。一个流行的标准是使用语义版本控制https://semver.org/有时人们更喜欢使用日期版本。我的建议是使用 semver 并在工件中包含一个带有构建日期的文件。该文件可以被工件本身用来在运行时告知其版本。
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |