答案 2:是的,共享工作空间是个坏主意。有文件锁定的可能性。存在工作空间被清除的问题。只是不要这样做...
答案 1:您需要的是归档构建的工件。这样,特定构建的工件(按构建号)将始终可用,无论另一个构建是否正在运行,或者工作空间处于什么状态
归档工件
- 在您的构建作业中,在Post-build Actions下,选择Archive the artifacts
- 指定要存档的工件(您可以使用以下组合)
a)您可以存档所有:*.*
b)您可以使用通配符存档特定文件:/path/to/file_version*.zip
c)您可以忽略中间目录,例如:**/file_version*.zip
- 为了避免许多工件的存储问题,在配置顶部,您可以选择Discard Old Builds,单击Advanced按钮,然后使用Days to keep artifacts和Max # of builds to keep with artifacts。请注意,这两个设置不控制实际构建的保留时间(其他设置控制)
从 Jenkins 访问工件
- 在构建历史记录中,选择您想要的任何以前的构建。
- 除了 SCM 更改和修订数据之外,您现在还有一个Build Artifacts链接,您可以在该链接下找到该特定构建的所有工件。
- 您还可以使用 Jenkins 的永久链接访问它们,例如
http://JENKINS_URL/job/JOB_NAME/lastSuccessfulBuild/artifact/
,然后使用工件的名称。
从另一个作业访问工件
我在这里广泛解释了如何从另一个部署作业(在您的示例中ProductionPush
)访问以前的工件:
如何从 Jenkins 的另一个作业中提升特定的内部版本号?
如果您的要求是始终将最新版本部署到生产环境,您可以跳过上述链接中的升级配置。只需按照部署作业的配置步骤即可。完成部署作业后,如果它始终同时运行,只需定期配置其构建参数即可。或者,您可以拥有另一个作业,该作业将根据您想要的任何条件触发部署作业。
在上述任何一种情况下,如果您的默认选择器设置为最新的成功构建(如上面的链接中所述),最新的构建将被推送到生产